拟人对话生成 | 大装置帮助中心
跳到主要内容

拟人对话生成

接口描述(Description)

模型基于人设进行角色扮演,可实现多人对话生成


请求地址(Request URL)

[POST] https://api.sensenova.cn/v1/llm/character/chat-completions

请求头(Request Header)

无特殊Header,请参考接口鉴权


请求体(Request Body)

请注意,单次请求,用户输入的token总数(即所有content的token总数) + 用户输入的角色设定(即character_settings的token总数) + 用户期望模型生成的最大token数(即max_new_tokens的值),必须 <= 模型最大上下文长度(不同模型的上下文长度支持情况,参考模型清单)。

名称类型必须默认值可选值描述
modelstring-参考模型清单模型ID
nint1[1,4]生成回复数量,响应参数中的index即为回复序号(在使用某些模型时不支持传入该参数,详情请参考模型清单
max_new_tokensint300[1,1024]期望模型生成的最大token数(不同模型支持的上下文长度不同,因此最大值也不同,参考模型清单
messagesobject[]--输入给模型的对话上下文,数组中的每个对象为聊天的上下文信息
character_settingsobject[]--多人对话中每个人的人物设定
role_settingobject--本轮对话的设定
extrastring--额外信息,用户自传
know_idsstring[]-参考查询知识库列表检索的知识库列表
knowledge_configobject--知识配置
  • messages 部分参数如下:
名称类型必须默认值可选值描述
namestring-角色姓名,只能选择character_settings中已设定的name
contentstring--对话的内容
  • character_settings 部分参数如下:
名称类型必须默认值可选值描述
namestring--角色姓名,长度不超过50个字符
genderstring--角色性别,长度不超过50个字符
identitystring--角色身份,长度不超过200个字符
nicknamestring--角色别名,长度不超过50个字符
feeling_towardobject[]--好感度设定
detail_settingstring--详细设定,长度不超过500个字符
other_settingjson string--其他设定,长度不超过2000个字符
  • role_setting 部分参数如下:
名称类型必须默认值可选值描述
user_namestring--指定本次回复,用户扮演哪个角色,只能选择character_settings中已设定的name
primary_bot_namestring--指定本次回复,模型扮演哪个角色,只能选择character_settings中已设定的name
  • feeling_toward 部分参数如下:
名称类型必须默认值可选值描述
namestring--角色姓名,只能选择character_settings中已设定的name
levelint-[1,3]对该角色的好感度,数字越大代表好感度越高
  • knowledge_config 部分参数如下:
名称类型必须默认值可选值描述
knowledge_base_resultbooleanfalsetrue
false
是否返回本次请求查询的知识库检索结果
true:返回
false:不返回
knowledge_base_configsobject[]--知识库配置
  • knowledge_base_configs 部分参数如下:
名称类型必须默认值可选值描述
know_idstring-本次请求检索的知识库ID(konw_ids中的知识库ID)需要实现配置的知识库ID
faq_thresholdfloat-(0,1)知识库中的qa_lst精准命中程度的阈值配置,越高代表对该知识库中问答对的检索结果相似度要求越严格

请求示例(Request Example)

curl --request POST "https://api.sensenova.cn/v1/llm/character/chat-completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"max_new_tokens": 1024,
"messages": [
{
"name": "string",
"content": "string"
}
],
"character_settings":[
{
"name": "string",
"gender": "string",
"identity": "string",
"nickname": "string",
"feeling_toward":[
{
"name": "string",
"level": 1
}
],
"detail_setting": "string",
"other_setting": "json string"
}
],
"role_setting":{
"user_name": "string",
"primary_bot_name": "string"
},
"model": "string",
"n": 1,
"extra": "string",
"know_ids": [
"string"
],
"knowledge_config": {
"knowledge_base_result": false,
"knowledge_base_configs":[
{
"know_id": "string",
"faq_threshold": 0
}
]
}
}'

响应(Response)

名称类型描述
dataobject生成内容
  • data 部分参数如下:
名称类型描述
idstring消息ID
replystring模型生成的最优回复
choicesobject[]生成的回复列表
knowledge_base_resultsobject[]知识检索中间结果
usageobjecttoken使用量
  • choices 部分参数如下:
名称类型描述
messagestring生成的回复内容
finish_reasonstring停止生成的原因,枚举值
因结束符停止生成:stop
因达到最大生成长度停止生成:length
因触发敏感词停止生成: sensitive
因触发模型上下文长度限制: context
indexint生成的回复序号
  • knowledge_base_results 部分参数如下:
名称类型描述
know_idstring查询的知识库ID
resultsobject[]查询到的知识库内容
  • usage 部分参数如下:
名称类型描述
prompt_tokensint用户输入内容的token数
completion_tokensint生成消息对应的token数
knowledge_tokensint知识库内容输入模型的token数(仅在使用了知识库且检索到知识库内容的情况下不为0)
total_tokensint总token数

响应示例(Response Example)

{
"data":{
"id":"9a18cd7f047c4b9498920d7c27a7d707",
"reply":"(站起身,走到他身边,俯下身,伸手拿过他手中的毛笔,将它放在一旁,然后坐在他身边,双手撑着桌子,看着他)臣有事要与陛下商议。",
"choices":[
{
"index":0,
"finish_reason":"stop",
"message":"这句话的翻译是:Who am I?"
}
],
"knowledge_base_results": [
{
"know_id": "string",
"results": [
{
"result": "string",
"score": 0
}
]
}
],
"usage":{
"prompt_tokens":12,
"completion_tokens":170,
"knowledge_tokens": 0,
"total_tokens":182
}
}
}

错误信息

参考错误码