帮助与文档 > 产品文档 > 智慧学习服务 > API文档 > 小P老师
小P老师

小P老师简介

概念解释

小P老师服务可以提供全科答疑能力,包含答案解析和思路指引,讲解更加生动自然。

说明

Hi,您好,欢迎使用有道智云小P老师接口服务。

本文档主要针对需要集成HTTP API的技术开发工程师,详细描述小P老师能力相关的技术内容。

如果您有与我们商务合作的需求,可以通过以下方式联系我们:

商务邮箱: AIcloud_Business@corp.youdao.com

如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

客服QQ:1906538062

AIGC产品技术交流群 :837394306

联系邮箱: zhiyun@corp.youdao.com

温馨提示:

  • 本文档主要针对开发人员,接入测试前需要获取应用ID和应用密钥,并创建应用;如果您还没有,请按照 新手指南 获取。
  • 平台向每个账户赠送50元的体验金,供用户集成前测试所用。

接口调用参数

请求地址

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随机字符串,建议使用UUIDtrue
sign签名信息:sha256(应用ID+curtime+salt+curtime+应用密钥)true
sign_type签名类型v3true
os_type系统类型apitrue
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_idprompt模版id,实现业务定制promptfalse
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

发生异常时包含的事件

  • 对话过程中的异常:1个begin、0-N个 message、1个error
  • 参数异常:1个error

事件说明

  • begin事件:[基础事件类型——开始]
"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
}
  • message事件:[基础事件类型——消息]
"id": "fb981fde-0080-4933-b87b-4a29eaba8d17" // 请求id
"event":"message" // 事件类型
"data":{
"content": "你好,", // 模型回答
"type": "text"       // 回答类型
}
  • end事件:[基础事件类型——结束 ]

end 事件中的 usage 可以认为是接口调用的账单明细,明细列表从前到后依次包含三个部分:

  1. 输入明细部分:和 chat_info 参数中的条目一一对应

(1) type为"input_text_token"的明细:对应chat_info中type为"text"的文本token数量

(2) type为"input_ocr_token"的明细:对应chat_info中type为"image"或“imageUrl”的OCR识别文本token数量

  1. 输出明细部分:

type为"output_text_token"的明细:目前都是文本输出(返回事件流中message的type为"text")

  1. 插件使用明细部分:非必填,在订阅插件能力并有正确的返回时,返回对应的明细

(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事件:[基础事件类型——结束]

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事件返回)

  • 缺少公共参数user_id:[100101-USER_LACK_USER_ID]
  • 缺少业务参数task_id:[100101-USER_LACK_TASK_ID]
  • 缺少业务参数parent_chat_id:[100101-USER_LACK_PARENT_CHAT_ID]
  • 对话内容为空或缺少对话内容:[100101-USER_LACK_CHAT_CONTENT]
  • 任务名称为空串:[100102-USER_WRONG_TASK_NAME]
  • 对话内容参数格式错误:[100102-USER_WRONG_CHAT_INFO]
  • 图片base64无法解析:[100102-USER_WRONG_IMAGE_PARAM]
  • chat_info的type类型不在枚举范围:[100102-USER_WRONG_CHAT_TYPE]
  • 没有查到历史对话:[100102-USER_WRONG_CHAT_HISTORY]
  • 用户id超过100字符:[100103-USER_USER_ID_LENGTH_OVER]
  • 任务名超过20字符:[100103-USER_TASK_NAME_LENGTH_OVER]
  • 图片base64编码超过2M:[100103-USER_IMAGE_BASE64_LENGTH_OVER]
  • 输入token超过4096:[100103-USER_INPUT_TOKEN_OVER]
  • 模板id参数错误取值:[100102-USER_WRONG_TEMPLATE_ID]
  • 模板id参数没有权限:[100102-USER_TEMPLATE_ID_FORBID]
  • 订阅事件参数错误取值:[100102-USER_WRONG_SUBSCRIBE]
  • 订阅事件参数没有权限:[100102-USER_SUBSCRIBE_FORBID]
  • 用户输入高度敏感:[100111-USER_INPUT_SENSITIVE_HIGH]
  • 用户输入中度敏感:[100112-USER_INPUT_SENSITIVE_NORMAL]
  • 用户使用太频繁:[100117-USER_RATE_LIMIT ]

其他异常(通过sse的error事件返回)

  • 模型回答内容高度敏感:[100201-CUR_ANSWER_SENSITIVE_HIGH]
  • 模型回答内容中度敏感:[100202-CUR_ANSWER_SENSITIVE_NORMAL]
  • 请求需要使用token超限:[100243-CUR_OVER_TOTAL_TOKEN]
  • 其他错误码:[100299-CUR_SERVER_ERROR],用于排查系统问题,可认为是系统错误码

猜你想问

通过对话历史,或者提供的问题和回答,推荐3个问题。

baseUrl + /plugin/suggest

请求方式: POST

Content-Type: multipart/form-data

接口参数

字段名含义示例必填
app_key应用标识(应用 ID)true
curtime时间戳(秒)TimeStamptrue
salt随机字符串,建议使用UUIDtrue
sign签名信息:sha256(应用ID+curtime+salt+curtime+应用密钥)true
sign_type签名类型v3true
os_type系统类型apitrue
user_id用户id,用来标识用户,当query/answer为空时必填false
task_id任务id,用来标识用户一次会话session(关联一组对话历史),当query/answer为空时必填false
chat_idchat接口返回的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接口时用于定位请求
    }
}

异常结果

业务异常

  • 缺少公共参数user_id:[100101-USER_LACK_USER_ID]
  • 缺少业务参数task_id:[100101-USER_LACK_TASK_ID]
  • 缺少业务参数chat_id:[100101-USER_LACK_CHAT_ID]
  • 错误业务参数task_id:[100102-USER_WRONG_TASK_ID]
  • 错误业务参数chat_id:[100102-USER_WRONG_CHAT_ID]
  • 查询不到历史对话:[100102-USER_WRONG_CHAT_HISTORY]
  • 没有猜你想问的使用权限:[102601-SUGGESTION_FORBID]

其他异常

  • 系统内部异常:[100299-CUR_SERVER_ERROR]

常用语言 Demo

Java 示例

Xiaop Java demo

Python3 示例

Xiaop python3 demo

go示例

Xiaop go demo

错误码列表

错误码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没有猜你想问插件的使用权限