更新时间:2024-08-27 GMT+08:00
分享

生成答案

功能介绍

将content输入给模型,使用模型能力生成答案。

注意:

  1. 当"chat_id"为空时,"chat_create_flag"应为"1",表示需要开启新的对话;当"chat_id"有值时,"chat_create_flag"可以为"0",表示不需要开启新的对话。

  2. "messages"中的元素必须为奇数个,单轮对话时为1,多轮对话时为3、5、7、...,如 [question1, answer1, question2]

  3. 多轮对话中:对话排列顺序从旧到新

URI

POST /v1/koosearch/experience/chat

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

接口鉴权使用的Token,Token获取方式参考:获取IAM用户Token

最小长度:1

最大长度:1000000

表2 请求Body参数

参数

是否必选

参数类型

描述

repo_id

String

知识库ID

获取方式:

账号登录KooSearch体验平台,在左侧导航栏选择:"知识库管理" ,在此界面获取"知识库ID"字段的值,表示该知识库在向量数据库中存储的ID,具有唯一性

最小长度:1

最大长度:64

chat_id

String

对话ID

最小长度:1

最大长度:64

messages

Array of ChatMessage objects

对话内容

数组长度:1 - 19

chat_create_flag

String

对话开始标志( 0-否,1-是)

最小长度:1

最大长度:1

refresh_flag

String

问答刷新标志(0-否,1-是)

最小长度:1

最大长度:1

max_tokens

Integer

生成文本的最大token数量。 输入的文本加上生成的文本总量不能超过模型所能处理的最大长度。 最小值:1

最小值:1

最大值:131072

缺省值:2048

stream

Boolean

流式输出标志

缺省值:false

filter_string

String

RAG搜索环节过滤。

带语法的查询字符串,使用具有严格语法的解析器,根据提供的查询字符串返回文档。

例如:tags:(魔都 OR 首都) AND category:"城市(city)"

注意事项: 1.支持布尔运算符 AND、OR 和 NOT(也写为 &&、|| 和 !),但请注意它们不遵守通常的优先级规则,因此只要一起使用多个运算符,就应使用括号。 2.详细语法参考query_string语法

最小长度:4

最大长度:1024

top_p

Float

一种替代温度采样的方法,称为nucleus sampling,其中模型考虑具有top_p 概率质量的标记的结果。通常建议更改此值或温度,但不要同时更改两者。通常建议更改top_p或temperature来调整生成文本的倾向性,但不要同时更改这两个参数。 取值范围:(0, 1]

最小值:0.1

最大值:1

缺省值:0.1

presence_penalty

Float

用于调整模型对新Token的处理方式。即如果一个Token已经在之前的文本中出现过,那么模型在生成这个Token时会受到一定的惩罚。当presence_penalty的值为正数时,模型会更倾向于生成新的、未出现过的Token,即模型会更倾向于谈论新的话题。 最小值:-2 最大值:2

最小值:-2

最大值:2

缺省值:0

search_temperature

Float

搜索增强场景用于控制生成文本的多样性和创造力。 取值接近0表示最低的随机性,1表示最高的随机性。一般来说,temperature越低,适合完成确定性的任务。temperature越高,例如0.9,适合完成创造性的任务。

最小值:0

最大值:1

缺省值:0.3

chat_temperature

Float

非搜索增强场景用于控制生成文本的多样性和创造力。 取值接近0表示最低的随机性,1表示最高的随机性。一般来说,temperature越低,适合完成确定性的任务。temperature越高,例如0.9,适合完成创造性的任务。

最小值:0

最大值:1

缺省值:0.8

extra_repo_ids

Array of strings

多知识库问答

最小长度:1

最大长度:64

数组长度:1 - 10

表3 ChatMessage

参数

是否必选

参数类型

描述

role

String

对话的角色,取值为system、user

最小长度:1

最大长度:100

content

String

对话内容

最小长度:1

最大长度:4096

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

chat_id

String

对话ID

最小长度:1

最大长度:64

chat_result

ChatResult object

对话结果

references

Array of ChatReferenceInfo objects

参考结果

数组长度:1 - 100

reference_total

Integer

参考来源总数

最小值:1

最大值:65535

sub_queries

Array of strings

搜索使用的query,包括:原始query和改写后的query

最小长度:1

最大长度:65535

数组长度:1 - 65535

category

String

搜索规划返回的query类别

最小长度:1

最大长度:65535

表5 ChatResult

参数

参数类型

描述

index

Integer

序号

最小值:1

最大值:65535

message

String

文本内容

最小长度:1

最大长度:65535

question_id

String

问答ID

最小长度:1

最大长度:64

表6 ChatReferenceInfo

参数

参数类型

描述

file_id

String

文件id(或FAQ id)

最小长度:1

最大长度:64

title

String

标题

最小长度:1

最大长度:65535

content

String

文本内容

最小长度:1

最大长度:65535

big_content

String

内容上下文,比如未分片的原始表格。

注意: (1)搜索接口可能有值 (2)问答接口会将big_content替换到content,此字段清空

最小长度:0

最大长度:100000

update_date_time

String

更新时间

最小长度:1

最大长度:64

doc_type

String

文档类型(doc-文档,faq-问答)

最小长度:1

最大长度:64

file_path

String

文档归档路径

最小长度:1

最大长度:64

category

String

文档目录,单值,对应目录树中的叶子节点

最小长度:4

最大长度:255

tags

Array of strings

文档标签列表

最小长度:4

最大长度:255

数组长度:0 - 250

score

Float

ES打分

最小值:0

最大值:10000

subtitle

String

文档子标题

最小长度:1

最大长度:65535

repo_id

String

知识库标识

最小长度:1

最大长度:64

请求示例

上述是一个多轮对话的请求体示例。 注意: 1)、当"chat_id"为空时,"chat_create_flag"应为"1",表示需要开启新的对话;当"chat_id"有值时,"chat_create_flag"可以为"0",表示不需要开启新的对话。 2)、"messages"中的元素始终为奇数,单轮对话时为1,多轮对话时为3、5、7、... 如上述示例,message[0]["content"]是第一轮的query,message[1]["content"]是第一轮的answer,message[2]["content"]是第二轮的query

/v1/123/applications/1233453/uni-search/experience/chat

{
  "repo_id" : "9d261b1c-e9b6-464f-881a-687251504edd",
  "chat_create_flag" : "0",
  "chat_id" : "cc84be57-3fc1-4365-a54d-417f098e8a19",
  "messages" : [ {
    "role" : "user",
    "content" : "2023款本田雅阁的维修保养周期建议?"
  }, {
    "role" : "user",
    "content" : "对于2023款本田雅阁,我建议你可以注意以下几个方面的定期维护:定期更换机油和机油滤芯。根据厂家建议,大约每5,000-10,000公里更换一次。"
  }, {
    "role" : "user",
    "content" : "还有什么需要注意的?"
  } ],
  "refresh_flag" : "0"
}

响应示例

状态码: 200

模型生成结果响应体

{
  "chat_id" : "cc84be57-3fc1-4365-a54d-417f098e8a19",
  "chat_result" : {
    "index" : 0,
    "message" : "在进行维修保养时,需要注意:检查轮胎状况,包括胎压、胎纹深度等。及时更换磨损严重的轮胎。检查制动系统,包括刹车片、制动液等。如有磨损需要及时维修更换。定期检查发动机冷却系统,更换冷却液和防冻液。检查蓄电池状态,确保电瓶能够正常工作。保持定期保养,比如四轮定位、空调保养等,延长车辆使用寿命。",
    "question_id" : "12453567446"
  },
  "references" : [ {
    "file_id" : "123",
    "title" : "汽车包养注意事项.pdf",
    "content" : "检查轮胎状况,包括胎压、胎纹深度等。及时更换磨损严重的轮胎。检查制动系统,包括刹车片、制动液等。",
    "update_date_time" : "1234554456",
    "doc_type" : "doc",
    "file_path" : "uni-search/v2/文档名称.doc"
  }, {
    "file_id" : "123",
    "title" : "汽车包养注意事项.pdf",
    "content" : "如有磨损需要及时维修更换。定期检查发动机冷却系统,更换冷却液和防冻液。",
    "update_date_time" : "1234554456",
    "doc_type" : "doc",
    "file_path" : "uni-search/v2/文档名称.doc"
  }, {
    "file_id" : "123",
    "title" : "汽车包养注意事项.pdf",
    "content" : "检查蓄电池状态,确保电瓶能够正常工作。保持定期保养,比如四轮定位、空调保养等,延长车辆使用寿命。",
    "update_date_time" : "1234554456",
    "doc_type" : "doc",
    "file_path" : "uni-search/v2/文档名称.doc"
  } ],
  "reference_total" : "3"
}

状态码

状态码

描述

200

模型生成结果响应体

错误码

请参见错误码

相关文档