主题
聊天 3.7.4.Beta2+
接口说明
请求URL:http[s]://{网关地址}/assistant/openapi/v2/completions
请求方式: POST
请求内容类型: application/x-www-form-urlencoded
响应内容类型: text/event-stream
请求说明
请求头
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 应用ID | appId | M | String(128) | 接入网关的应用ID |
| Token | accessToken | M | String | 接入网关的accessToken |
查询参数
| 字段名 | 参数名 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 问题内容 | question | M | string | |
| 用户账号 | userId | M | string | |
| 用户账号类型 | idsUserType | O | string | 1:校内用户;2:校外用户;默认1:校内用户 |
| 终端类型 | platformType | O | int | 0 pc 1移动 |
| 用户ip | userIp | O | string | |
| 额外信息 | extra | O | string | 内容为JSON格式的字符串,只允许包含键值对信息,且数据类型为字符串,键需要符合HTTP请求头格式要求只能包含字母、数字和连字符-),用于助手触发Tools调用时将该部分参数作为请求头信息传入,传入时会补充key前缀CASP_AI_,例如:CASP_AI_{key}: '{value}' |
请求示例
http
POST /assistant/openapi/v2/completions? HTTP/1.1
Host: 127.0.0.1:9000
appId: [YOUR_APP_ID]
accessToken: [GET YOUR ACCESS TOKEN BY APPID AND APPSECRET]
Content-Type: application/x-www-form-urlencoded
Cookie: campusaideSessionid=OWFhNzI1MTYtMWE4OC00ZWRiLTg0MmYtNDJiMGIwZDliMGFj
userId=01119092&idsUserType=1&question=介绍一下台湾&platformType=0&userIp=127.0.0.11
2
3
4
5
6
7
8
2
3
4
5
6
7
8
响应说明
响应体
| 字段名 | 类型 | 描述 |
|---|---|---|
| sequenceId | Long | 响应事件序列 |
| id | String | 响应事件id |
| event | String | 响应事件名称 |
| retry | String | 响应事件重试时间 单位毫秒 |
| comment | String | 响应事件注释 |
| data | CompletionsEventData | 聊天接口响应事件流的data数据 |
聊天接口响应事件流的data数据(CompletionsEventData)
| 字段名 | 类型 | 描述 |
|---|---|---|
| answerId | String | 本轮对话答案编号 |
| code | String | 是否结束标志 0:未结束;1:结束 |
| questionId | String | 问题编号 |
| messageType | String | chat:聊天 form:表单 faq:faq回答 extra:额外信息 exception:异常信息 |
| content | String | 回答内容, 如果code是1 content是'' |
| reasonContent | String | 思考内容 |
响应示例
{"data":{"code":"0","content":"已了解您的问题…","end":false,"messageType":"CHAT"},"id":"1347302280024702976","retry":"3000","sequenceId":1,"success":false}
{"data":{"code":"0","content":"正在思考…","end":false,"messageType":"CHAT"},"id":"1347302280024702976","retry":"3000","sequenceId":2,"success":false}
{"data":{"code":"0","content":"感谢您耐心等待,即将回答…","end":false,"messageType":"CHAT"},"id":"1347302280024702976","retry":"3000","sequenceId":3,"success":false}
{"data":{"answerId":"1347302280024702977","code":"0","content":"感谢您耐心等待,但是抱歉,我无法回答这个问题_pc","end":false,"messageType":"chat","questionId":"1347302280024702976"},"id":"1347302280024702976","retry":"3000","sequenceId"
{"data":{"answerId":"1347302280024702977","code":"1","content":"","end":true,"messageType":"chat","questionId":"1347302280024702976"},"id":"1347302280024702976","retry":"3000","sequenceId":5,"success":false}1
2
3
4
5
2
3
4
5
错误码
| 错误码 | 描述 |
|---|---|
| 999 | 统一错误码,详细描述信息参见接口返回 |
| 1003 | 参数异常,详细描述信息参见接口返回 |
Demo
java
// 创建客户端
DefaultClient client = new DefaultClient(BASE_URL, APP_ID, APP_SECRET);
// 设置超时时间
client.setReadTimeout(30 * 1000);
// 创建请求对象
CompletionsRequest request = new CompletionsRequest();
request.setUserIp("127.0.0.1");
request.setUserId("AdmissionLetter-test001");
request.setIdsUserType("1");
request.setPlatformType("0");
request.setQuestion("介绍一下台湾");
request.addExtra("role", "admin");
request.addExtra("department", "1001");
client.execute(request, new Consumer<EventStreamResponse<CompletionsEventData>>() {
@Override
public void accept(EventStreamResponse<CompletionsEventData> resp) throws Exception {
System.out.println("receive event response:" + JSON.toJSONString(resp));
}
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

