Skip to main content

本地模型接入指南

一、产品架构和本地模型接入能力介绍

学堂在线采用三层解耦的体系架构,通过接口标准化设计,实现模型能力与引擎层、应用层的相互解耦,为合作院校提供灵活的模型接入能力。当前平台已集成DeepSeek、智谱AI等主流大模型,支持院校按需选择。

三层解耦体系架构

为满足院校对数据安全与教学场景定制的需求,学堂在线特别提供本地大模型接入支持服务。合作院校完成模型私有化部署后,可通过学堂开放平台标准化接口完成本地模型接入,实现在AI应用中的调用。以下内容将详细讲解对接流程与注册规范。

二、接入指南

整个对接过程分为三个阶段:

阶段一:准备阶段

1.学校和学堂在线双方签订合同,确认达成AI课程(或AI平台)建设合作。

2.学堂在线负责平台创建与首门AI课程建设。

阶段二:技术对接

1.学校技术团队提供本地模型联系人的姓名、手机号和邮箱信息,用于后续联系和监控告警的自动通知;学堂在线技术团队创建 appId 与 appSecret,提供给学校技术团队,用于接口对接。

2.学校技术团队参照开放平台协议,完成本地模型注册。

阶段三:测试和上线

1.学堂在线 AI4E 团队在后台切换注册模型,并配置课程教学场景参数。

2.学堂在线与学校共同进行模型功能、性能测试,测试通过后交付。

三、本地模型接入能力和约束

1. 接口调用环境

正式环境https://{学校 AI 课程平台域名}

2. 权限申请及开通

申请使用api,获取对应的appIdappSecret,请联系项目经理/教学支持找开发人员生成获取。

3. 接口调用方式

首先,所有接口请务必在服务端调用。严禁通过前端直接调用,防止数据泄漏! 模型注册的所有接口在使用前,需要先通过 快速开始中的生成验证token接口,使用appIdappSecret,获取临时tokenenv,将两参数置于header中,访问其他接口

  1. 通过appIdappSecret生成临时tokenenv
见 快速开始->生成验证token 接口文档
token有效期3天,3天内可重复利用,建议定期刷新token
刷新的新token不会影响旧的token,token到期会自动失效
  1. tokenenv设置在 http 请求头中, 请求其他接口
Authorization: Bearer {token}
X-ENV: {env}
示例:curl https://xxx.yuketang.cn/openapi/test -H 'Authorization: Bearer eyJhbGciOiJIUzI1' -H 'X-ENV: rain'
调用时序图

4. 关于注册模型的接口要求和约束

具体对接方式,请与开发人员联系,以下仅为示例

支持学校自行接入大模型后,可在学堂开放平台注册,之后可在学堂ai应用中使用
开发者可在开放平台注册自己的大模型
目前v1版本暂只支持使用基于 OpenAI 的 REST API 规范,通过 HTTP 请求与学堂的服务进行交互。以下是 OpenAI SDK 兼容的常见格式和配置要求

1. HTTP 请求头格式

OpenAI SDK 的请求头通常需要包含以下关键字段:

  • Authorization:用于身份验证,格式为 Bearer <API_KEY>
  • Content-Type:指定请求体的格式,通常是 application/json
  • Accept:用于指定响应的格式,例如 application/json

2. 请求体格式

请求体的格式取决于具体的 API 端点。例如:

  • 文本生成(Completions)
    {
    "model": "text-davinci-003",
    "prompt": "Your input text",
    "temperature": 0.8
    }
  • 聊天模型(Chat Completions)
    {
    "model": "deepseek",
    "messages": [
    {"role": "user", "content": "Your message"}
    ]
    }
  • 流式输出:在请求体中添加 "stream": true

3. 兼容 OpenAI 格式的 HTTP 请求示例

以下是一个完整的 HTTP 请求示例,用于调用 OpenAI 的聊天模型: 聊天的路径固定为v1/chat/completions

curl https://test.com/v1/chat/completions \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek",
"messages": [{"role": "user", "content": "Hello"}]
}'