知识库对话体验 | 大装置帮助中心
跳到主要内容

知识库对话体验

POST /studio/rag/data/v1/completions:chat

请求头(Request Header)

Authorization 可以使用如下两种Header

-H "X-Date: $xdate" \
-H "Authorization: $auth"
  • 直接提供完整的 Authorization Header,可以通过浏览器的开发者工具DevTools查看并复制接口调用的完整信息
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InB...'

请求参数(Request Parameters)

名称类型必须描述
actioninteger($enum)对话的动作
contentstring用户输入内容
conversation_idstring指定进行对话的对话ID
conversationobject对话详情,当conversation_id为空时,需要传递此字段来创建新的对话
streamboolean控制是否是流式输出,默认false表示非流式输出,true表示流式输出.

其中,action有如下情况

枚举值数值含义
CHAT_ACTION_UNSPECIFIED0未指定
CHAT_ACTION_NEXT1如常进行下一轮对话
CHAT_ACTION_REGENERATION2重新生成上一轮对话的新响应

其中,conversation的参数如下

名称类型必须描述
conversation_idstring对话ID(只输出).
channel_idstring大模型渠道资源ID.
display_namestring显示名称,第一次对话后自动更新.
create_timestring($date-time)创建时间(只输出).
update_timestring($date-time)更新时间(只输出).
modelstring模型名称.
search_configobject知识搜索配置.
promptstring知识库提示,改写用户问题,增加知识库检索到的知识信息.
model_configobject模型配置.
sys_promptstring人设提示,大模型所需要扮演的人设信息.
conversation_question_prompt_enabledbool是否提供用户可能想问的三个问题.
userstring用户名.
chat_timesint32聊天次数.
total_feedback_likeint32点赞反馈的总数.
total_feedback_unlikeint32差评反馈的总数.

其中,conversation.search_config的参数如下

名称类型必须描述
dataset_listarray[object]要搜索的知识库列表.
top_kint32返回结果的Top K值.
confidencefloat置信度.
weightfloat权重:表示两种方法之间的比例.
open_windowbool是否在提示中包含检索段的前后片段.

其中,search_config.dataset_list的参数如下

名称类型必须描述
idstring知识库ID.
display_namestring知识库显示名称.

其中,conversation.model_config的参数如下

名称类型必须描述
frequency_penaltyfloat重复惩罚系数.
max_tokensint32在聊天补全中生成的最大token数,默认值为102.
nint32为每条输入消息生成的聊天补全选择数量.
temperaturefloat使用的采样温度,范围在0到2之间.
top_pfloat采样温度的替代方案,称为核采样.

请求示例(Request Example)

curl 'https://aidmp.cn-sh-01.sensecoreapi.cn/studio/rag/data/v1/completions:chat' \
-H 'Accept: text/event-stream' \
-H "X-Date: $xdate" \
-H "Authorization: $auth" \
-X POST \
--data-raw '{
"conversation_id":"d42034d2-44cb-4777-98f2-853dc6869c02",
"content":"关联问题:\n1. 知识库的主要功能是什么?\n2. 如何有效地利用知识库?\n3. 知识库在哪些领域得到广泛应用?",
"action":1,
"is_stream":true,
"conversation":{
"display_name":"关联问题:\n1. 知识库的主要功能是什么?\n2. 如何有效地利用知识库?\n3. 知识库在哪些领域得到广泛应用?",
"search_config":{
"dataset_list":[
{"id":"1431194b72344e88a4df1af91a710ca1","display_name":"testywj06141431"}],
"top_k":3,
"confidence":0.5,
"open_window":false,
"weight":0.5},
"model_config":{
"temperature":0.8,
"top_p":0.7,
"frequency_penalty":1.05,
"max_tokens":1024
},
"model":"SenseChat",
"prompt":"使用如下知识的内容作为你的**知识库数据**。\n 知识:\n {{ .Knowledge }}\n\n 回答时请遵循以下规则:\n - 尽量使用**知识库数据**的内容来回答。\n - 如果**知识库数据**中未提及,就用自身知识回答并且告诉用户该信息不是来自知识库。\n - 如果不确定时,请求用户澄清问题。\n\n 请回答问题: \n {{ .Question }}",
"sys_prompt":"#角色设定\n 作为一个智能问答助手,你的任务是为用户提供专业、准确的建议。 \n #组件能力\n 你能够理解和分析用户输入,提供相关且有用的答案。\n 你具备丰富的领域知识,可以回答广泛的问题。 \n #要求与限制\n 1.输出内容的风格要求:保持友好和专业的语气。\n 2.输出内容的字数限制:尽量控制在200字以内,除非问题需要更详细的解释。\n 3. 语言处理:根据用户问题的语言进行回答。",
"conversation_question_prompt_enabled":true
}
}'

响应(Response)

名称类型描述
conversation_idstring对话ID.
seqint32对话中的序列号.
messagestring非流式请求生成的响应内容.
deltastring流式请求生成的响应内容.
finish_reasoninteger($enum)停止生成的原因.
knowledge_base_resultsarray[object]知识检索的中间结果.
history_idstring聊天历史ID.
prompt_questionsarray[string]用户下一个问题的提示.

其中,finish_reason有如下情况

枚举值数值含义
FINISH_REASON_UNSPECIFIED0未指定
FINISH_REASON_STOP1因为到达终止标记而停止生成
FINISH_REASON_LENGTH2因为达到最大长度而停止生成
FINISH_REASON_SENSITIVE3因为触发敏感词而停止生成
FINISH_REASON_CONTEXT4因为达到模型上下文长度限制而停止

其中,knowledge_base_results的参数如下

名称类型描述
page_contentstring页面内容.
documentobject相关知识文档.
confidencefloat结果置信度.
token_countint64内容的token数量.
segment_numberint32段落数量.
wordsint32段落的字数.
typeinteger($enum)段落类型.
display_typeinteger($enum)显示类型.
table_contentstring表格内容.
image_uristring图片URI.
image_keystring图片键.
image_keysarray[string]图片键集合.
display_contentstring显示内容.

其中,knowledge_base_results.document的参数如下

名称类型描述
document_idstring知识文档的ID.
display_namestring知识文档的名称.
typeinteger($enum)知识文档的类型.
document_sizeint64知识文档的大小.
token_countint64知识文档的令牌计数.
segment_countint64知识文档的段落计数.
dataset_idstring知识文档所属知识库的ID.
dataset_displaystring知识文档所属知识库的显示名称.
p_idstring父知识文档的ID.
data_source_typeinteger($enum)知识文档的数据源类型.
creatorstring知识文档的创建者.
create_timestring($date-time)知识文档的创建时间.
update_timestring($date-time)知识文档的更新时间.
segmentsarray[object]知识文档的段落详细信息列表.
uristring知识文档在OSS中的预签名URI.

其中,document.type有如下情况

枚举值数值含义
DOCUMENT_TYPE_UNSPECIFIED0未指定
WEBPAGE1网页
FOLDER2文件夹
TXT3文本文件
PDF4PDF文件
HTML5HTML文件
XLSX6XLSX文件
XLS7XLS文件
DOCX8DOCX文件
CSV9CSV文件
PPTX10PPTX文件
PPT11PPT文件,暂不支持
XML12XML文件
MARKDOWN13Markdown文件
MD14MD文件
JSON15Json文件

其中,document.data_source_type有如下情况

枚举值数值含义
DATA_SOURCE_TYPE_UNSPECIFIED0开始,默认
LOCAL_FILE1本地知识
WEB2网络知识
NOTION3Notion知识

其中,document.segments的参数如下

名称类型描述
segment_idstring段ID.
dataset_idstring知识库ID
document_idstring文档ID
contentstring段落内容
token_countint32词元数量
numberint32段落编号
metadataobject元数据
wordsint32单词数量
segment_typeinteger($enum)段落类型
table_contentstring表格内容
image_keystring图片键值
image_uristring图片URI
display_typeinteger($enum)显示类型
image_keysarray[string]图片键值列表
display_contentstring展示内容

其中,segments.metadata的参数如下

名称类型描述
key_wordsarray[string]关键词
image_name_valuestring图片名称
image_sizeint32图片大小
table_name_valuestring表格名称
table_rowsint32表格行数
table_columnsarray[string]表格列
scorefloat分数

其中,knowledge_base_results.typesegments.segment_type有如下情况

枚举值数值含义
SEGMENT_TYPE_UNSPECIFIED0未指定状态
SEGMENT_TYPE_TEXT1文字
SEGMENT_TYPE_IMAGE2图片
SEGMENT_TYPE_TABLE3表格
SEGMENT_TYPE_WEB_IMAGE4网页图片

其中,knowledge_base_results.display_typesegments.display_type有如下情况

枚举值数值含义
DISPLAY_TYPE_UNSPECIFIED0未指定状态
DISPLAY_TYPE_TEXT1文字
DISPLAY_TYPE_MARKDOWN2Markdown

响应示例(Response Example)

{"result":{"conversation_id":"","seq":0,"message":"","delta":" ","finish_reason":0,"knowledge_base_results":[],"history_id":"","prompt_questions":[]}},
{"result":{"conversation_id":"3ba7b7ef-ff9d-4d9d-b7ad-4079107f7f3f","seq":1,"message":"","delta":"","finish_reason":1,"knowledge_base_results":[],"history_id":"32f3d69e-f82a-4907-9e9c-9200860b2923","prompt_questions":[" 关联问题:\n1. 在哪些国家或地区,男性和女性的法定结婚年龄不同?\n2. 有没有国家或地区允许未成年人在特定条件下合法结婚?\n3. 历史上,法定结婚年龄的变化趋势是怎样的?"]}}