基于会话生成对话(有会话历史)
接口描述(Description)
基于某个已经创建的会话,生成对话
请注意,此接口会基于模型的上下文长度限制,携带会话历史进行对话生成(例如,SenseChat目前限制的上下文长度为4k,则会携带不超过4k的会话历史进行对话,如果最新的一条会话加进会话历史之后总长度超出4k,会按照会话时间从早到晚的顺序逐条遗忘)。
请求地址(Request URL)
[POST] https://api.sensenova.cn/v1/llm/chat-conversations
请求头(Request Header)
无特殊Header,请参考接口鉴权
请求体(Request Body)
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
action | string | 否 | next | 正常进行下一轮对话:next 在已有的某一轮对话里重新生成: regeneration | 本次对话的行为 |
content | string | 是 | - | - | 消息的内容 |
model | string | 是 | - | 模型清单 | 模型ID |
session_id | string | 是 | - | - | 此次对话的会话ID,通过创建会话接口获得 |
stream | boolean | 否 | false | 开启:true 关闭: false | 是否使用流式传输,如果开启,数据将按照data-only SSE (server-sent events)返回中间结果,并以 data: [DONE] 结束 |
know_ids | string[] | 否 | - | 参考查询知识库列表 | 检索的知识库列表 |
knowledge_config | object | 否 | - | - | 知识配置 |
plugins | object | 否 | - | - | 插件配置(在使用某些模型时不支持传入该参数,详情请参考模型清单) |
knowledge_config
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
control_level | string | 否 | normal | 枚举值 normal high | 对知识库的控制力度 normal :模型正常参考知识库内容进行回答 high :模型强参考知识库内容进行回答(若您期望模型回答尽可能依赖知识库,不自由发散,推荐使用此值) |
knowledge_base_result | boolean | 否 | false | true false | 是否返回本次请求查询的知识库检索结果 true :返回 false :不返回 |
knowledge_base_configs | object[] | 否 | - | - | 知识库配置 |
knowledge_base_configs
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
know_id | string | 是 | - | 本次请求检索的知识库ID(konw_ids 中的知识库ID) | 需要实现配置的知识库ID |
faq_threshold | float | 是 | - | (0,1) | 知识库中的qa_lst 精准命中程度的阈值配置,越高代表对该知识库中问答对的检索结果相似度要求越严格 |
plugins
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
web_search | object | 否 | - | - | 在线检索配置(此参数将模型的在线检索能力作为独立的插件功能提供给用户使用,以实现更为灵活的配置) |
associated_knowledge | object | 否 | - | - | 文本知识注入配置 |
web_search
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
search_enable | boolean | 否 | false | true false | 是否允许在线检索,若允许在线检索,即允许模型自主判断本次请求是否需要在线检索 |
result_enable | boolean | 否 | false | true false | 是否返回在线检索的结果 |
associated_knowledge
部分参数如下:
名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
---|---|---|---|---|---|
content | string | 是 | - | - | 文本知识注入的内容,注意此内容的token数会视为用户输入内容的一部分,计入prompt_tokens ,遵循模型上下文长度校验规则 |
mode | string | 是 | - | concatenate override | 知识注入的模式 将外部注入的知识和内部的其他知识检索结果拼接在一起输入给模型: concatenate 外部注入的知识会替代内部的其他知识检索结果: override |
请求示例(Request Example)
curl --request POST "https://api.sensenova.cn/v1/llm/chat-conversations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"action": "next",
"content": "string",
"model": "string",
"session_id": "string",
"stream": true,
"know_ids": [
"string"
],
"knowledge_config":{
"control_level": "normal",
"knowledge_base_result": false,
"knowledge_base_configs":[
{
"know_id": "string",
"faq_threshold": 0
}
]
},
"plugins":{
"web_search":{
"search_enable": false,
"result_enable": false
},
"associated_knowledge":{
"content": "string",
"mode": "string"
}
}
}'
响应(Response)
名称 | 类型 | 描述 |
---|---|---|
data | object | 生成内容 |
- 其中,
data
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
session_id | string | 会话ID |
turn_id | srting | 此次对话的轮次ID,系统自动生成 |
message | string | 非流式请求时,生成的回复内容 |
delta | string | 流式请求时,生成的回复内容 |
finish_reason | string | 停止生成的原因,枚举值 因结束符停止生成: stop 因达到最大生成长度停止生成: length 因触发敏感词停止生成: sensitive 因触发模型上下文长度限制: context |
knowledge_base_results | object[] | 知识检索中间结果 |
plugins | object | 插件功能使用情况 |
knowledge_base_results
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
know_id | string | 查询的知识库ID |
results | object[] | 查询到的知识库内容 |
results
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
score | float | 相似度 |
result | string | 查询到的知识库文本内容 |
extra_info | object | 若该结果对应的知识库是使用delimiter 分割模式创建的,则返回检索到的知识库详细信息 |
extra_info
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
file_id | string | 此条结果对应的文件ID |
page | int | 此条结果对应的文件页码 |
plugins
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
web_search | object | 在线检索使用情况,search_enable 关闭的情况下不返回此字段 |
web_search
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
online_search_count | int | 本次请求实际发生的在线检索次数 |
results | object[] | 本次请求在线检索结果,result_enable 关闭的情况下不返回此字段 |
results
部分参数如下:
名称 | 类型 | 描述 |
---|---|---|
index | int | 在线检索结果序号 |
url | string | 在线检索的URL |
url_source | string | 在线检索的来源 |
title | string | 在线检索网页标题 |
icon | string | 在线检索网站logo图片的URL |
响应示例(Response Example)
- 流式
data:{"data":{"delta":"This","finish_reason":"","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[],"plugins":{"web_search":{"online_search_count":0,"results":[]}}},"status":{"code":0, "message": "ok"}}
data:{"data":{"delta":"is","finish_reason":"","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[],"plugins":{"web_search":{"online_search_count":0,"results":[]}}},"status":{"code":0, "message": "ok"}}
data:{"data":{"delta":"a","finish_reason":"","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[],"plugins":{"web_search":{"online_search_count":0,"results":[]}}},"status":{"code":0, "message": "ok"}}
data:{"data":{"delta":"test","finish_reason":"","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[],"plugins":{"web_search":{"online_search_count":0,"results":[]}}},"status":{"code":0, "message": "ok"}}
data:{"data":{"delta":"!","finish_reason":"","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[],"plugins":{"web_search":{"online_search_count":0,"results":[]}}},"status":{"code":0, "message": "ok"}}
data:{"data":{"delta":"","finish_reason":"stop","session_id":"518f9b5be26b000","turn_id":"5191ff54aa6b000_4","knowledge_base_results":[{"know_id":"123456","results":[{"score":1.56, "result":"Test"}]}],"plugins":{"web_search":{"online_search_count":1,"results":[{"index":1,"url":"https://xxxx","url_source":"百科","title":"北京著名景点清单2023","icon":"https://xxx"}]}}},"status":{"code":0, "message": "ok"}}
data:[DONE]
- 非流式
{
"data": {
"session_id": "string",
"turn_id": "string",
"message": "This is a test !",
"finish_reason": "stop",
"knowledge_base_results": [
{
"know_id": "string",
"results": [
{
"result": "string",
"score": 0
}
]
}
],
"plugins": {
"web_search":{
"online_search_count": 1,
"results":[
{
"index": 1,
"url": "string",
"url_source": "string",
"title": "string",
"icon": "string"
}
]
}
}
}
}
错误信息
参考错误码