API文档
IOS_SDK文档
SDK隐私政策
小P老师服务可以提供全科答疑能力,包含答案解析和思路指引,讲解更加生动自然。
Hi,您好,欢迎使用有道智云小P老师接口服务。
本文档主要针对需要集成HTTP API的技术开发工程师,详细描述小P老师能力相关的技术内容。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
AIGC产品技术交流群 :837394306
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
baseUrl:
https://openapi.youdao.com/llmserver
baseUrl + /ai/teacher/dialogue/chat
请求方式: POST
Content-Type: multipart/form-data
Accept: text/event-stream
字段名 | 含义 | 示例 | 必填 |
---|---|---|---|
app_key | 应用标识(应用 ID) | true | |
curtime | 时间戳(秒) | true | |
salt | 随机字符串,建议使用UUID | true | |
sign | 签名信息:sha256(应用ID+curtime+salt+curtime+应用密钥) | true | |
sign_type | 签名类型 | v3 | true |
os_type | 系统类型 | api | true |
user_id | 用户id,用来标识用户,最多100个字符 | true | |
task_id | 任务id,用来标识用户一次会话session(关联一组对话历史),由服务生成,首轮对话为空,非首轮对话以服务端返回的上一次对话为准 | false | |
task_name | 任务名称,最多20个字符,首轮对话创建任务使用,为空时由系统生成 | false | |
parent_chat_id | 当前输入的父对话id,首轮对话为空,非首轮对话以服务端返回的上一次对话为准 | false | |
chat_info | 输入内容,格式为chat_item的列表(目前只支持一个chat_item),chat_item格式在后文中说明 | [{"type":"text","content":"你好!"}] | true |
template_id | prompt模版id,实现业务定制prompt | false | |
subscribe | 订阅事件。sse流固定返回begin、message、end、error事件。对于其他想要的事件,需要调用方主动传递此参数订阅,多个订阅事件传值以英文逗号分隔,默认是空-无事件订阅 | false |
接口参数chat_info中chat_item的格式说明:
一、包含字段
type:输入类型枚举【text、image、image_url】
content:输入内容,text文本/image图片ocr识别的结果有 token 4096 长度限制
二、type详细说明
text:文本输入UTF-8
当 type = text 时,chat_info = [{"type":"text","content":"文本输入内容"}]
image:图片base64编码:支持图片格式:.bmp、.jpg、.png,图片大小Base64后≤2M
当 type = image 时,chat_info = [{"type":"image","content":"图片base64编码"}]
image_url:整张图片的URL(需要公网能访问下载)
当 type = image_url 时,chat_info = [{"type":"image_url","content":"图片的链接URL"}]
接口参数subscribe可订阅事件说明:
query_suggestion :插件能力,订阅才执行——猜你想问
一个成功的返回示例:
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17"
"event":"begin"
"data":{
"request_id": "fb981fde-0080-4933-b87b-4a29eaba8d17",
"task_id": "046dba1a-7f47-4f96-91f2-be4676aa1347",
"chat_id": 1705045207475
}
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17"
"event":"message"
"data":{
"content": "你好,",
"type": "text"
}
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17"
"event":"message"
"data":{
"content": "有什么可以",
"type": "text"
}
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17"
"event":"message"
"data":{
"content": "帮助你的吗?",
"type": "text"
}
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17"
"event":"end"
"data":{
"request_id": "fb981fde-0080-4933-b87b-4a29eaba8d17",
"usage":[
{"type":"input_ocr_token","value":110},
{"type":"output_text_token","value":253},
{"type":"query","value":1}
]}
正常结果包含的事件 1个begin、1-N个 message、1个end
发生异常时包含的事件
事件说明
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17" // 请求id
"event":"begin" // 事件类型
"data":{
"request_id": "fb981fde-0080-4933-b87b-4a29eaba8d17", // 请求id
"task_id": "046dba1a-7f47-4f96-91f2-be4676aa1347", // 任务id
"chat_id": 1705045207475 // 系统回复对话的id,下一轮对话的parent_chat_id
}
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17" // 请求id
"event":"message" // 事件类型
"data":{
"content": "你好,", // 模型回答
"type": "text" // 回答类型
}
end 事件中的 usage 可以认为是接口调用的账单明细,明细列表从前到后依次包含三个部分:
(1) type为"input_text_token"的明细:对应chat_info中type为"text"的文本token数量
(2) type为"input_ocr_token"的明细:对应chat_info中type为"image"或“imageUrl”的OCR识别文本token数量
type为"output_text_token"的明细:目前都是文本输出(返回事件流中message的type为"text")
(1) type为"query_suggestion"的明细:订阅猜你想问插件并有正确返回
"id":"e9141d83-e76a-4581-bfeb-0bd6569d8339"
"event":"end" // 事件类型
"data":{
"usage": // 账单明细
[{
"type": "input_text_token", // chat_info中type为"text"的文本token数量
"value": 80 // token数
},{
"type": "input_ocr_token", // chat_info中type为"image"或“imageUrl”的OCR识别文本token数量
"value": 110 // token数
},{
"type": "output_text_token", // 模型输出token数量
"value": 64 // token数
},{
"type": "query", // 系统服务,按次计费
"value": 1 // 次数
},{
"type": "query_suggestion", // 订阅猜你想问插件且成功,按次计费
"value": 1 // 次数
}],
"request_id": "e9141d83-e76a-4581-bfeb-0bd6569d8339"
}
error 事件中的 usage 格式同 end 事件,对于不收费异常返回空列表
"id":"e9141d83-e76a-4581-bfeb-0bd6569d8339" // 请求id
"event":"error" // 事件类型
"data":{
"code": 99,
"msg": "系统错误",
"request_id": "e9141d83-e76a-4581-bfeb-0bd6569d8339" // 请求id
"usage": []
}
"id":"e9141d83-e76a-4581-bfeb-0bd6569d8339"
"event":"query_suggestion" // 事件类型
"data":{
"suggestion":["微积分主要包括哪两大部分?","微分学的主要研究对象是什么?","积分学的核心研究内容是什么?"],
"code":0,
"msg":"SUCCESS"
}
业务异常(通过sse的error事件返回)
其他异常(通过sse的error事件返回)
通过对话历史,或者提供的问题和回答,推荐3个问题。
baseUrl + /plugin/suggest
请求方式: POST
Content-Type: multipart/form-data
字段名 | 含义 | 示例 | 必填 |
---|---|---|---|
app_key | 应用标识(应用 ID) | true | |
curtime | 时间戳(秒) | TimeStamp | true |
salt | 随机字符串,建议使用UUID | true | |
sign | 签名信息:sha256(应用ID+curtime+salt+curtime+应用密钥) | true | |
sign_type | 签名类型 | v3 | true |
os_type | 系统类型 | api | true |
user_id | 用户id,用来标识用户,当query/answer为空时必填 | false | |
task_id | 任务id,用来标识用户一次会话session(关联一组对话历史),当query/answer为空时必填 | false | |
chat_id | chat接口返回的begin事件中的chat_id,最近一次模型回答的id,当query/answer为空时必填 | false | |
query | 需要推荐问题的原始问题 | false | |
answer | 原始问题的回答 | false |
{
"code": "0", //错误码
"msg": "ok", //详细信息
"requestId": "", //请求唯一id
"data": { //结果对象
"suggestion": [ //返回结果
"推荐问题1","推荐问题2","推荐问题3"
],
"requestId": "" //请求id,onetime接口时用于定位请求
}
}
业务异常
其他异常
错误码 | msg |
---|---|
101 | 缺少必填的参数,首先确保必填参数齐全,然后,确认参数书写是否正确。 |
104 | 不支持的API类型 |
105 | 不支持的签名类型 |
106 | 不支持的响应类型 |
110 | 无相关服务的有效应用,应用没有绑定服务,可以新建服务。注:某些服务的结果发音需要tts服务,需要在控制台创建语音合成实例绑定应用后方能使用。 |
111 | 开发者账号无效 |
202 | 签名检验失败,如果确认应用ID和应用密钥的正确性,仍返回202,一般是编码问题。请确保翻译文本 q 为UTF-8编码. |
203 | 访问IP地址不在可访问IP列表 |
205 | 请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南 |
206 | 因为时间戳无效导致签名校验失败 |
207 | 重放请求 |
303 | 服务端的其它异常 |
401 | 账户已经欠费停 |
405 | 鉴权失败 |
100101 | 缺少必要参数 |
100102 | 参数错误 |
100103 | 参数长度超过限制 |
100111 | 输入内容高度敏感 |
100112 | 输入内容中度敏感 |
100117 | 用户使用太频繁 |
100201 | 模型回答内容高度敏感 |
100202 | 模型回答内容中度敏感 |
100243 | 请求需要使用的token超出限制 |
100299 | 系统内部异常 |
102601 | 没有猜你想问插件的使用权限 |