| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| knowledge_base_id | string | 是 | default | 知识库标识,路径参数,最长 80 个字符。 |
| appkey | string | 否 | 无 | APPKEY,可通过 Query、JSON Body、Header 或 Bearer 传递。 AppKey 整体必填;在本操作已声明支持的鉴权位置任选一个提供,本位置无需重复填写。多处填写时须一致。 |
| model | string | 否 | gugudata-knowledge-chat | 固定为 gugudata-knowledge-chat。 |
| messages | array | 是 | 无 | 消息数组,最多 20 条;最后一条必须为 user 消息。 |
| thread_id | string | 否 | 无 | 会话标识,不传时创建新会话,最长 120 个字符。 |
| tenant_id | string | 否 | default | 客户侧业务分组标识,默认 default,最长 80 个字符。 |
| stream | boolean | 否 | false | 是否使用 SSE 流式响应,默认 false。 |
| top_k | integer | 否 | 6 | 引用片段数量,范围 1 至 12,默认 6。 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 当前回答消息标识。 |
| object | string | OpenAI 兼容响应对象类型。 |
| thread_id | string | 当前对话会话标识。 |
| choices[0].message.content | string | 基于知识库资料生成的回答。 |
| sources | array | 回答引用的文档来源与内容片段。 |
| usage | object | 本次请求的使用量摘要。 |
| 业务状态码 | 业务状态码解释 | 备注 |
|---|---|---|
| 100 | 请求成功 | 接口正常返回 |
| 501 | 参数错误 | 请检查请求参数、文件大小或文件格式 |
| 504 | APPKEY 错误 | 请检查传递的 APPKEY 是否正确 |
| -1 | 请求失败 | 知识库处理或问答过程中发生异常 |
| 字段 | 补充说明 |
|---|---|
knowledge_base_id | 在 URL 路径中填写,例如 default。问答时应与上传文档时的知识库一致。 |
appkey | 四种位置任选一种;同一请求在多处提供时,值必须一致。推荐使用 X-GUGUDATA-APPKEY 请求头。 |
model | 省略时使用 gugudata-knowledge-chat。 |
messages | 至少 1 条,每条必须包含 role 和 content。role 支持 user、assistant、system。content 支持纯文本或文本项数组,每个文本项须提供 type=text 和 text。单条文本最多 2000 字符,所有消息文本合计最多 12000 字符,整个 JSON 请求体最多 64 KiB。最后一条 user 消息是本轮问题,之前的 user 和 assistant 消息可提供上下文。 |
thread_id | 继续对话时使用上次响应中的 thread_id,并保持业务分组和知识库一致。 |
tenant_id | 用于区分项目、产品或客户等业务分组。问答与上传应使用同一个分组。 |
stream | false 返回完整 JSON。true 返回 text/event-stream,依次读取 choices[0].delta.content;成功时在终块读取 sources 和 usage,随后收到 data: [DONE]。 |
top_k | 表示请求检索的来源片段数量。实际返回数量可少于该值,详见 sources。 |
| 字段 | 补充说明 |
|---|---|
id | 标识本次回答。继续对话请使用 thread_id。 |
object | 非流式为 chat.completion;SSE 数据块为 chat.completion.chunk。 |
thread_id | 继续追问时把此值放回请求体。Demo 返回的会话标识仅用于演示。 |
choices[0].message.content | 非流式响应的完整回答。正文中的 [1]、[2] 等编号对应 sources 中的第 1、第 2 条。 |
sources | 正文引用编号从 1 开始,对应数组中的位置。资料不足时可能返回空数组;SSE 模式在成功终块中返回。 |
usage | 包含输入、输出和合计 Token 数。服务未提供相应计数时,值为 0。SSE 模式在成功终块中返回。 |
created | 回答或流式响应的创建时间,Unix 时间戳,单位为秒。 |
model | 本次问答使用的模型标识。 |
knowledge_base_id | 本次查询使用的知识库标识。 |
choices[0].message.role | 非流式回答的角色,值为 assistant。 |
choices[0].finish_reason | 非流式成功响应为 stop。SSE 增量块中为 null,成功终块中为 stop。 |
choices[0].delta.content | 仅 SSE 文本增量块返回,按接收顺序拼接得到回答。 |
sources[].document_id | 引用片段所属文档的标识,对应上传响应中的 document_id。 |
sources[].chunk_id | 文档中的引用片段标识。 |
sources[].source_name | 来源文档名称。 |
sources[].location | 引用片段在文档中的位置标识,例如 page:8 表示第 8 页。 |
sources[].score | 片段与问题的相关性分值,范围为 0 至 1。 |
sources[].snippet | 用于核对引用的文本片段,最多 240 个字符。 |
usage.prompt_tokens | 输入 Token 数。 |
usage.completion_tokens | 输出 Token 数。 |
usage.total_tokens | 输入和输出 Token 数之和。 |