Skip to main content
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
不经过 Dify 控制台,直接在自己的代码中构建和维护 知识库:创建知识库、导入文档和分段、用元数据和标签组织内容,并可直接调用检索接口用于搜索或 RAG。
单个知识库 API 密钥可访问创建该密钥的账户下所有可见的知识库,妥善保管密钥,避免数据意外泄露。

获取 API 端点和密钥

知识库 页面右上角点击 服务 API,打开 API 配置面板,可在此:
  • 复制服务 API 端点,这是所有知识库 API 请求的基础 URL。
  • 点击 API 密钥 创建和管理密钥。
在服务端妥善保存 API 密钥,切勿在客户端代码或公开仓库中暴露。

管理知识库的 API 访问权限

默认情况下,每个知识库都可通过 API 访问。如需限制某个知识库的访问,打开该知识库,点击左下角的 访问 API,关闭开关即可。

创建和管理知识库

添加和更新文档

文档创建是异步的,需要先创建文档,再轮询等待索引完成:
1

创建知识库

调用 创建空知识库,也可直接使用已有的知识库。
2

添加文档

调用 从文本创建文档从文件创建文档,两者都会返回一个 batch ID。如果创建知识库时未设置 indexing_technique(内容用于检索的索引方式),在第一个文档上设置即可,后续文档会自动继承。
3

轮询索引状态

使用 batch ID 轮询 获取文档嵌入状态(进度),直到 indexing_status 变为 completederror,期间会依次经过 waitingparsingcleaningsplittingindexing 几个阶段。
  • 获取知识库的文档列表:返回分页列表,支持按关键词或索引状态筛选。
  • 获取文档详情:返回文档的索引状态、元数据和处理统计信息,metadata 查询参数控制响应包含、省略还是仅返回元数据字段。
  • 下载文档:返回文档原始上传文件的签名下载 URL。
  • 批量下载文档(ZIP):最多可将 100 个通过文件上传的文档打包为一个压缩包。
  • 更新文档:上传新文件替换文档内容并重新触发索引,是基于文件更新文档的标准方式。
  • 用文本更新文档:直接更新文档的文本内容、名称或处理配置,内容变更时将重新触发索引。
  • 用文件更新文档:已废弃的别名接口,用于上传替换文件,改用「更新文档」。
  • 批量更新文档状态:一次性启用、禁用、归档或取消归档多个文档。
  • 删除文档:永久删除文档及其中的所有分段。

管理分段与子分段

对于父子模式(hierarchical_model)的文档,子分段挂在父分段下。通过 API 创建或更新的子分段,其 type 始终为 customized,区别于索引流程自动生成的 automatic 子分段。

管理元数据字段

元数据字段为文档附加结构化信息,检索时可据此过滤: 元数据还可充当稳定的外部键:在每个文档上存入源系统的 ID,后续同步时按该 ID 过滤,即可找到并更新同一批文档。

用标签组织知识库

标签在工作空间层面管理,不依附于某个具体知识库:

查询可用模型

  • 获取可用模型:返回指定 model_type 下的可用模型。配置知识库时,可查询 text-embedding 获取嵌入模型,或查询 rerank 获取重排序模型。

运行知识流水线

知识流水线是一种工作流,从数据源摄取数据并将其转换为文档:
  • 上传流水线文件:上传供流水线处理的文件。
  • 获取数据源插件列表:返回流水线中配置的数据源节点,默认返回已发布版本,传入 is_published=false 则返回草稿版本。
  • 执行数据源节点:执行单个数据源节点并以流式返回结果,适合单独测试某个步骤。
  • 运行流水线:以 streamingblocking 模式执行完整流水线,通过 is_published 指定运行已发布版本还是当前草稿。
Last modified on July 9, 2026