端点

POST <your-endpoint>/retrieval

请求头

该 API 用于连接团队内独立维护的知识库,如需了解更多操作指引,请参考阅读 连接外部知识库。你可以在 HTTP 请求头的 Authorization 字段中使用 API-Key 来验证权限。身份验证逻辑由您在检索 API 中定义,如下所示:

Authorization: Bearer {API_KEY}

请求体元素

请求接受以下 JSON 格式的数据。

属性是否必需类型描述示例值
knowledge_id字符串知识库唯一 IDAAA-BBB-CCC
query字符串用户的查询Dify 是什么?
retrieval_setting对象知识检索参数见下文
metadata_condition对象原数组筛选见下文

retrieval_setting 属性是一个包含以下键的对象:

属性是否必需类型描述示例值
top_k整数检索结果的最大数量5
score_threshold浮点数结果与查询相关性的分数限制,范围:0~10.5

metadata_condition 属性是一个包含以下键的对象:

属性是否必需类型描述示例值
logical_operator字符串逻辑操作符,取值为 andor,默认 andand
conditions数组(对象)条件列表见下文

conditions 数组中的每个对象包含以下键:

属性是否必需类型描述示例值
name数组(字符串)需要筛选的 metadata 名称["category", "tag"]
comparison_operator字符串比较操作符contains
value字符串对比值,当操作符为 emptynot emptynullnot null 时可省略"AI"

支持的 comparison_operator 操作符:

  • contains:包含某个值
  • not contains:不包含某个值
  • start with:以某个值开头
  • end with:以某个值结尾
  • is:等于某个值
  • is not:不等于某个值
  • empty:为空
  • not empty:不为空
  • =:等于
  • :不等于
  • >:大于
  • <:小于
  • :大于等于
  • :小于等于
  • before:在某个日期之前
  • after:在某个日期之后

请求语法

POST <your-endpoint>/retrieval HTTP/1.1
-- 请求头
Content-Type: application/json
Authorization: Bearer your-api-key
-- 数据
{
    "knowledge_id": "your-knowledge-id",
    "query": "你的问题",
    "retrieval_setting":{
        "top_k": 2,
        "score_threshold": 0.5
    }
}

响应元素

如果操作成功,服务将返回 HTTP 200 响应。服务以 JSON 格式返回以下数据。

属性是否必需类型描述示例值
records对象列表从知识库查询的记录列表见下文

records 属性是一个包含以下键的对象列表:

属性是否必需类型描述示例值
content字符串包含知识库中数据源的文本块Dify:GenAI 应用程序的创新引擎
score浮点数结果与查询的相关性分数,范围:0~10.5
title字符串文档标题Dify 简介
metadatajson包含数据源中文档的元数据属性及其值见示例

响应语法

HTTP/1.1 200
Content-type: application/json
{
    "records": [{
                    "metadata": {
                            "path": "s3://dify/knowledge.txt",
                            "description": "dify 知识文档"
                    },
                    "score": 0.98,
                    "title": "knowledge.txt",
                    "content": "这是外部知识的文档。"
            },
            {
                    "metadata": {
                            "path": "s3://dify/introduce.txt",
                            "description": "dify 介绍"
                    },
                    "score": 0.66,
                    "title": "introduce.txt",
                    "content": "GenAI 应用程序的创新引擎"
            }
    ]
}

错误

如果操作失败,服务将返回以下错误信息(JSON 格式):

属性是否必需类型描述示例值
error_code整数错误代码1001
error_msg字符串API 异常描述无效的 Authorization 头格式。预期格式为 Bearer <api-key>’。

error_code 属性有以下类型:

代码描述
1001无效的 Authorization 头格式
1002授权失败
2001知识库不存在

HTTP 状态码

AccessDeniedException 由于缺少访问权限,请求被拒绝。请检查您的权限并重试。 HTTP 状态码:403

InternalServerException 发生内部服务器错误。请重试您的请求。 HTTP 状态码:500