> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 知识库 API

> 用于管理知识库、文档和分段的 API

不经过 Dify 控制台，直接在自己的代码中构建和维护 [知识库](/zh/2.8.x/use/knowledge/readme)：创建知识库、导入文档和分段，并可直接调用检索接口用于搜索或 RAG。

<Note>
  单个知识库 API 密钥可访问工作空间所有者可见的所有知识库（知识库 API 请求以所有者身份执行，与密钥由谁创建无关）。妥善保管密钥，避免数据意外泄露。
</Note>

## 获取 API 端点和密钥

在 **知识库** 页面切换到 **API** 标签页，可在此：

* 复制 **API 服务器** 地址，这是所有知识库 API 请求的基础 URL。
* 点击 **API 密钥** 创建和管理密钥。

<Warning>
  在服务端妥善保存 API 密钥，切勿在客户端代码或公开仓库中暴露。
</Warning>

## 创建和管理知识库

* **[创建空知识库](/zh/2.8.x/develop/api/knowledge-bases/create-an-empty-knowledge-base)**：创建一个还没有文档的知识库。
* **[获取知识库列表](/zh/2.8.x/develop/api/knowledge-bases/list-knowledge-bases)**：返回分页列表，支持按关键词或标签筛选。
* **[删除知识库](/zh/2.8.x/develop/api/knowledge-bases/delete-knowledge-base)**：永久删除知识库及其中的所有文档。
* **[从知识库检索分段 / 测试检索](/zh/2.8.x/develop/api/knowledge-bases/retrieve-chunks-from-a-knowledge-base-test-retrieval)**：搜索知识库并返回最相关的分段，生产检索和召回测试共用同一个接口。

## 添加和更新文档

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

<Steps>
  <Step title="创建知识库">
    调用 [创建空知识库](/zh/2.8.x/develop/api/knowledge-bases/create-an-empty-knowledge-base)，也可直接使用已有的知识库。
  </Step>

  <Step title="添加文档">
    调用 [从文本创建文档](/zh/2.8.x/develop/api/documents/create-document-by-text) 或 [从文件创建文档](/zh/2.8.x/develop/api/documents/create-document-by-file)，两者都会返回一个 `batch` ID。

    如果创建知识库时未设置 `indexing_technique`（内容用于检索的索引方式），在第一个文档上设置即可，后续文档会自动继承。
  </Step>

  <Step title="轮询索引状态">
    使用 `batch` ID 轮询 [获取文档嵌入状态（进度）](/zh/2.8.x/develop/api/documents/get-document-indexing-status)，直到 `indexing_status` 变为 `completed` 或 `error`，期间会依次经过 `waiting`、`parsing`、`cleaning`、`splitting`、`indexing` 几个阶段。
  </Step>
</Steps>

* **[获取知识库的文档列表](/zh/2.8.x/develop/api/documents/list-documents)**：返回分页列表，支持按关键词筛选。
* **[用文本更新文档](/zh/2.8.x/develop/api/documents/update-document-by-text)**：直接更新文档的文本内容、名称或处理配置，内容变更时将重新触发索引。
* **[用文件更新文档](/zh/2.8.x/develop/api/documents/update-document-by-file)**：上传新文件替换文档内容并重新触发索引。
* **[删除文档](/zh/2.8.x/develop/api/documents/delete-document)**：永久删除文档及其中的所有分段。

## 管理分段

* **[向文档添加分段](/zh/2.8.x/develop/api/chunks/create-chunks)**：手动为文档添加分段（上传的内容在索引时已自动分段）。每个分段都需要 `content`，问答模式的文档还需要 `answer`。
* **[从文档获取分段](/zh/2.8.x/develop/api/chunks/list-chunks)**：返回分段列表，支持按关键词或状态筛选。
* **[更新文档中的分段](/zh/2.8.x/develop/api/chunks/update-chunk)**：修改分段的内容、关键词或答案，并为该分段重新触发索引。
* **[删除文档中的分段](/zh/2.8.x/develop/api/chunks/delete-chunk)**：永久删除该分段。
