Skip to main content
不经过 Dify 控制台,直接在自己的代码中构建和维护 知识库:创建知识库、导入文档和分段、用元数据和标签组织内容,并可直接调用检索接口用于搜索或 RAG。
单个知识库 API 密钥可访问工作空间所有者可见的所有知识库(知识库 API 请求以所有者身份执行,与密钥由谁创建无关)。妥善保管密钥,避免数据意外泄露。

获取 API 端点和密钥

知识库 页面切换到 API 标签页,可在此:
  • 复制 API 服务器 地址,这是所有知识库 API 请求的基础 URL。
  • 点击 API 密钥 创建和管理密钥。
在服务端妥善保存 API 密钥,切勿在客户端代码或公开仓库中暴露。

创建和管理知识库

添加和更新文档

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

创建知识库

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

添加文档

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

轮询索引状态

使用 batch ID 轮询 获取文档嵌入状态(进度),直到 indexing_status 变为 completederror,期间会依次经过 waitingparsingcleaningsplittingindexing 几个阶段。

管理分段与子分段

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

管理元数据字段

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

用标签组织知识库

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

查询可用模型

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