通过结合知识库和大模型,提供智能问答服务。
接口说明
该 API 允许用户通过指定的知识库集合与大模型进行交互,以获取基于知识库内容的答案。支持配置多种参数来定制化请求,包括但不限于数据库实例 ID、知识检索参数、模型推理参数等。此外,还提供了默认的系统提示词模板,并允许用户自定义系统提示。
- DBInstanceId:必填项,用于指定数据库实例 ID。
- KnowledgeParams:可选项,包含知识检索相关的参数,如检索内容、合并策略等。
- ModelParams:必填项,包含模型推理相关的参数,如消息列表、使用的模型名称等。
- PromptTemplate:可选项,用于自定义系统提示词模板。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
|---|---|---|---|---|
| gpdb:ChatWithKnowledgeBase | create | *DBInstance acs:gpdb:{#regionId}:{#accountId}:dbinstance/{#DBInstanceId} |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| 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 | long | 否 | 指定计算分数的算法的 1/(k+rank_i)中的 k 常数,范围大于 1 的正整数。 | 60 |
| Weight | object | 否 | 指定 MergeMethod 为 Weight 时,可配置的参数。 | |
| Weights | array | 否 | 各个 SourceCollection 的权重数组。 | |
| double | 否 | 各个 SourceCollection 的权重。 | 0.01 | |
| RerankFactor | double | 否 | 重排因子。当该值不为空时,会对向量检索结果再做一次重排。取值范围:1<RerankFactor<=5。 说明
| 1.0001 |
| SourceCollection | array<object> | 是 | 知识库 | |
| 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 | long | 否 | 返回 top 数量的实体和关系边。默认值:60。 | 60 |
| HybridSearch | string | 否 | 双路召回算法,默认为空(即直接将向量和全文的分数比较并排序)。 可选值:
| RRF |
| HybridSearchArgs | object | 否 | 双路召回的算法参数。目前支持 RRF 和 Weight 两种:
| |
| any | 否 | |||
| Metrics | string | 否 | 向量构建索引时的方法。取值说明:
| cosine |
| RecallWindow | array | 否 | 召回窗口。当该值不为空时,增加返回检索结果的上下文。格式为 2 个元素的数组:List<A, B>,其中-10<=A<=0,0<=B<=10。 说明
| |
| long | 否 | 召回窗口。当该值不为空时,增加返回检索结果的上下文。格式为 2 个元素的数组:List<A, B>,其中-10<=A<=0,0<=B<=10。 说明
| [-1,1] | |
| RerankFactor | double | 否 | 重排因子。当该值不为空时,会对向量检索结果再做一次重排。取值范围:1<RerankFactor<=5。 说明
| 1.5 |
| TopK | long | 否 | 设置返回 top 结果数量。 | 10 |
| UseFullTextRetrieval | boolean | 否 | 是否使用全文检索(双路召回)。默认为 false,仅采用向量检索。 | true |
| TopK | long | 否 | 多向量集合召回合并后,设置返回 top 结果数量。 | 10 |
| PromptParams | string | 否 | 系统提示词模板,需要包括{{ text_chunks }},{{ user_system_prompt }},{{ graph_entities }},{{ graph_relations }},不指定时,该部分不生效。 | "参考以下知识回答问题:{{ text_chunks }}" |
| ModelParams | object | 是 | 大语言模型 LLM 调用参数对象。 | |
| MaxTokens | long | 否 | 生成最大 token 数 | 8192 |
| Messages | array<object> | 是 | 消息列表 | |
| object | 否 | 消息列表 | ||
| Content | string | 否 | 消息内容。 | 你是一个有帮助的助手。 |
| Role | string | 否 | 消息角色,可选项:
| user |
| Model | string | 是 | 使用的大模型名称。可选项参考:百炼帮助文档 | qwen-plus |
| N | long | 否 | 生成候选回复数量。 | 1 |
| PresencePenalty | double | 否 | 存在惩罚系数(-2.0 ~ 2.0) | 1.0 |
| Seed | long | 否 | 随机种子。 | 42 |
| Stop | array | 否 | 停止词列表。 | |
| string | 否 | 停止词。 | "\n" | |
| Temperature | double | 否 | 采样温度(0~2) | 0.6 |
| Tools | array<object> | 否 | 工具列表 | |
| object | 否 | 工具详情 | ||
| Function | object | 否 | 函数信息。 | |
| Description | string | 否 | 函数工具描述。 | 获取天气。 |
| Name | string | 否 | 函数工具名称。 | get_weather |
| Parameters | any | 否 | 函数参数 JSON Schema | {"type": "object", ...} |
| TopP | double | 否 | 核采样概率阈值(0~1) | 0.9 |
| IncludeKnowledgeBaseResults | boolean | 否 | 是否返回召回结果,默认 false | false |
返回参数
示例
正常返回示例
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": {
"Source": 1
},
"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"
}错误码
访问错误中心查看更多错误码。
