Skip to main content
知识检索与问答

知识检索

跨多个知识库执行联合语义检索

POST
/api/v1/indices/knowledge/search
cURL
curl -X POST "https://{workspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/indices/knowledge/search" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "aid-xxxxxxxxxxxxxxxx",
    "query": "推荐一件适合秋冬的运动夹克",
    "images": [],
    "kb_search_configs": [
      {
        "id": "kb_product_001",
        "search_filters": [
          {"tags": ["秋冬", "运动"]}
        ]
      }
    ]
  }'
{
  "code": "Success",
  "status_code": 200,
  "data": {
    "total": 5,
    "nodes": [
      {
        "score": 0.9201360940933228,
        "metadata": {
          "_rc_v_score": 0.9662528038024902,
          "image_url": [
            "https://example.com/image.jpeg"
          ],
          "_score": 0.9201360940933228,
          "doc_id": "table_xxxxxxxxxxxx_10034682_5780",
          "_score_with_weight": 0.9201360940933228,
          "_rank_weight": 1,
          "doc_name": "商品图库",
          "pipeline_id": "your_kb_id",
          "_id": "llm-xxxxxxxxxxxx_your_kb_id_table_xxxxxxxxxxxx_10034682_5780",
          "media_url": "https://example.com/image.jpeg",
          "update_date": "2023-11-4 0:03",
          "product_id": "SKU-001",
          "product_name": "运动夹克示例",
          "category": "服装",
          "_knowledge_type": "image",
          "_knowledge_scene": "image_qa"
        },
        "text": "media_url: https://example.com/image.jpeg\nupdate_date: 2023-11-4 0:03\nproduct_id: SKU-001\nproduct_name: 运动夹克示例\ncategory: 服装"
      }
    ],
    "cost_time": 2629
  },
  "success": true,
  "message": "success",
  "request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "SUCCESS"
}
跨多个知识库执行联合语义检索,返回按相关性排序的切片。检索策略预先在控制台配置进 agent 实例并发布,调用方传入检索意图(query / images)与 agent_id,还可通过 kb_search_configs 为每个知识库指定文档/标签过滤条件。
调用前必须先在控制台发布知识检索服务(agent),否则返回 Agent 未发布错误。

参数分类

请求面保持最小。所有参数按角色分为两类:
分类含义归属是否进请求
A 类 · agent 策略属于 agent 属性的检索策略锁进 agent_config,控制台配置并发布
B 类 · 调用意图仅本次调用时才知道的输入请求体
A 类示例:dense_similarity_top_ksparse_similarity_top_krerankrerank_top_nrerank_min_scorehybrid_rerankenable_kb_routerkb_search_configs[].weightenable_rewriteenable_nl2sql 等,全部在 agent_config 中管理,请求不可覆盖。 B 类示例:queryimageskb_search_configs[].idkb_search_configs[].search_filters

kb_search_configs

通过 kb_search_configs 可在请求中为每个知识库指定文档/标签过滤条件,实现运行时动态过滤。该字段为数组,每个元素对应一个知识库。
  • kb_search_configs[].id 必须是 agent 离线配置中已绑定的知识库 ID,不能查询未绑定的知识库。
  • 同一请求中 id 不能重复。
  • 每个 kb_search_configs 元素必须包含 id 字段。
  • search_filters 总字节数不超过 80,000 bytes。非结构化知识库仅允许 tagsmeta 两种 key,数组长度不超过 1,000。
  • 可过滤字段须在该知识库入卷时声明于 index_config.fields,否则过滤不生效。

响应

响应 data 包含 total(命中切片总数)、nodes(结果列表)、cost_time(耗时毫秒)。每个 nodescoretextmetadata,具体字段见上方参数表。
_ 开头的 metadata 字段是内部打分用,版本间可能变,不要写进业务逻辑。表格型知识库还会额外返回用户表格里的业务字段(字段名因表结构而异)。

错误处理

失败时 successfalsestatusERRORstatus_code 为对应语义码、code 为错误码字符串、message 为描述,request_id 必返回。始终校验 success,而非仅依赖 HTTP 状态码;排查问题提供 request_id
场景错误码错误信息
agent_id 缺失InvalidParameteragent_id is required
query 缺失InvalidParameterquery is required
kb_id 不属于 agent 绑定的知识库InvalidParameterkb not bound to agent: {id}
kb_id 重复InvalidParameterduplicate kb id in kb_search_configs: {id}
kb_id 为空InvalidParameterkb_search_configs[{i}].id is required
search_filters 总字节数超限InvalidParametersearch_filters total bytes must less than 80000
非结构化 filter 包含非法 keyInvalidParametersearch_filters[{i}] contains invalid key '{key}'. Only 'tags' and 'meta' are allowed for unstructured data
非结构化 tags/meta 数组超限InvalidParametersearch_filters[{i}].tags array size must not exceed 1000
多种参数错误都返回同一个错误码 InvalidParameter,仅凭错误码无法精准定位错误原因,请参照 message 字段。

Authorizations

string
header
required

DashScope API Key,在控制台 API Key 页面(https://agent.console.aliyun.com/settings/apikey)获取。

Body

application/json
string
required

知识检索服务(agent)实例 ID。服务端据此加载已发布的 agent_config(含全部 A 类检索策略)。在控制台知识检索页面创建并发布后获取。

string
default""

文本检索意图。与 images 至少传入一个;纯图搜时可传空串;非纯图搜场景(未传 images)下必填,否则返回 InvalidParameter

string[]
default[]

图片检索意图,元素为图片 URL(须公网可访问)。与 query 至少传入一个,可同时传入实现多模态检索。

string

agent 版本。标准接口仅暴露 agent_id / agent_version / query / images / kb_search_configs,其余检索策略一律走 agent_config,不在请求中暴露。

object[]

知识库过滤配置数组。每个元素对应一个知识库,可指定文档/标签过滤条件。id 必须属于 agent 已绑定的知识库,同一请求中不可重复。

Response

200-application/json
string

业务状态码,Success 表示成功;失败时为对应错误码字符串。

integer

语义状态码,成功为 200。

string

状态枚举,成功 SUCCESS,失败 ERROR

boolean

是否成功。调用方以此字段作为主判定。

string

状态描述。

string

请求唯一标识,排查问题时请提供此 ID。

object
Managed Agent API
RAG API
Connector API
Memory API
框架集成
  • 框架