⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。

Dify 对外部知识库仅拥有检索权限,无法修改或管理你的外部内容。你需要独立维护外部知识库及其检索逻辑。
Step 1: 构建检索 API
构建一个实现 外部知识库 API 规范 的 API 服务。该服务需提供一个POST 端点,接受搜索查询并返回匹配的文本分段及相似度分数。
Step 2: 注册外部知识库 API
外部知识库 API 用于存储你的端点 URL 和认证凭据。多个知识库可共享同一个 API 连接。- 前往 知识库,点击右上角的 外部知识库 API,然后点击 添加外部知识库 API。
-
填写以下字段:
- 名称:用于区分不同 API 连接的标签。
- API 接口地址:外部知识服务的基础 URL。Dify 发送请求时自动追加
/retrieval。 - API Key:认证凭据。Dify 将其作为 Bearer 令牌放在
Authorization请求头中发送。
Step 3: 创建外部知识库
注册 API 后,将外部知识源连接到 Dify。这会在 Dify 中创建一个与你的外部系统关联的知识库。-
前往 知识库,点击 连接外部知识库。

-
填写以下字段:
- 外部知识库名称 和 知识库描述(可选)。
- 外部知识库 API:选择你已注册的 API 连接。
-
外部知识库 ID:外部系统中特定知识源的标识符,作为
knowledge_id字段传递给你的 API。 这个 ID 是你的外部服务用于区分不同知识库的标识符。例如,Bedrock 知识库的 ARN,或者你在自己系统中定义的 ID。外部知识库 API 和 外部知识库 ID 创建后不可更改。如需使用其他 API 或知识源,请创建新的外部知识库。 -
检索设置:
- Top K:每次查询检索的最大分段数。数值越高,返回的结果越多,但可能包含相关性较低的内容。
- 分数阈值:返回分段的最低相似度分数。启用此选项可过滤掉低相关性的结果。数值越高,相关性要求越严格;数值越低,匹配范围越广。 禁用时,无论分数如何,均返回 Top K 限制内的所有结果。
常见问题
连接被拒绝或超时(自托管环境)
Dify 通过基于 Squid 的 SSRF 代理路由出站 HTTP 请求。如果你的外部知识服务与 Dify 运行在同一主机上,或其域名未添加到白名单中,代理会阻止该请求。 要允许连接,请将你的服务域名添加到docker/ssrf_proxy/squid.conf.template 的 allowed_domains ACL 中:
API 响应格式问题
如果检索失败或返回意外结果,请根据 外部知识库 API 规范 验证你的 API 响应。 常见问题:- 每条记录中的
metadata字段必须是一个对象({}),不能为null。null值会导致检索流程出错。 - 每条记录必须包含
content和score字段。