ChatWithKnowledgeBase - 基于知识库的聊天API
通过结合知识库和大模型,提供智能问答服务。
接口说明
该 API 允许用户通过指定的知识库集合与大模型进行交互,以获取基于知识库内容的答案。支持配置多种参数来定制化请求,包括但不限于数据库实例 ID、知识检索参数、模型推理参数等。此外,还提供了默认的系统提示词模板,并允许用户自定义系统提示。
DBInstanceId:必填项,用于指定数据库实例 ID。
KnowledgeParams:可选项,包含知识检索相关的参数,如检索内容、合并策略等。
ModelParams:必填项,包含模型推理相关的参数,如消息列表、使用的模型名称等。
PromptTemplate:可选项,用于自定义系统提示词模板。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
gpdb:ChatWithKnowledgeBase |
create |
*DBInstance
|
无 | 无 |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| DBInstanceId |
string |
是 |
实例 ID。 说明
您可以调用 DescribeDBInstances 接口查看目标地域下所有实例的详情,包括实例 ID。 |
gp-xxxxxxxxx |
| RegionId |
string |
是 |
实例所在的地域 ID。 |
cn-hangzhou |
| KnowledgeParams |
object |
否 |
知识检索参数对象,不指定时,仅 chat。 |
|
| MergeMethod |
string |
否 |
多知识库合并的方法,默认为 RRF,可选项:
|
"RRF" |
| MergeMethodArgs |
object |
否 |
多知识库融合的参数。 |
|
| Rrf |
object |
否 |
指定 MergeMethod 为 RRF 时,可配置的参数。 |
|
| K |
integer |
否 |
指定计算分数的算法的 1/(k+rank_i)中的 k 常数,范围大于 1 的正整数。 |
60 |
| Weight |
object |
否 |
指定 MergeMethod 为 Weight 时,可配置的参数。 |
|
| Weights |
array |
否 |
各个 SourceCollection 的权重数组。 |
|
|
number |
否 |
各个 SourceCollection 的权重。 |
0.01 |
|
| RerankFactor |
number |
否 |
重排因子。当该值不为空时,会对向量检索结果再做一次重排。取值范围:1<RerankFactor<=5。 说明
|
1.0001 |
| SourceCollection |
array<object> |
是 |
知识库 |
|
|
array<object> |
否 |
|||
| Collection |
string |
是 |
待召回的集合名。 |
adbpg_document_collection |
| Namespace |
string |
否 |
命名空间,默认为 public。 说明
您可以通过 CreateNamespace 接口创建,通过 ListNamespaces 接口查看列表。 |
dukang |
| NamespacePassword |
string |
是 |
命名空间对应的密码。 说明
本值为 CreateNamespace 接口指定。 |
namespacePasswd |
| QueryParams |
object |
否 |
与该知识库检索相关的参数。 |
|
| Filter |
string |
否 |
要更新的数据的过滤条件,格式为 SQL 的 WHERE 格式。 |
id = 'llm-t87l87fxuhn56woc_8anu8j2d3f_file_e74635e2cc314e838543e724f6b3b1f2_10658020' |
| GraphEnhance |
boolean |
否 |
是否开启知识图谱增强。默认值:false。 |
false |
| GraphSearchArgs |
object |
否 |
返回 top 数量的实体和关系边。默认值:60。 |
|
| GraphTopK |
integer |
否 |
返回 top 数量的实体和关系边。默认值:60。 |
60 |
| HybridSearch |
string |
否 |
多路召回算法,默认为空(即直接将稠密向量和全文的分数比较并排序)。 可选值:
|
RRF |
| HybridSearchArgs |
object |
否 |
多路召回的算法参数。目前支持 RRF 和 Weight 两种。HybridPathsSetting 可以指定召回稠密向量(dense)、稀疏向量(sparse)和全文检索(fulltext),如果值为空,默认召回稠密向量(dense)和全文检索(fulltext)。
|
|
|
any |
否 |
参数配置值。 |
||
| Metrics |
string |
否 |
向量构建索引时的方法。取值说明:
|
cosine |
| RecallWindow |
array |
否 |
召回窗口。当该值不为空时,增加返回检索结果的上下文。格式为 2 个元素的数组:List<A, B>,其中-10<=A<=0,0<=B<=10。 说明
|
|
|
integer |
否 |
召回窗口。当该值不为空时,增加返回检索结果的上下文。格式为 2 个元素的数组:List<A, B>,其中-10<=A<=0,0<=B<=10。 说明
|
[-1,1] |
|
| RerankFactor |
number |
否 |
重排因子。当该值不为空时,会对向量检索结果再做一次重排。取值范围:1<RerankFactor<=5。 说明
|
1.5 |
| TopK |
integer |
否 |
设置返回 top 结果数量。 |
10 |
| UseFullTextRetrieval |
boolean |
否 |
是否使用全文检索(双路召回)。默认为 false,仅采用向量检索。 |
true |
| TopK |
integer |
否 |
多向量集合召回合并后,设置返回 top 结果数量。 |
10 |
| PromptParams |
string |
否 |
系统提示词模板,需要包括{{ text_chunks }},{{ user_system_prompt }},{{ graph_entities }},{{ graph_relations }},不指定时,该部分不生效。 |
"参考以下知识回答问题:{{ text_chunks }}" |
| ModelParams |
object |
是 |
大语言模型 LLM 调用参数对象。 |
|
| MaxTokens |
integer |
否 |
生成最大 token 数 |
8192 |
| Messages |
array<object> |
是 |
消息列表 |
|
|
object |
是 |
消息列表 |
||
| Content |
string |
是 |
消息内容。 |
你是一个有帮助的助手。 |
| Role |
string |
是 |
消息角色,可选项:
|
user |
| Model |
string |
是 |
使用的大模型名称。可选项参考:百炼帮助文档 |
qwen-plus |
| N |
integer |
否 |
生成候选回复数量。 |
1 |
| PresencePenalty |
number |
否 |
存在惩罚系数(-2.0 ~ 2.0) |
1.0 |
| Seed |
integer |
否 |
随机种子。 |
42 |
| Stop |
array |
否 |
停止词列表。 |
|
|
string |
否 |
停止词。 |
"\n" |
|
| Temperature |
number |
否 |
采样温度(0~2) |
0.6 |
| Tools |
array<object> |
否 |
工具列表 |
|
|
array<object> |
否 |
工具详情 |
||
| Function |
object |
否 |
函数信息。 |
|
| Description |
string |
否 |
函数工具描述。 |
获取天气。 |
| Name |
string |
否 |
函数工具名称。 |
get_weather |
| Parameters |
any |
否 |
函数参数 JSON Schema |
{"type": "object", ...} |
| TopP |
number |
否 |
核采样概率阈值(0~1) |
0.9 |
| IncludeKnowledgeBaseResults |
boolean |
否 |
是否返回召回结果,默认 false |
false |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
响应体。 |
||
| RequestId |
string |
请求 ID。 |
ABB39CC3-4488-4857-905D-2E4A051D0521 |
| MultiCollectionRecallResult |
object |
多知识库召回信息。 |
|
| Entities |
array |
实体详情。 |
|
|
string |
实体类型。 |
{'entities': []} |
|
| Matches |
array<object> |
召回项。 |
|
|
array<object> |
召回项。 |
||
| Content |
string |
文档内容。 |
ADBPG向量数据库。 |
| FileName |
string |
文件名。 |
process_info_19b9df4dc9ad4bf2b30eb2faa4a9a987.txt |
| FileURL |
string |
查询结果图片的公网 URL 地址,有效时长默认为 2 小时。 可通过入参 UrlExpiration 自行指定有效时长 |
http://viapi-customer-pop.oss-cn-shanghai.aliyuncs.com/b4d8_207196811002111319_570c0e199f03428f812ab21fcc00dd6a |
| Id |
string |
向量数据的唯一 ID。 |
273e3fc7-8f56-4167-a1bb-d35d2f3b9043 |
| LoaderMetadata |
any |
文档加载器加载时的元信息。 |
{"page":1} |
| Metadata |
object |
元数据。 |
|
|
any |
元数据信息 |
||
| RerankScore |
number |
重排分数。 |
0.1 |
| RetrievalSource |
integer |
检索结果的来源。1 表示向量检索,2 表示全文检索,3 表示双路召回。 |
3 |
| Score |
number |
此条数据的相似度分数,其分数算法和创建索引时指定的算法 |
12 |
| Vector |
array |
向量数据。 |
|
|
number |
向量数据。 |
[] |
|
| Relations |
array |
文件名。 |
|
|
string |
关系边详情。 |
{'relations': []} |
|
| RequestId |
string |
请求 ID。 |
6B9E3255-4543-5B3B-9E00-6490CA64742B |
| Status |
string |
API 执行状态,取值如下:
|
success |
| Tokens |
integer |
消耗的 tokens 数。 |
42 |
| Usage |
object |
文档理解或 Embedding 消耗的 token 或条数。 |
|
| EmbeddingTokens |
integer |
向量化时使用的 token 数。 说明
token 是指将输入的文本分割成的最小单位。token 可以是一个单词、一个词组、一个标点符号、一个字符等。 |
21 |
| ChatCompletion |
object |
模型响应。 |
|
| Choices |
array<object> |
实时生成的文本内容 |
|
|
array<object> |
角色标识 |
||
| FinishReason |
string |
停止原因。 |
finish |
| Index |
integer |
回复序号。 |
0 |
| Message |
object |
大模型回复响应。 |
|
| Content |
string |
文档内容。 |
杭州的天气是晴天。 |
| Role |
string |
消息角色:
|
user |
| ToolCalls |
array<object> |
工具调用响应。 |
|
|
array<object> |
|||
| Id |
string |
ID。 |
"chatcmpl-c1bebafa-cc48-44e2-88c6-1a3572952f8e" |
| Function |
object |
调用的函数信息。 |
|
| Arguments |
string |
调用的函数参数。 |
{"city":"hangzhou"} |
| Name |
string |
调用的函数名。 |
"get_weather" |
| Index |
integer |
工具调用序号。 |
1 |
| ReasoningContent |
string |
模型思维内容。 |
逻辑推理过程 |
| Created |
integer |
创建时间。 |
1758529748 |
| Id |
string |
响应 ID。 |
273e3fc7-8f56-4167-a1bb-d35d2f3b9043 |
| Model |
string |
使用的模型名称。 |
qwen-plus |
| Usage |
object |
大模型输出使用的 token 数。 |
|
| CompletionTokens |
integer |
生成内容消耗的 token 数。 |
42 |
| PromptTokens |
integer |
输入 prompt 消耗的 token 数。 |
42 |
| PromptTokensDetails |
object |
promptToken 详情。 |
|
| CachedTokens |
integer |
缓存命中的 token 数量。 |
24 |
| TotalTokens |
integer |
总 token 数量。 |
42 |
| Message |
string |
返回信息。 |
Successful |
| Status |
string |
状态,取值说明:
|
success |
示例
正常返回示例
JSON格式
{
"RequestId": "ABB39CC3-4488-4857-905D-2E4A051D0521",
"MultiCollectionRecallResult": {
"Entities": [
"{'entities': []}"
],
"Matches": [
{
"Content": "ADBPG向量数据库。",
"FileName": "process_info_19b9df4dc9ad4bf2b30eb2faa4a9a987.txt",
"FileURL": "http://viapi-customer-pop.oss-cn-shanghai.aliyuncs.com/b4d8_207196811002111319_570c0e199f03428f812ab21fcc00dd6a",
"Id": "273e3fc7-8f56-4167-a1bb-d35d2f3b9043",
"LoaderMetadata": "{\"page\":1}",
"Metadata": {
"key": ""
},
"RerankScore": 0.1,
"RetrievalSource": 3,
"Score": 12,
"Vector": [
0
]
}
],
"Relations": [
"{'relations': []}"
],
"RequestId": "6B9E3255-4543-5B3B-9E00-6490CA64742B",
"Status": "success",
"Tokens": 42,
"Usage": {
"EmbeddingTokens": 21
}
},
"ChatCompletion": {
"Choices": [
{
"FinishReason": "finish",
"Index": 0,
"Message": {
"Content": "杭州的天气是晴天。",
"Role": "user",
"ToolCalls": [
{
"Id": "\"chatcmpl-c1bebafa-cc48-44e2-88c6-1a3572952f8e\"",
"Function": {
"Arguments": "{\"city\":\"hangzhou\"}",
"Name": "\"get_weather\""
},
"Index": 1
}
],
"ReasoningContent": "逻辑推理过程"
}
}
],
"Created": 1758529748,
"Id": "273e3fc7-8f56-4167-a1bb-d35d2f3b9043",
"Model": "qwen-plus",
"Usage": {
"CompletionTokens": 42,
"PromptTokens": 42,
"PromptTokensDetails": {
"CachedTokens": 24
},
"TotalTokens": 42
}
},
"Message": "Successful",
"Status": "success"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。