Echo's blog
Echo's blog
· 1 min read · Dify平台

Dify 知识库管理

Dify 知识库管理#

本文整理自 Dify 官方文档,涵盖 知识库管理 章节的全部内容。

本章内容#


PRTCL // PLAINTEXT
1|# 连接外部知识库
2|
3|> 原文:[连接外部知识库](https://docs.dify.ai/zh/use-dify/knowledge/connect-external-knowledge-base)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/connect-external-knowledge-base)。
11|
12|如果你的团队自建 RAG 系统,或将内容托管在第三方知识服务(如[AWS Bedrock](https://aws.amazon.com/bedrock/))中,你可将这些外部知识源连接到 Dify,无需将内容迁移至 Dify 内置的知识库。
13|
14|这样,你的 AI 应用可直接从现有基础设施中检索信息,同时你可完全掌控检索逻辑和内容管理。
15|
16|
17|** 连接外部知识库包含三个步骤 **:
18|
19|
20|- [构建一个供 Dify 查询的 API 服务](#step-1-%E6%9E%84%E5%BB%BA%E6%A3%80%E7%B4%A2-api)。
21|- [在 Dify 中注册 API 端点](#step-2-%E6%B3%A8%E5%86%8C%E5%A4%96%E9%83%A8%E7%9F%A5%E8%AF%86%E5%BA%93-api)。
22|- [通过已注册的 API 连接特定知识源](#step-3-%E5%88%9B%E5%BB%BA%E5%A4%96%E9%83%A8%E7%9F%A5%E8%AF%86%E5%BA%93)。应用运行时,Dify 向你的端点发送检索请求,并将返回的分段作为 LLM 响应的上下文。
23|
24|
25|> 💡 如果你要连接 LlamaCloud,可直接安装[LlamaCloud 插件](https://marketplace.dify.ai/plugin/langgenius/llamacloud) 而无需构建自定义 API。完整的设置演示详见[视频教程](https://www.youtube.com/watch?v=FaOzKZRS-2E)。
26|
27|如果你正在为其他知识服务构建插件,可参考 LlamaCloud 插件的[源代码](https://github.com/langgenius/dify-official-plugins/tree/main/extensions/llamacloud)。
28|
29|
30|> 💡 Dify 对外部知识库仅拥有检索权限,无法修改或管理你的外部内容。你需要独立维护外部知识库及其检索逻辑。
31|
32|
33|## Step 1: 构建检索 API 构建一个实现[外部知识库 API 规范](/zh/use-dify/knowledge/external-knowledge-api) 的 API 服务。该服务需提供一个`POST`端点,接受搜索查询并返回匹配的文本分段及相似度分数。
34|
35|
36|## Step 2: 注册外部知识库 API 外部知识库 API 用于存储你的端点 URL 和认证凭据。多个知识库可共享同一个 API 连接。
37|
38|
39|- 前往 ** 知识库 **,点击右上角的 ** 外部知识库 API**,然后点击 ** 添加外部知识库 API**。
40|
41|
42|- 填写以下字段:
43|
44|
45|- ** 名称 **:用于区分不同 API 连接的标签。
46|- **API 接口地址 **:外部知识服务的基础 URL。Dify 发送请求时自动追加`/retrieval`。
47|- **API Key**:认证凭据。Dify 将其作为 Bearer 令牌放在`Authorization`请求头中发送。保存时,Dify 向你的端点发送测试请求以验证连接。
48|
49|
50|## Step 3: 创建外部知识库注册 API 后,将外部知识源连接到 Dify。这会在 Dify 中创建一个与你的外部系统关联的知识库。
51|
52|
53|- 前往 ** 知识库 **,点击 ** 连接外部知识库 **。
54|
55|
56|- 填写以下字段:
57|
58|
59|- ** 外部知识库名称 ** 和 ** 知识库描述 **(可选)。
60|
61|
62|- ** 外部知识库 API**:选择你已注册的 API 连接。
63|
64|
65|- ** 外部知识库 ID**:外部系统中特定知识源的标识符,作为`knowledge_id`字段传递给你的 API。
66|
67|这个 ID 是你的外部服务用于区分不同知识库的标识符。例如,Bedrock 知识库的 ARN,或者你在自己系统中定义的 ID。
68|
69|
70|> ⚠️ ** 外部知识库 API** 和 ** 外部知识库 ID** 创建后不可更改。如需使用其他 API 或知识源,请创建新的外部知识库。
71|
72|
73|- ** 检索设置 **:
74|
75|
76|- **Top K**:每次查询检索的最大分段数。数值越高,返回的结果越多,但可能包含相关性较低的内容。
77|
78|
79|- ** 分数阈值 **:返回分段的最低相似度分数。启用此选项可过滤掉低相关性的结果。数值越高,相关性要求越严格;数值越低,匹配范围越广。
80|
81|禁用时,无论分数如何,均返回 Top K 限制内的所有结果。
82|
83|创建完成后,即可在你的应用中使用外部知识库,用法与内置知识库相同。详见[在应用内集成知识库](/zh/use-dify/knowledge/integrate-knowledge-within-application)。
84|
85|
86|## 常见问题
87|### 连接被拒绝或超时(自托管环境)Dify 通过基于 Squid 的 SSRF 代理路由出站 HTTP 请求。如果你的外部知识服务与 Dify 运行在同一主机上,或其域名未添加到白名单中,代理会阻止该请求。
88|
89|要允许连接,请将你的服务域名添加到`docker/ssrf_proxy/squid.conf.template`的`allowed_domains`ACL 中:
90|
91|
92|```
93|`acl allowed_domains dstdomain .marketplace.dify.ai .your-kb-service.com
94|`
95|```
96|编辑后请重启 SSRF 代理容器。
97|
98|
99|### API 响应格式问题如果检索失败或返回意外结果,请根据[外部知识库 API 规范](/zh/use-dify/knowledge/external-knowledge-api#%E5%93%8D%E5%BA%94) 验证你的 API 响应。

100| 101|常见问题: 102| 103| 104|- 每条记录中的metadata字段必须是一个对象({}),不能为nullnull值会导致检索流程出错。 105|- 每条记录必须包含contentscore字段。 106|


PRTCL // PLAINTEXT
1|# 指定分段设置
2|
3|> 原文:[指定分段设置](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/chunking-and-cleaning-text)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/chunking-and-cleaning-text)。
11|
12|
13|## 什么是分段?导入知识库的文档会被拆分为较小的片段,称为 ** 分段 **。分段的概念类似于将一本大书整理成章节和段落——你无法在一大块文本中快速找到特定信息,但组织良好的章节能使检索变得高效。
14|
15|当用户提出问题时,系统会在这些分段中搜索相关信息,并将其作为上下文提供给 LLM。如果没有分段,每次查询都需要处理整个文档,这将既缓慢又低效。
16|
17|** 关键分段参数 **
18|
19|
20|- ** 分隔符 **:文本被拆分的字符或字符序列。例如,`\n\n`在段落换行处拆分,`\n`在行换行处拆分。
21|
22|
23|> ⚠️ 分隔符在分段过程中会被移除。例如,使用`A`作为分隔符会将`CBACD`拆分为`CB`和`CD`。
24|
25|为避免信息丢失,请使用文档中不会自然出现的非内容字符。
26|
27|
28|- ** 分段最大长度 **:每个分段的最大字符数。超过此限制的文本将被强制拆分,无论分隔符设置如何。
29|
30|
31|## 通用模式与父子模式
32|> ⚠️ 知识库创建后,分段模式无法更改。但分隔符和分段最大长度等分段设置可以随时调整。
33|
34|
35|### 模式概述
36|- 通用模式
37|- 父子模式:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content"> 在通用模式下,所有分段共享相同的设置。匹配的分段将直接作为检索结果返回。
38|
39|** 分段设置 **
40|
41|除了分隔符和分段最大长度外,你还可以配置 ** 分段重叠长度 ** 来指定相邻分段之间重叠的字符数。这有助于保持语义连接,防止重要信息被拆分到不同的分段边界。
42|
43|例如,设置 50 个字符的重叠,一个分段的最后 50 个字符也会出现在下一个分段的前 50 个字符中。
44|
45|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 在父子模式下,文本被拆分为两层:较小的 ** 子分段 ** 和较大的 ** 父分段 **。当查询匹配到子分段时,其整个父分段将作为检索结果返回。
46|
47|这解决了一个常见的检索困境:较小的分段能够实现精确的查询匹配但缺乏上下文,而较大的分段提供丰富的上下文但降低了检索准确性。
48|
49|父子模式兼顾两者——以精准检索,以上下文响应。
50|
51|** 父分段设置 **
52|
53|父分段可以在 ** 段落 ** 或 ** 全文 ** 模式下创建。
54|
55|
56|- 段落
57|- 全文:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content"> 文档根据指定的分隔符和分段最大长度被拆分为多个父分段。
58|
59|适用于结构良好的长文档,其中每个部分都能独立提供有意义的上下文。
60|
61|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 整个文档作为单个父分段。
62|
63|适用于小型、内容紧密的文档,其中完整的上下文对于理解任何具体细节都是必要的。
64|
65|
66|> ⚠️ 在 ** 全文 ** 模式下:
67|
68|
69|- 仅处理前 10,000 个 token。超出此限制的内容将被截断。
70|
71|
72|- 父分段创建后无法编辑。如需修改,必须上传新文档。
73|
74|
75|** 子分段设置 **
76|
77|每个父分段会使用其自己的分隔符和分段最大长度设置进一步拆分为子分段。
78|
79|
80|> ⚠️ 避免为父分段和子分段使用互为子集的分隔符,因为这可能导致意外的分段行为。
81|
82|例如,推荐使用`??`和`##`,而不是`??`和`?`。
83|
84|
85|### 快速对比维度通用模式父子模式分段策略单层:所有分段使用相同设置双层:父分段和子分段分别设置检索流程匹配的分段直接返回子分段用于匹配查询;父分段返回以提供更广泛的上下文兼容的[索引方式](/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods) 高质量、经济仅高质量最佳适用场景简单、独立的内容,如术语表或常见问题信息密集型文档,如技术手册或研究论文,上下文很重要
86|## 分段前的文本预处理在将文本拆分为分段之前,你可以清理无关内容以提高检索质量。
87|
88|
89|- ** 替换连续的空格、换行符和制表符 **
90|
91|
92|- 三个或更多连续换行符 → 两个换行符
93|
94|
95|- 多个空格 → 单个空格
96|
97|
98|- 制表符、换页符和特殊 Unicode 空格 → 普通空格
99|

100| 101|- 删除所有 URL 和电子邮件地址 102| 103| 104|> 💡 此设置在全文模式下被忽略。 105| 106| 107|## 启用摘要自动生成 108|> 💡 仅适用于自托管部署。 109| 110|自动为所有分段生成摘要以增强其可检索性。 111| 112|摘要也会被嵌入和索引以用于检索。当摘要匹配查询时,其对应的分段也会被返回。 113| 114|你可以稍后手动编辑自动生成的摘要或为特定文档重新生成摘要。详情请参阅维护知识库内容。 115| 116| 117|> 💡 如果你选择具有视觉能力的 LLM,摘要将基于分段文本和任何附加图像生成。 118| 119| 120|## 预览分段点击预览查看你的内容将如何被分段。将显示有限数量的分段供快速审阅。 121| 122|如果结果与你的预期不完全匹配,请选择最接近的配置——你可以稍后手动微调分段。详情请参阅维护知识库内容。 123| 124|对于多个文档,点击预览面板顶部的文件名以在它们之间切换。 125|


PRTCL // PLAINTEXT
1|# 上传本地文件
2|
3|> 原文:[上传本地文件](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/import-text-data/readme)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/import-text-data/readme)。
11|
12|
13|> ⚠️ 知识库创建后,其数据源无法更改。
14|
15|
16|快速创建知识库时,可上传本地文件作为其数据源:
17|
18|
19|- 点击 ** 知识库 **>** 创建知识库 **。
20|
21|
22|- 选择 ** 导入已有文本 ** 作为数据源,然后上传文件。
23|
24|
25|- 单次最多可上传 5 个文件
26|
27|
28|> 💡 在 Dify Cloud 上,仅[付费套餐](https://dify.ai/zh/pricing) 支持 ** 批量上传 **(单次最多 50 个文件)。
29|
30|
31|- 单个文件最大支持 15 MB
32|
33|
34|> 💡 对于自托管部署,可通过环境变量`UPLOAD_FILE_SIZE_LIMIT`和`UPLOAD_FILE_BATCH_LIMIT`调整这两个限制。
35|
36|
37|** 对于文件中的图片 **
38|
39|JPG、JPEG、PNG 和 GIF 格式且小于 2 MB 的图片将作为附件,自动提取到对应的分段。这些图片可独立管理,并在检索时与分段一同返回。
40|
41|提取的图片 URL 会保留在分段文本中,但你可以放心删除这些 URL 以保持文本整洁——这不会影响已提取的图片。
42|
43|若在索引设置中选择多模态嵌入模型(带有 **Vision** 图标),则提取出的图片也将被向量化并索引以供检索。
44|
45|每个分段最多支持 10 个图片附件,超出的图片不会被提取。
46|
47|
48|> 💡 对于自托管部署,可通过环境变量调整以下限制:
49|
50|
51|- 最大图片尺寸:`ATTACHMENT_IMAGE_FILE_SIZE_LIMIT`
52|
53|
54|- 每个分段的最大附件数量:`SINGLE_CHUNK_ATTACHMENT_LIMIT`
55|
56|
57|以上提取规则适用于如下图片类型:
58|
59|
60|- DOCX 文件中嵌入的图片
61|
62|
63|> 💡 其他文件类型(如 PDF)中嵌入的图片,可通过在[知识流水线](/zh/use-dify/knowledge/knowledge-pipeline/readme) 中使用合适的文档提取插件进行提取。
64|
65|
66|- 在任何文件类型中,通过以下 Markdown 语法引用、URL 可访问的图片:
67|
68|
69|- `![alt text](image_url)`
70|- `![alt text](image_url "optional title")`
71|

PRTCL // PLAINTEXT
1|# 从 Notion 导入数据
2|
3|> 原文:[从 Notion 导入数据](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/import-text-data/sync-from-notion)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/import-text-data/sync-from-notion)。
11|
12|Dify 知识库支持从 Notion 导入,并支持后续的数据自动同步。
13|
14|
15|### 授权验证
16|- 在创建知识库,选择数据源时,点击 ** 同步自 Notion 内容— 去绑定,根据提示完成授权验证。**
17|- 你也可以:进入 ** 设置 — 数据来源 — 添加数据源 ** 中点击 Notion 来源 ** 绑定 **,完成授权验证。
18|
19|
20|### 导入 Notion 数据完成验证授权后,进入创建知识库页面,点击 ** 同步自 Notion 内容 **,选择需要的授权页面进行导入。
21|
22|
23|### 进行分段和清洗接下来,选择知识库的 ** 分段设置 ** 和 ** 索引方式 **,** 保存并处理 **。等待 Dify 自动处理数据。Dify 不仅可以导入 Notion 的普通类型页面,同时也支持导入并汇总保存 database 类型下的页面属性。
24|
25|*** 请注意:暂不支持导入图片和文件,表格类数据会被转换为文本展示。***
26|
27|
28|### 同步 Notion 数据如果你的 Notion 内容有更新,可以在知识库的 ** 文档列表页 ** 中点击对应内容页的 ** 同步 ** 按钮进行数据同步。同步文档涉及嵌入过程,因此将消耗嵌入模型的 Tokens。
29|
30|
31|### 社区版 Notion 的集成配置方法 Notion 分为 ** 内部集成 **(internal integration)和 ** 外部集成 **(public integration)两种方式,两种集成方式的具体区别请参阅[Notion 官方文档](https://developers.notion.com/guides/get-started/authorization)。
32|
33|
34|### 1、** 使用 internal 集成方式 ** 首先,在集成的设置页面中[创建集成](https://www.notion.so/my-integrations)。默认情况下,所有集成都以内部集成开始;内部集成将与你选择的工作区相关联,因此你需要是工作区所有者才能创建集成。
35|
36|具体操作步骤:
37|
38|点击“**New integration**”按钮,类型默认是 **Internal**(不可修改),选择关联的空间,输入集成名称并上传 logo 后,点击“Submit”,集成创建成功。
39|
40|
41|创建集成后,你可以根据需要在 Capabilities 选项卡下更新其设置,并在 Secrets 下点击 “Show” 按钮然后复制 Secrets。
42|
43|
44|复制后回到 Dify 源代码下,在 **.env** 文件里配置相关环境变量,环境变量如下:
45|
46|
47|```
48|`NOTION_INTEGRATION_TYPE = internal or NOTION_INTEGRATION_TYPE = public
49|NOTION_INTERNAL_SECRET=you-internal-secret
50|`
51|```
52|
53|### 2、** 使用 Public 集成方式 **** 需要将 internal 集成升级为 public 集成 **,导航到集成的 Distribution 页面,然后切换开关以公开集成。将开关切换到公共设置,你需要在下面的 Organization Information 表单中填写其他信息,包括你的公司名称、网站和重定向 URL 等信息,然后点击“Submit”按钮。
54|
55|
56|在集成的设置页面中成功公开集成后,你将能够在密钥选项卡中访问集成的密钥:
57|
58|
59|回到 Dify 源代码下,在 **.env** 文件里配置相关环境变量,环境变量如下:
60|
61|
62|```
63|`NOTION_INTEGRATION_TYPE=public
64|NOTION_CLIENT_SECRET=you-client-secret
65|NOTION_CLIENT_ID=you-client-id
66|`
67|```
68|配置完成后,即可在知识库中操作 Notion 的数据导入及同步功能。
69|

PRTCL // PLAINTEXT
1|# 从网页导入数据
2|
3|> 原文:[从网页导入数据](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/import-text-data/sync-from-website)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/import-text-data/sync-from-website)。
11|
12|知识库支持通过第三方工具如[Jina Reader](https://jina.ai/reader),[Firecrawl](https://www.firecrawl.dev/) 抓取公开网页中的内容,解析为 Markdown 内容并导入至知识库。
13|
14|
15|> 💡 Jina Reader 和 Firecrawl 均是开源的网页解析工具,能将网页将其转换为干净并且方便 LLM 识别的 Markdown 格式文本,同时提供了易于使用的 API 服务。
16|
17|
18|下文将分别介绍 Firecrawl 和 Jina Reader 的使用方法。
19|
20|
21|## Firecrawl
22|### 配置 Firecrawl 凭据点击右上角头像,然后前往 **DataSource** 页面,点击 Firecrawl 右侧的 Configure 按钮。
23|
24|
25|登录[Firecrawl 官网](https://www.firecrawl.dev/) 完成注册,获取 API Key 后按照页面提示填入并点击保存。
26|
27|
28|### 使用 Firecrawl 抓取网页内容在知识库创建页选择 **Sync from website**,provider 选中 Firecrawl,填入需要抓取的目标 URL。
29|
30|设置中的配置项包括:是否抓取子页面、抓取页面数量上限、页面抓取深度、排除页面、仅抓取页面、提取内容。完成配置后点击 **Run**,预览将要被抓取的目标页面链接。
31|
32|
33|导入网页解析的文本后存储至知识库的文档中,查看导入结果。点击 **Add URL** 可以继续导入新的网页。抓取完成后,网页中的内容将会被收录至知识库内。
34|
35|
36|## Jina Reader
37|### 配置 Jina Reader 凭据点击右上角头像,然后前往 **DataSource** 页面,点击 Jina Reader 右侧的 Configure 按钮。
38|
39|
40|登录[Jina Reader 官网](https://jina.ai/reader) 完成注册,获取 API Key 后并按照页面提示填入并保存。
41|
42|
43|### 使用 Jina Reader 抓取网页内容在知识库创建页选择 **Sync from website**,provider 选中 Jina Reader,填写需要抓取的目标 URL。
44|
45|
46|设置中的配置项包括:是否抓取子页面、抓取页面数量上限、是否使用 sitemap 抓取。完成配置后点击 **Run** 按钮,预览将要被抓取的页面链接。
47|
48|
49|导入网页解析的文本后存储至知识库的文档中,查看导入结果。如需继续添加网页,轻点右侧 **Add URL** 按钮继续导入新的网页。
50|
51|
52|抓取完成后,网页中的内容将会被收录至知识库内。
53|

PRTCL // PLAINTEXT
1|# 快速创建知识库
2|
3|> 原文:[快速创建知识库](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/introduction)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/introduction)。
11|
12|快速创建并配置知识库的步骤如下:
13|
14|
15|- 点击 ** 知识库 **>** 创建知识库 **。然后,[上传本地文件](/zh/use-dify/knowledge/create-knowledge/import-text-data/readme)、[从 Notion 导入数据](/zh/use-dify/knowledge/create-knowledge/import-text-data/sync-from-notion)、[从网页导入数据](/zh/use-dify/knowledge/create-knowledge/import-text-data/sync-from-website),或创建一个空的知识库。
16|
17|
18|- [指定分段设置](/zh/use-dify/knowledge/create-knowledge/chunking-and-cleaning-text)。该阶段是内容的预处理与数据结构化过程,长文本将会被划分为多个内容分段。你可以在此环节预览文本的分段效果。
19|
20|
21|- [指定索引方式和检索设置](/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods)。知识库在接收到用户查询问题后,按照预设的检索方式在已有的文档内查找相关内容,提取出高度相关的信息片段供语言模型生成高质量答案。
22|
23|
24|- 等待数据处理完成,完成知识库的创建。
25|

PRTCL // PLAINTEXT
1|# 指定索引方式与检索设置
2|
3|> 原文:[指定索引方式与检索设置](https://docs.dify.ai/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/create-knowledge/setting-indexing-methods)。
11|
12|选定内容的分段模式后,接下来设定对于结构化内容的 ** 索引方式 **。
13|
14|
15|## 选择索引方式正如搜索引擎通过高效的索引算法匹配与用户问题最相关的网页内容,索引方式是否合理将直接影响 LLM 对知识库内容的检索效率以及回答的准确性。
16|
17|提供 ** 高质量 ** 与 ** 经济 ** 两种索引方式,其中分别提供不同的检索设置选项。
18|
19|
20|- 高质量
21|- 经济:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content">
22|> ⚠️ 一旦以高质量型索引方式创建知识库,后续无法切换为经济型索引。
23|
24|
25|高质量索引方式使用嵌入模型将内容分段转化为数字向量,这一过程称为嵌入或向量化。
26|
27|这些向量可理解为多维空间中的坐标点——两个点越接近,它们的语义越相似。这使得系统能够基于语义相似度(而不仅仅是关键词匹配)找到相关信息。
28|
29|
30|> 💡 若要启用跨模态检索——即基于语义相关性同时检索文本和图片——需选择多模态嵌入模型(带有 **Vision** 图标)。从文档中提取的图片将被嵌入并索引以供检索。
31|
32|使用此类嵌入模型的知识库,其卡片上标有 **Multimodal**。
33|
34|
35|高质量索引方式支持三种检索策略:向量检索、全文检索或混合检索。详见[指定检索设置](#%E6%8C%87%E5%AE%9A%E6%A3%80%E7%B4%A2%E8%AE%BE%E7%BD%AE)。
36|
37|
38|### Q&A 模式
39|> 💡 Q&A 模式仅适用于自托管部署。
40|
41|
42|开启该模式后,系统将对已上传的文本进行分段。总结内容后为每个分段自动生成 Q&A 匹配对。
43|
44|与常见的 「Q to P」(用户问题匹配文本段落)策略不同,Q&A 模式采用 「Q to Q」(问题匹配问题)策略。
45|
46|这种方法特别有效,因为常见问题文档中的文本 ** 通常是具备完整语法结构的自然语言 **。
47|
48|**Q to Q** 策略使问题和答案的匹配更加清晰,并能更好地支持高频或高相似度问题的场景。
49|
50|
51|当用户提问时,系统会找出与之最相似的问题,然后返回对应的分段作为答案。这种方式更加精确,因为它直接针对用户问题进行匹配,可以更准确地帮助用户检索真正需要的信息。
52|
53|
54|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 在经济模式下,每个区块内使用 10 个关键词进行检索,降低了准确度但无需消耗 Token。对于检索到的区块,仅提供倒排索引方式选择最相关的区块。
55|
56|如果经济型索引方式的效果不符合预期,可以在知识库设置页中升级为高质量索引方式。
57|
58|
59|## 指定检索设置知识库在接收到用户查询问题后,按照预设的检索方式在已有的文档内查找相关内容,提取出高度相关的信息片段。这些片段为 LLM 提供必要的上下文,最终影响其回答的准确性和可信度。
60|
61|常见的检索方式包括:
62|
63|
64|- 基于向量相似度的语义检索——将文本块和查询转化为向量,通过相似度评分进行匹配。
65|- 使用倒排索引的关键词匹配(一种标准的搜索引擎技术)。Dify 的知识库支持这两种检索方式。具体可用的检索选项取决于所选的索引方式。
66|
67|
68|- 高质量
69|- 经济:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content">** 高质量 **
70|
71|在 ** 高质量 ** 索引方式下,Dify 提供三种检索设置:** 向量检索、全文检索和混合检索 **。
72|
73|
74|** 向量检索 **
75|
76|** 定义 **: 向量化用户输入的问题并生成查询向量,然后将其与知识库中对应的文本向量进行比较,找到最相邻的分段。
77|
78|
79|** 向量检索设置 **:
80|
81|**Rerank 模型 **: 默认关闭。开启后将使用第三方 Rerank 模型对向量检索返回的文本分段进行重新排序,以优化结果。这有助于 LLM 获取更精确的信息并提升输出质量。开启该选项前,需前往 ** 设置 **→** 模型供应商 **,提前配置 Rerank 模型的 API 密钥。
82|
83|
84|> ⚠️ 若选择的嵌入模型为多模态,需同样选择多模态 Rerank 模型(带有 **Vision** 图标)。否则,检索到的图片将在重排序和检索结果中被排除。
85|
86|
87|开启该功能后,将消耗 Rerank 模型的 Token。详情请参考对应模型的价格说明。
88|
89|**TopK**: 用于确定检索与用户问题相似度最高的文本分段数量。系统同时会根据选用模型上下文窗口大小动态调整分段数量。默认值为 **3**,数值越高,预期被召回的文本分段数量越多。
90|
91|**Score 阈值 **: 用于设置文本分段被检索所需的最低相似度分数。只有超过该分数的分段才会被检索。默认值为 **0.5**。阈值越高,对相似度要求越高,因此被检索的分段数量越少。
92|
93|TopK 和 Score 设置仅在 Rerank 阶段生效。因此,要应用这些设置中的任何一项,需要添加并启用 Rerank 模型。
94|
95|** 全文检索 **
96|
97|** 定义 **: 索引文档中的所有词汇,允许用户查询任意词汇并返回包含这些词汇的文本片段。
98|
99|

100|Rerank 模型: 默认关闭。开启后将使用第三方 Rerank 模型对全文检索返回的文本分段进行重新排序,以优化结果。这有助于 LLM 获取更精确的信息并提升输出质量。开启该选项前,需前往设置模型供应商,提前配置 Rerank 模型的 API 密钥。 101| 102| 103|> ⚠️ 若选择的嵌入模型为多模态,需同样选择多模态 Rerank 模型(带有Vision图标)。否则,检索到的图片将在重排序和检索结果中被排除。 104| 105| 106|开启该功能后,将消耗 Rerank 模型的 Token。详情请参考对应模型的价格说明。 107| 108|TopK: 用于确定检索与用户问题相似度最高的文本分段数量。系统同时会根据选用模型上下文窗口大小动态调整分段数量。默认值为3,数值越高,预期被召回的文本分段数量越多。 109| 110|Score 阈值: 用于设置文本分段被检索所需的最低相似度分数。只有超过该分数的分段才会被检索。默认值为0.5。阈值越高,对相似度要求越高,因此被检索的分段数量越少。 111| 112|TopK 和 Score 设置仅在 Rerank 阶段生效。因此,要应用这些设置中的任何一项,需要添加并启用 Rerank 模型。 113| 114|混合检索 115| 116|定义: 同时执行全文检索和向量检索。它包含一个重排序步骤,根据用户的查询从两种搜索结果中选择最佳匹配结果。 117| 118| 119|在此模式下,你可以指定 **“权重设置”而无需配置 Rerank 模型 API,或启用Rerank 模型进行检索。 120| 121| 122|- 权重设置 123| 124|此功能允许用户为语义优先和关键词优先设置自定义权重。关键词检索指的是在知识库内进行全文检索,语义检索指的是在知识库内进行向量检索。 125| 126| 127|- 语义值设为 1 128| 129|仅启用语义检索模式。借助嵌入模型,即便知识库中没有出现查询中的确切词汇,也能通过计算向量距离的方式提高搜索的深度,返回相关内容。此外,当需要处理多语言内容时,语义检索能够捕捉不同语言之间的意义转换,提供更加准确的跨语言搜索结果。 130| 131| 132|- 关键词值设为 1 133| 134|仅启用关键词检索模式。通过用户输入的信息文本在知识库全文匹配,适用于用户知道确切的信息或术语的场景。该方法所消耗的计算资源较低,适合在大量文档的知识库内快速检索。 135| 136| 137|- 自定义关键词和语义权重 138| 139|除了仅启用语义检索或关键词检索外,还提供灵活的自定义权重设置。你可以不断调整两种方法的权重,找到符合业务场景的最佳权重比例。Rerank 模型 140| 141|默认关闭。开启后将使用第三方 Rerank 模型对混合检索返回的文本分段进行重新排序,以优化结果。这有助于 LLM 获取更精确的信息并提升输出质量。开启该选项前,需前往设置 **→模型供应商,提前配置 Rerank 模型的 API 密钥。 142| 143| 144|> ⚠️ 若选择的嵌入模型为多模态,需同样选择多模态 Rerank 模型(带有Vision图标)。否则,检索到的图片将在重排序和检索结果中被排除。 145| 146| 147|开启该功能后,将消耗 Rerank 模型的 Token。详情请参考对应模型的价格说明。 148| 149|“权重设置””Rerank 模型”设置支持以下选项: 150| 151|TopK: 用于确定检索与用户问题相似度最高的文本分段数量。系统同时会根据选用模型上下文窗口大小动态调整分段数量。默认值为3,数值越高,预期被召回的文本分段数量越多。 152| 153|Score 阈值: 用于设置文本分段被检索所需的最低相似度分数。只有超过该分数的分段才会被检索。默认值为0.5。阈值越高,对相似度要求越高,因此被检索的分段数量越少。 154| 155|:first-child(p)][&>:first-child(p)_img][&>data-table-wrapper]:!pt-0 hidden” data-component-part=“tab-content”>经济 156| 157|在经济索引模式下,仅提供倒排索引方式。倒排索引是一种用于快速检索文档中关键词的数据结构,常用于在线搜索引擎。倒排索引仅支持TopK设置。 158| 159|TopK: 用于确定检索与用户问题相似度最高的文本分段数量。系统同时会根据选用模型上下文窗口大小动态调整分段数量。默认值为3,数值越高,预期被召回的文本分段数量越多。 160| 161| 162|### 参考指定检索设置后,你可以参考以下文档查看在不同场景下关键词与内容块的匹配情况。 163| 164| 165|## 测试知识检索了解如何测试和引用知识库检索 166|


PRTCL // PLAINTEXT
1|# 外部知识库 API
2|
3|> 原文:[外部知识库 API](https://docs.dify.ai/zh/use-dify/knowledge/external-knowledge-api)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/external-knowledge-api)。
11|
12|本页定义了外部知识服务必须实现的 API 协议,以便 Dify 从中检索内容。API 准备就绪后,详见[连接外部知识库](/zh/use-dify/knowledge/connect-external-knowledge-base) 在 Dify 中完成注册。
13|
14|
15|## 认证 Dify 在每个请求中将你配置的 API Key 作为 Bearer 令牌发送:
16|
17|
18|```
19|`Authorization: Bearer ***
20|`
21|```
22|认证逻辑由你自行定义。Dify 仅传递密钥,不会对其进行验证。
23|
24|
25|## 请求
26|```
27|`POST {your-endpoint}/retrieval
28|Content-Type: application/json
29|Authorization: Bearer ***
30|`
31|```
32|Dify 在你配置的端点 URL 后追加`/retrieval`。如果注册的地址为`https://your-service.com`,Dify 将请求发送至`https://your-service.com/retrieval`。
33|
34|
35|### 请求体属性必填类型说明`knowledge_id`是 string 外部系统中知识源的标识符,即连接时填写的 ** 外部知识库 ID** 字段的值,用于将查询路由到正确的知识源。`query`是 string 用户的搜索查询。`retrieval_setting`是 object 检索参数。详见[下文](#retrieval_setting)。`metadata_condition`否 object 元数据筛选条件。详见[下文](#metadata_condition)。
36|#### `retrieval_setting`属性必填类型说明`top_k`是 int 返回结果的最大数量。`score_threshold`是 float 最低相似度分数(0-1)。在 Dify 中禁用分数阈值时,此值为`0.0`。
37|#### `metadata_condition`
38|> 💡 Dify 将元数据条件传递给你的 API,但目前未提供供用户配置的界面。此参数仅用于程序化调用。
39|
40|
41|属性必填类型说明`logical_operator`否 string`and`或`or`。默认值:`and`。`conditions`是 array[object]筛选条件列表。`conditions`中每个对象的结构:
42|
43|属性必填类型说明`name`是 string 要筛选的元数据字段名称。`comparison_operator`是 string 比较运算符。支持的值见下文。`value`否 string、number 或 array[string]比较值。使用`empty`或`not empty`时可省略。支持的比较运算符
44|
45|运算符说明`contains`包含某个值`not contains`不包含某个值`start with`以某个值开头`end with`以某个值结尾`is`等于某个值`is not`不等于某个值`in`匹配列表中的任意值`not in`不匹配列表中的任意值`empty`为空`not empty`不为空`=`等于(数值)`≠`不等于(数值)`>`大于`<`小于`≥`大于或等于`≤`小于或等于`before`在某个日期之前`after`在某个日期之后
46|### 请求示例
47|```
48|`{
49|"knowledge_id":"your-knowledge-id",
50|"query":"Dify 是什么?",
51|"retrieval_setting": {
52|"top_k":3,
53|"score_threshold":0.5
54|}
55|}
56|`
57|```
58|
59|## 响应返回 HTTP 200,响应体为包含`records`数组的 JSON。如果没有匹配结果,返回空数组:`{"records": []}`。
60|
61|
62|### `records`属性类型说明`content`string 检索到的文本分段。Dify 将其作为传递给 LLM 的上下文。`score`float 相似度分数(0-1)。用于分数阈值过滤和结果排序。`title`string 源文档标题。`metadata`object 由 Dify 保留的任意键值对。Dify 不会拒绝缺少字段的记录,但缺少`content`或`score`将导致结果不完整或无法排序。
63|
64|
65|> 💡 记录中的`metadata`必须是对象(`{}`),不能为`null`。`null`值将导致 Dify 检索流程出错。
66|
67|
68|### 响应示例
69|```
70|`{
71|"records": [
72|{
73|"content":"这是外部知识库的文档。",
74|"score":0.98,
75|"title":"knowledge.txt",
76|"metadata": {
77|"path":"s3://dify/knowledge.txt",
78|"description":"dify 知识文档"
79|}
80|},
81|{
82|"content":"GenAI 应用的创新引擎",
83|"score":0.66,
84|"title":"introduce.txt",
85|"metadata": {}
86|}
87|]
88|}
89|`
90|```
91|
92|## 错误处理 Dify 检查响应的 HTTP 状态码。非 200 状态码将触发错误并展示给用户。
93|
94|可选择在 JSON 中返回结构化的错误信息:
95|
96|属性类型说明`error_code`int 自定义的应用级错误码。`error_msg`string 可读的错误描述。以下是建议的错误码,仅为约定,Dify 不强制要求:
97|
98|错误码建议用途 1001 无效的 Authorization 请求头格式 1002 认证失败 2001 知识库不存在
99|### 错误响应示例

100|101|`{ 102|"error_code":1002, 103|"error_msg":"Authorization failed. Please check your API key." 104|} 105|` 106| 107|


PRTCL // PLAINTEXT
1|# 在应用内集成知识库
2|
3|> 原文:[在应用内集成知识库](https://docs.dify.ai/zh/use-dify/knowledge/integrate-knowledge-within-application)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/integrate-knowledge-within-application)。
11|
12|知识库可以作为外部知识提供给大语言模型用于精确回复用户问题,你可以在 Dify 的[所有应用类型](/zh/use-dify/getting-started/key-concepts#dify-%E5%BA%94%E7%94%A8) 内关联已创建的知识库。
13|
14|以聊天助手为例,使用流程如下:
15|
16|
17|- 进入 ** 工作室 — 创建应用 —创建聊天助手 **
18|- 进入 ** 上下文设置 ** 点击 ** 添加 ** 选择已创建的知识库
19|- 在 ** 上下文设置 — 参数设置 ** 内配置 ** 召回策略 **
20|- 在 ** 元数据筛选 ** 板块中配置元数据的筛选条件,使用元数据功能筛选知识库内的文档
21|- 在 ** 添加功能 ** 内打开 ** 引用和归属 **
22|- 在 ** 调试与预览 ** 内输入与知识库相关的用户问题进行调试
23|- 调试完成之后 ** 保存并发布 ** 为一个 AI 知识库问答类应用
24|### 关联知识库并指定召回模式如果当前应用的上下文涉及多个知识库,需要设置召回模式以使得检索的内容更加精确。进入 ** 上下文 — 参数设置 — 召回设置 **。
25|
26|
27|#### 召回设置检索器会在所有与应用关联的知识库中去检索与用户问题相关的文本内容,并将多路召回的相关文档结果合并,以下是召回策略的技术流程图:
28|
29|
30|根据用户意图同时检索所有添加至 **“上下文”** 的知识库,在多个知识库内查询相关文本片段,选择所有和用户问题相匹配的内容,最后通过 Rerank 策略找到最适合的内容并回答用户。该方法的检索原理更为科学。
31|
32|
33|举例:A 应用的上下文关联了 K1、K2、K3 三个知识库,当用户输入问题后,将在三个知识库内检索并汇总多条内容。为确保能找到最匹配的内容,需要通过 Rerank 策略确定与用户问题最相关的内容,确保结果更加精准与可信。
34|
35|在实际问答场景中,每个知识库的内容来源和检索方式可能都有所差异。针对检索返回的多条混合内容,Rerank 策略是一个更加科学的内容排序机制。它可以帮助确认候选内容列表与用户问题的匹配度,改进多个知识间排序的结果以找到最匹配的内容,提高回答质量和用户体验。
36|
37|考虑到 Rerank 的使用成本和业务需求,多路召回模式提供了以下两种 Rerank 设置:
38|
39|** 权重设置 **
40|
41|该设置无需配置外部 Rerank 模型,重排序内容 ** 无需额外花费 **。可以通过调整语义或关键词的权重比例条,选择最适合的内容匹配策略。
42|
43|
44|- ** 语义值为 1**
45|
46|仅启用语义检索模式。借助 Embedding 模型,即便知识库中没有出现查询中的确切词汇,也能通过计算向量距离的方式提高搜索的深度,返回正确内容。此外,当需要处理多语言内容时,语义检索能够捕捉不同语言之间的意义转换,提供更加准确的跨语言搜索结果。
47|
48|语义检索指的是比对用户问题与知识库内容中的向量距离。距离越近,匹配的概率越大。参考阅读:[《Dify:Embedding 技术与 Dify 数据集设计 / 规划》](https://mp.weixin.qq.com/s/vmY_CUmETo2IpEBf1nEGLQ)。
49|
50|
51|- ** 关键词值为 1**
52|
53|仅启用关键词检索模式。通过用户输入的信息文本在知识库全文匹配,适用于用户知道确切的信息或术语的场景。该方法所消耗的计算资源较低,适合在大量文档的知识库内快速检索。
54|
55|
56|- ** 自定义关键词和语义权重 **
57|
58|除了仅启用语义检索或关键词检索模式,我们还提供了灵活的自定义权重设置。你可以通过不断调试二者的权重,找到符合业务场景的最佳权重比例。
59|
60|**Rerank 模型 **
61|
62|Rerank 模型是一种外部评分系统,它会计算用户问题与给定的每个候选文档之间的相似度分数,从而改进语义排序的结果,并返回按相似度分数从高到低排序的文档列表。
63|
64|虽然此方法会产生一定的额外花费,但是更加擅长处理知识库内容来源复杂的情况,例如混合了语义查询和关键词匹配的内容,或返回内容存在多语言的情况。
65|
66|Dify 目前支持多个 Rerank 模型,进入 “模型供应商” 页填入 Rerank 模型(例如 Cohere、Jina AI 等模型)的 API Key。
67|
68|
69|** 可调参数 **
70|
71|
72|- **TopK**
73|
74|用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小,动态调整分段数量。数值越高,预期被召回的文本分段数量越多。
75|
76|
77|- **Score 阈值 **
78|
79|用于设置文本片段筛选的相似度阈值。向量检索的相似度分数需要超过设置的分数后才会被召回,数值越高,预期被召回的文本数量越少。
80|
81|
82|### 使用元数据筛选知识
83|#### 聊天流 / 工作流在 ** 聊天流 / 工作流 ** 的 ** 知识检索 ** 节点中,你可以使用 ** 元数据筛选 ** 功能精确检索文档。该功能有助于你根据文档的元数据字段(如标签、类别或访问权限)优化检索结果。
84|
85|配置步骤
86|- 选择筛选模式
87|
88|
89|- ** 禁用模式 **(默认):禁用 ** 元数据筛选 ** 功能,不配置任何筛选条件。
90|
91|
92|- ** 自动模式 **:系统会根据传输给该 ** 知识检索 ** 节点的 ** 查询变量 ** 自动配置筛选条件,适用于简单的筛选需求。
93|
94|启用自动模式后,你依然需要在 ** 模型 ** 栏中选择合适的大模型以执行文档检索任务。
95|
96|
97|- ** 手动模式 **:用户可以手动配置筛选条件,自由设置筛选规则,适用于复杂的筛选需求。
98|
99|

100|- 如果你选择了手动模式,请参照以下步骤配置筛选条件: 101| 102| 103|- 点击条件按钮,弹出配置框。 104| 105| 106|- 点击配置框中的 **+ 添加条件按钮: 107| 108| 109|- 可以从下拉列表中选择一个已选中知识库内的元数据字段,添加到筛选条件列表中。 110| 111|如果你同时选择了多个知识库,下拉列表只会显示这些知识库共有的元数据字段。 112| 113| 114|- 可以在搜索元数据搜索框中搜索你需要的字段,添加到筛选条件列表中。 115| 116| 117|- 如果需要添加多条字段,可以重复点击+ 添加条件按钮。 118| 119| 120|- 配置字段类型的筛选条件:字段类型筛选条件筛选条件说明与示例字符串 is 字段的值必须与你输入的值完全匹配。例如,如果你设置筛选条件为is "Published",则只会返回标记为 “Published” 的文档。is not 字段的值不能与你输入的值匹配。例如,如果你设置筛选条件为is not "Draft",则会返回所有未标记为 “Draft” 的文档。is empty 字段的值为空。如果你配置了此条件,可以检索到未标记该字符串的文档。is not empty 字段的值不为空。如果你配置了此条件,可以检索到标记了该字符串的文档。contains 字段的值包含你输入的文本。例如,如果你设置筛选条件为contains "Report",则会返回所有包含”Report”的文档,如”Monthly Report” 或 “Annual Report”。not contains 字段的值不包含你输入的文本。例如,如果你设置筛选条件为not contains "Draft",则会返回所有不包含 “Draft” 的文档。starts with 字段的值以你输入的文本开头。例如,如果你设置筛选条件为starts with "Doc",则会返回所有以”Doc”开头的文档,如 “Doc1”、“Document”等。ends with 字段的值以你输入的文本结尾。例如,如果你设置筛选条件为ends with "2024",则会返回所有以”2024”结尾的文档,如”Report 2024”、“Summary 2024”等。数字 = 字段的值必须等于你输入的数字。例如,= 10会匹配所有数字标记为 10 的文档。≠字段的值不能等于你输入的数字。例如,≠ 5会返回所有数字未标记为 5 的文档。> 字段的值必须大于你输入的数字。例如,100会返回所有数字标记为大于 100 的文档。< 字段的值必须小于你输入的数字。例如,<50会返回所有数字标记为小于 50 的文档。≥字段的值必须大于或等于你输入的数字。例如,≥ 20会返回所有数字标记为大于或等于 20 的文档。≤字段的值必须小于或等于你输入的数字。例如,≤ 200会返回所有数字标记为小于或等于 200 的文档。is empty 字段未设置值。例如,is empty会返回所有该字段未标记数字的文档。is not empty 字段已设置值。例如,is not empty会返回所有该字段已标记数字的文档。时间 is 字段的时间值必须与你选择的时间完全匹配。例如,is "2024-01-01"只会返回标记为 2024 年 1 月 1 日的文档。before 字段的时间值必须早于你选择的时间。例如,before "2024-01-01"会返回所有标记为 2024 年 1 月 1 日之前的文档。after 字段的时间值必须晚于你选择的时间。例如,after "2024-01-01"会返回所有标记为 2024 年 1 月 1 日之后的文档。is empty 字段的时间值为空。如果你配置了此条件,可以检索到未标记该时间信息的文档。is not empty 字段的时间值不为空。如果你配置了此条件,可以检索到标记了该时间信息的文档。 121|- 选择并添加元数据筛选值: 122| 123| 124|- 变量:选择变量(Variable),并选择该聊天流 / 工作流中需要用于筛选文档的变量。 125| 126| 127|- 常量:选择常量(Constant),并手动输入你需要的常量值。 128| 129|时间字段类型仅支持使用常量筛选文档。如果你选用时间字段筛选文档,系统会弹出时间选择器,供你选择具体的时间节点。 130| 131| 132|> 💡 当你输入常量筛选值时,该筛选值必须与该元数据字段值的文本完全一致,系统才能返回该文档。例如,当你设置筛选条件为starts with "App"contains "App"时,系统会返回标记为 “Apple” 的文档,但不会返回标记为 “apple” 或 “APPLE” 的文档。 133| 134| 135|- 配置筛选条件之间的逻辑关系ANDOR。 136|- AND:当一个文档满足所有筛选条件时,才能检索到该文档。 137|- OR:只要一个文档满足其中任意一个筛选条件,就可以检索到该文档。 138| 139| 140|- 关闭弹窗,系统将自动保存你的选择。 141|#### 聊天助手在聊天助手中,元数据筛选功能位于界面左下方的上下文板块下方,配置方法与聊天流 / 工作流中的操作一致。你可以按照相同的步骤配置元数据筛选条件。 142| 143| 144|### 在知识库内查看已关联的应用知识库将会在左侧信息栏中显示已关联的应用数量。将鼠标悬停至圆形信息图标时将显示所有已关联的 Apps 列表,点击右侧的跳转按钮即可快速查看对应的应用。 145| 146| 147|### 常见问题 148|- 如何选择多路召回中的 Rerank 设置?如果用户知道确切的信息或术语,可以通过关键词检索精确发挥匹配结果,那么请将 “权重设置” 中的关键词设置为 1。 149| 150|如果知识库内并未出现确切词汇,或者存在跨语言查询的情况,那么推荐使用 “权重设置” 中的语义设置为 1**。 151| 152|如果业务人员对于用户的实际提问场景比较熟悉,想要主动调整语义或关键词的比值,那么推荐自行调整 “权重设置” 里的比值。 153| 154|如果知识库内容较为复杂,无法通过语义或关键词等简单条件进行匹配,同时要求较为精准的回答,愿意支付额外的费用,那么推荐使用Rerank 模型进行内容检索。 155| 156| 157|- ** 为什么会出现找不到 “权重设置” 或要求必须配置 Rerank 模型等情况,应该如何处理?** 以下是知识库检索方式对文本召回的影响情况: 158| 159| 160|- ** 引用多个知识库时,无法调整 “权重设置”,提示错误应如何处理?** 出现此问题是因为上下文内所引用的多个知识库内所使用的嵌入模型(Embedding)不一致,为避免检索内容冲突而出现此提示。推荐设置在“模型供应商”内设置并启用 Rerank 模型,或者统一知识库的检索设置。 161| 162| 163|- ** 为什么在多路召回模式下找不到“权重设置”选项,只能看到 Rerank 模型?** 请检查你的知识库是否使用了“经济”型索引模式。如果是,那么将其切换为“高质量”索引模式。 164|


PRTCL // PLAINTEXT
1|# 数据源授权
2|
3|> 原文:[数据源授权](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/authorize-data-source)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/authorize-data-source)。
11|
12|Dify 支持多种外部数据源的连接,为了确保数据安全和访问控制,不同的数据源需要进行相应的授权配置。根据数据源的特性,Dify 提供两种主要的授权方式:**API Key** 和 **OAuth**,以确保你能够安全地访问和导入所需的数据。
13|
14|
15|## 数据源授权界面入口在 Dify 中,你可以通过以下两种方式进入数据源授权配置界面:
16|
17|
18|### 方式一:通过知识流水线编排界面进入知识流水线编排界面,添加需要的数据源。选中数据源节点,在右侧面板中,点击 ** 绑定 **。
19|
20|
21|### 方式二:设置界面点击右上角头像,选择 ** 设置 **,点击 ** 数据来源 **。进入数据来源页面后,选择需要授权的数据源,点击 ** 配置 **。
22|
23|
24|## 支持数据源及授权方式数据源 API KeyOAuthNotion✅✅Jina Reader✅Firecrawl✅Google Drive✅Dropbox✅✅OneDrive✅
25|## 授权方式和流程
26|### API Key 授权 API Key 授权是一种基于密钥的身份验证方式,适用于企业级服务和开发者工具。用户需要在对应的服务提供商处生成 API Key,然后在 Dify 中进行配置。
27|
28|
29|#### 授权流程
30|- 在数据源配置界面,选择对应的数据源,点击右侧的 ** 配置 **,选择 ** 添加 API Key**。
31|
32|
33|- 在弹出的配置面板中,填写对应信息。完成后,点击 ** 保存 ** 完成授权。
34|
35|API 密钥将被安全加密储存,配置成功后会显示 **Connected** 状态,你可以在知识流水线中使用该数据源。
36|
37|
38|### OAuth 授权 OAuth 是一种开放标准的授权协议,允许用户在不暴露密码的情况下,授权第三方应用访问其在特定服务提供商上的资源。Dify 提供两种 OAuth 授权配置方式:默认配置和自定义配置。
39|
40|
41|#### 授权流程
42|- 在数据源配置界面,选择对应的数据源,点击右侧的 ** 配置 **,选择 ** 添加 OAuth**。
43|
44|
45|- 在授权页面中查看并确认权限范围后,点击 ** 允许访问 **。
46|
47|
48|#### OAuth 客户端设置 Dify 提供默认和自定义两种 OAuth 客户端配置方式。
49|
50|
51|- ** 默认客户端 ** 仅 SaaS 版本支持默认客户端,你可以使用 Dify 官方预配置并维护的 OAuth 客户端参数,在 SaaS 版本一键添加 OAuth 凭据,无需进行额外的配置。
52|
53|
54|- ** 自定义客户端 **Dify 所有版本均支持自定义客户端。对于 SaaS 版本中尚未提供的默认配置数据源,你需要前往第三方平台自行注册并获取 OAuth 客户端参数。
55|
56|** 授权流程 **
57|
58|
59|- 在数据源配置界面,选择对应的数据源,点击右侧的 ** 配置 **,选择 ** 添加 OAuth** 右侧的 ** 设置图标 **,进入 OAuth 客户端设置。
60|
61|
62|- 点击 ** 自定义 **,输入 **Client ID** 和 **Client Secret**。点击 ** 保存并授权 ** 完成 OAuth 授权流程。
63|

PRTCL // PLAINTEXT
1|# 步骤一:创建知识流水线
2|
3|> 原文:[步骤一:创建知识流水线](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/create-knowledge-pipeline)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/create-knowledge-pipeline)。
11|
12|点击顶部的 ** 知识库 **,在左侧点击 ** 通过知识流水线创建知识库 **,你可以通过以下 3 种方式来创建知识流水线。
13|
14|
15|### 方式一:从零开始构建点击 ** 空白知识流水线 ** 即可从零开始构建自定义知识流水线。
16|如果你需要根据数据特点和业务需求自定义处理策略,建议选择从空白知识流水线开始。
17|
18|
19|### 方式二:通过模版创建 Dify 提供了两种模版方案:** 内置流水线 **(Built-in) 和 ** 自定义 **(Customized)。两种模版的卡片信息都包含了知识库名称、简介描述和标签(包含分段模式)。
20|
21|
22|#### 内置流水线(Built-in Pipeline) 内置流水线为预置的知识流水线模版,针对常见的文档数据结构进行优化,你可以根据不同的文档类型和使用场景选择适合的处理方式。点击 ** 选择 ** 即可开始使用。
23|
24|** 模版类型 **
25|
26|模版名称分段结构索引方式检索设置说明通用模式(General Mode)通用模式经济倒排索引将文档内容分割成较小的段落块(通用块),直接用于匹配用户查询和检索。父子模式(Parent-child Structure) 父子模式高质量混合检索采用了高级分块策略,将文档文本分成较大的”父块”和较小的”子块”。其中,“父块”包含了”子块”。这样既保证了检索的精确性,又维持了上下文的完整性。简单问答(Simple Q&A) 问答模式高质量向量搜索将表格数据转化为一问一答的形式,通过问题匹配来快速找到对应的答案信息。适用于结构化表格数据。复杂 PDF (含图片和表格)(Complex PDF with Images & Tables)父子模式高质量混合检索 - 加权评分提取 PDF 文件内的图像和表格内容。LLM 上下文增强(Contextual Enriching Using LLM) 父子模式高质量混合检索 - 加权评分将文档内的图片和表格提取出来,使用大型语言模型自动生成描述性注释,实现上下文的智能增强。Markdown 转换(Convert to Markdown) 父子模式高质量混合检索 - 加权评分专为 DOCX、XLSX 和 PPTX 等 Office 原生文件格式设计,将其转换为 Markdown 格式以便更好地进行信息处理。⚠️ 注意:不推荐使用 PDF 文件。LLM 生成问答(LLM Generated Q&A) 问答模式高质量向量搜索 - 加权评分使用大型语言模型自动生成结构化的问答对,通过问题匹配机制找到相关的答案信息。点击模版卡片上的详情按钮,即可在弹窗中预览选中的流水线的编排结构、流水线简介和分段模式。点击使用此知识流水线模版进行编排。
27|
28|
29|#### 自定义(Customized)自定义模版为用户创建和发布为知识流水线的方案,你可以选择使用该模版、导出 DSL,或点击详情进行快速预览。
30|
31|点击模版卡片上的选择按钮,即可从该自定义模版开始创建知识库。你也可以在预览该流水线模版时,点击右侧的使用此知识流水线按钮开始创建。点击 … 可以编辑流水线信息、导出知识流水线或者删除模版。
32|
33|
34|### 方式三:导入知识流水线在完成知识流水线的编排后,你可以保存和导出知识流水线,并分享给其他人。知识库使用者可以导入知识流水线,快速复用已构建的知识流水线,并在此基础上针对不同情景或需求进行修改。与工作流 DSL 类似,知识流水线基于相同的 YAML 格式标准,用于定义知识库内的处理流程和配置。
35|
36|知识流水线包含以下内容:
37|
38|名称包含数据源文件上传、网站、在线文档和在线网盘数据处理流程文档提取、内容分块和清洗策略知识库储存配置索引方式、检索设置和存储参数节点连接节点间的连接和处理顺序用户输入表单自定义的参数输入字段(如有配置)
39|

PRTCL // PLAINTEXT
1|# 步骤二:编排知识流水线
2|
3|> 原文:[步骤二:编排知识流水线](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/knowledge-pipeline-orchestration)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/knowledge-pipeline-orchestration)。
11|
12|想象一下你正在搭建一条生产流水线,每个站点执行特定任务,你将不同它们连接起来将每个零部件组装最终成品。知识流水线编排与此类似,你组合不同节点,将原始文档数据通过每个节点逐步转化为可搜索的知识库。在 Dify 里,你通过可视化的方式,拖放和连接不同节点,对文档数据进行提取和分块处理,并配置索引方式和检索策略。
13|
14|在这个章节,你将了解知识流水线的过程,理解不同节点的含义和配置,如何自定义构建数据处理流程,从而高效地管理和优化知识库。
15|
16|
17|### 界面状态进入知识流水线编排界面时,你会看到:
18|
19|
20|- ** 标签页状态 **:Documents(文档)、Retrieval Test(召回测试)和 Settings(设置)标签页将显示为置灰且不可用状态
21|- ** 必要步骤 **:你必须完成知识流水线的配置、调试和发布后,才能上传文件或使用其他功能如果你选择了 ** 空白知识流水线 **,你将看到仅包含知识库节点的画布。你可以跟随该节点旁的指引,逐步完成流水线创建。
22|
23|如果选择 ** 特定的流水线模版 **,编排界面将直接显示该流水线模版。
24|
25|
26|## 知识流水线处理流程在开始之前,我们先拆解知识流水线的处理流程,你可以更好地理解数据是如何一步步转化为可用的知识库。
27|
28|
29|> 💡 ** 数据源配置 → 数据处理节点(文档提取器 + 分块器)→ 知识库节点(分块结构 + 索引配置) → 配置用户输入表单 → 测试发布 **
30|
31|
32|- ** 数据源配置 **:来自各种数据源的原始内容(本地文件、Notion、网页等)
33|- ** 数据处理节点配置 **:处理和转换数据内容
34|- 提取器 (Extractor) → 解析和结构化原始文档内容
35|- 分块器 (Chunker) → 将结构化内容分割为适合处理的片段
36|- ** 知识库节点配置 **:设置知识库的分段结构和检索策略
37|- ** 用户输入表单配置 **:定义流水线使用者需要输入的参数
38|- ** 测试与发布 **:验证并正式启用知识库
39|## 步骤一:数据源配置在一个知识库里,你可以选择单一或多个数据源。目前,Dify 支持 4 种数据源:** 文件上传、在线网盘、在线文档和网页爬虫 **。
40|
41|你也可以前往[Dify Marketplace](https://marketplace.dify.ai),获得更多数据源。
42|
43|
44|### 文件上传用户可以直接选择本地文件进行上传,以下是配置选项和限制。
45|
46|** 配置选择 **
47|
48|配置项说明文件格式支持 pdf, xlxs, docs 等,用户可自定义选择上传方式通过拖拽或选择文件或文件夹上传本地文件,支持批量上传 ** 限制 **
49|
50|限制项说明文件数量每次最多上传 50 个文件文件大小每个文件大小不超过 15MB 储存限制不同 SaaS 版本的订阅计划对文档上传总数和向量存储空间有所限制 ** 输出变量 **
51|
52|输出变量变量格式`{x} Document`单个文档
53|### 在线文档
54|#### Notion 将知识库连接 Notion 工作区,可直接导入 Notion 页面和数据库内容,支持后续的数据自动同步。
55|
56|** 配置选项说明 **
57|
58|配置项选项输出变量说明 Extractor 开启`{x} Content`输出结构化处理的页面信息关闭`{x} Document`输出页面的原始文本信息
59|### 网页爬虫将网页内容转化为大型语言模型容易识别的格式,知识库支持 Jina Reader 和 Firecrawl,提供灵活的网页解析能力。
60|
61|
62|#### Jina Reader 开源网页解析工具,提供简洁易用的 API 服务,适合快速抓取和处理网页内容。
63|
64|** 参数配置和说明 **
65|
66|参数类型说明 URL 必填目标网页地址爬取子页面 (Crawl sub-page) 可选是否抓取链接页面使用站点地图 (Use sitemap) 可选利用网站地图进行爬取爬取页数限制 (Limit) 必填设置最大抓取页面数量启用内容提取器 (Enable Extractor) 可选选择数据提取方式
67|#### Firecrawl 开源网页解析工具,提供更精细的爬取控制选项和 API 服务,支持复杂网站结构的深度爬取,适合需要批量处理和精确控制的场景。
68|
69|** 参数配置和说明 **
70|
71|参数类型说明 URL 必填目标网页地址爬取页数限制 (Limit) 必填设置最大抓取页面数量爬取子页面 (Crawl sub-page) 可选是否抓取链接页面最大爬取深度 (Max depth) 可选控制爬取层级深度排除路径 (Exclude paths) 可选设置不爬取的页面路径仅包含路径 (Include only paths) 可选限制只爬取指定路径启用内容提取器 (Extractor) 可选选择数据处理方式只提取主要内容可选过滤页面辅助信息
72|### 在线网盘连接你的在线云储存服务(例如 Google Drive、Dropbox、OneDrive),Dify 将自动检索云储存中的文件,你可以勾选并导入相应文档进行下一步处理,无需手动下载文件再进行上传。
73|
74|
75|> 💡 关于第三方数据源授权,请前往[数据源授权](/zh/use-dify/knowledge/knowledge-pipeline/authorize-data-source)。
76|
77|
78|## 步骤二:配置数据处理节点该阶段是内容的预处理与数据结构化过程,这一部分将会把数据源进行提取、分段并转换为适合知识库存储和检索的格式。你可以将这一步想象成备餐过程——处理原材料、进行清理、切分成小块,并整理好一切,以便在有人需要时能迅速”烹制”出这道”菜肴”。
79|
80|
81|> 💡 如需开发自定义数据处理插件,以提取可用于多模态向量化与检索的多模态数据,阅读[构建在知识流水线中处理多模态数据的工具插件](/zh/develop-plugin/dev-guides-and-walkthroughs/develop-multimodal-data-processing-tool)。
82|
83|
84|### 文档处理由于知识库无法直接理解 PDF、Word 等各种文档格式,提取器负责将这些文档”解读”成系统可以处理的文本内容。它支持多种常见文件格式,确保你的文档内容能够被正确提取和处理,并转换为大型语言模型可以有效使用的格式。 你可以选择 Dify 文档提取器来处理文件,也可以根据你的需求从 Dify Marketplace 中选择更多工具。Marketplace 提供了如 Dify Extractor、Unstructured 等第三方工具。
85|
86|对于文档中的图片
87|
88|通过合适的文档处理工具,可将文档中的图片提取为对应分段的附件。被提取的图片可独立管理,并在检索时与分段一同返回。
89|
90|被提取图片的 URL 会保留在分段文本中,但你可以安全地删除这些 URL 以保持文本整洁——这不会影响已提取的图片。
91|
92|每个分段最多支持 10 个图片附件,超出的图片不会被提取。
93|
94|若使用的工具未提取到图片,Dify 会自动提取通过以下 Markdown 语法引用、URL 可访问且小于 2 MB 的 JPG、JPEG、PNG 和 GIF 图片:
95|
96|
97|- `![替换文本](image_url)`
98|- `![替换文本](image_url "标题")`
99|> 💡 对于自托管部署,可通过环境变量调整以下限制:

100| 101| 102|- 最大图片尺寸:ATTACHMENT_IMAGE_FILE_SIZE_LIMIT 103| 104| 105|- 每个分段的最大附件数量:SINGLE_CHUNK_ATTACHMENT_LIMIT 106| 107| 108|若在索引设置中选择多模态嵌入模型(带有Vision图标),则提取出的图片也将被向量化并参与检索。 109| 110| 111|#### 文档提取器 (Doc Extractor) 文档提取器节点可以理解为一个信息处理中心,通过识别并读取输入变量中的文件,提取信息后转化为下一个节点可使用的格式。 112| 113| 114|> 💡 关于文档提取器的详细功能和配置方法,请参考文档提取器。 115| 116| 117|#### Dify 提取器 (Dify Extractor)Dify Extractor 是 Dify 开发的一款内置文档解析器。它支持多种常见文件格式,并针对 Doc 文件进行了专门优化。它能够从文档中提取图片,进行存储并返回图片的 URL。 118| 119| 120|#### UnstructuredUnstructured将文档转换为结构化的机器可读格式,具有高度可定制的处理策略。它提供多种提取策略(auto、hi_res、fast、OCR-only)和分块方法(by_title、by_page、by_similarity)来处理各种文档类型,提供详细的元素级元数据,包括坐标、置信度分数和布局信息。推荐用于企业文档工作流、混合文件类型处理以及需要精确控制文档处理参数的场景。 121| 122| 123|> 💡 你可前往Dify Marketplace探索更多工具。 124| 125| 126|### 分块器 (Chunker) 在构建 AI 应用时,我们需要处理大量和不同种类的文档内容,比如产品手册、技术文档或论文等。和人类有限的注意力相似,大型语言模型无法同时处理过多的信息。因此,在信息提取后,分块器将大段的文档内容拆分成更小、更易于管理的片段(称为”块”)。 127| 128|不同类型的文档需要不同的分块策略,比如产品手册可能需要按照产品特性进行分块,而论文则需要根据逻辑结构进行分块。Dify 提供了 3 种分块器,帮助你根据不同文档类型和使用场景进行选择和使用。 129| 130| 131|#### 分块器类型概述类型特点使用场景通用分块器固定大小分块,支持自定义分隔符结构简单的基础文档父子分块器双层分段结构,平衡匹配精准度和上下文需要较多上下文信息的复杂文档结构问答处理器处理表格中的问答组合 CSV 和 Excel 的结构化问答数据 132|#### 通用文本预处理规则所有分块器都支持以下文本清理选项: 133| 134|处理选项说明替换连续空格、换行符和制表符将文档中的连续空格、换行符和制表符替换为单个空格移除所有 URL 和邮箱地址自动识别并移除文本中的网址链接和邮箱地址 135|#### 通用分块器 (General Chunker) 基础文档分块处理,适用于结构相对简单的文档,你可以参考下面的配置对文本的分块、文本预处理规则进行配置。 136| 137|输入输出变量 138| 139|类型变量说明输入变量{x} Content完整的文档内容块,通用分块器将其拆分为若干小段输出变量{x} Array[Chunk]分块后的内容数组,每个片段适合进行检索和分析分块设置 (Chunk Settings) 140| 141|配置项说明分段标识符 (Delimiter) 默认值为\n,即按照文本段落分段。你可以遵循正则表达式语法自定义分块规则,系统将在文本出现分段标识符时自动执行分段。分段最大长度 (Maximum Chunk Length) 指定分段内的文本字符数最大上限,超出该长度时将强制分段。分段重叠长度 (Chunk Overlap) 对数据进行分段时,段与段之间存在一定的重叠部分。这种重叠可以帮助提高信息的保留和分析的准确性,提升召回效果。 142|#### 父子分块器 (Parent-child Chunker) 父子分块器采用双层分段结构解决了上下文与准确度之间的矛盾,在检索增强生成(RAG)系统中实现了准确匹配与全面的上下文信息的平衡。 143| 144|父子检索的工作机制 145| 146| 147|- 使用子分块匹配查询:使用小而精准的信息片段(通常简洁到段落中的单个句子)来匹配用户查询。这些子分块能够实现精确且相关的初始检索。 148|- 父分块提供丰富的上下文:检索包含匹配子分块的更大范围内容(如段落、章节甚至整个文档)。这些父分块为大语言模型(LLM)提供全面的上下文信息。输入输出变量 149| 150|类型变量说明输入变量{x} Content完整的文档内容块,通用分块器将其拆分为若干小段输出变量{x} Array[ParentChunk]父分块数组分块设置 (Chunk Settings) 151| 152|配置项说明父分块分隔符 (Parent Delimiter) 设置父分块的分割标识符父分块最大长度 (Parent Maximum Chunk Length) 控制父分块的最大字符数子分块分隔符 (Child Delimiter) 设置子分块的分割标识符子分块最大长度 (Child Maximum Chunk Length) 控制子分块的最大字符数父块模式 (Parent Mode) 选择”段落”(将文本分割为段落)或”完整文档”(使用整个文档作为父分块)进行直接检索 153|#### 问答处理器 Q&A Processor (Extractor+Chunker) 问答处理器结合了提取和分块功能,专门用于处理 CSV 和 Excel 文件的结构化问答数据集,比如常见问题(FAQ)列表、排班表等。 154| 155|输入输出变量 156| 157|类型变量说明输入变量{x} Document单个文档输出变量{x} Array[QAChunk]问答分块数组变量配置 158| 159|名称说明问题所在的列将内容所在的列设置为问题答案所在的列将内容所在的列设置为答案 160|## 步骤三:配置知识库节点在完成数据处理后,我们将进入知识流水线的最后一个环节 — 知识库节点。你可以根据实际需求,在这个节点选择不同的索引方法和检索策略,以获得最适合的检索效果和成本控制。 161| 162|知识库节点配置分为以下部分:输入变量、分段结构、索引方式以及检索设置。 163| 164| 165|### 分段结构 (Chunk Structure) 分段结构决定了知识库如何组织和索引你的文档内容。你可以根据文档类型、使用场景和成本考虑来选择最适合的结构模式。 166| 167|知识库支持三种分段模式:通用模式、父子模式和问答模式。如果你是首次创建知识库,建议选择父子模式。 168| 169| 170|> 💡 重要提醒:分段结构一旦保存发布后无法修改,请根据实际需求进行选择。 171| 172| 173|#### 通用模式适用于大多数标准文档处理场景。 通用模式提供灵活的索引选项,你可以根据对质量和成本的不同要求选择合适的索引方法。通用模式支持高质量和经济的索引方式,以及多种检索设置。 174| 175| 176|#### 父子模式父子模式能够在检索时,提供精确匹配和对应的上下文信息,适用于需要保持完整上下文的专业文档。父子模式仅支持 HQ (高质量)模式,检索时提供子分块匹配和父分块上下文。 177| 178| 179|#### 问答模式 (Question-Answer) 在使用结构化问答数据时,你可以创建问题与答案配对的文档。这些文档会根据问题部分进行索引,从而使系统能够根据查询相似性检索到相关的答案。问答模式仅支持 HQ(高质量)模式。 180| 181| 182|### 输入变量 (Input Variable) 输入变量用于接收来自数据处理节点的处理结果,用作知识库构建的数据源。你需要将前面配置的分块器节点的输出,连接到知识库节点并作为输入。 183| 184|该节点根据所选的分段结构,支持不同类型的标准输入: 185| 186| 187|- 通用模式{x} Array[Chunk]- 通用分块数组 188|- 父子模式{x} Array[ParentChunk]- 父分块数组 189|- 问答模式{x} Array[QAChunk]- 问答分块数组 190|### 索引方式 (Index Method) 与检索设置 (Retrieval Setting) 索引方式决定了知识库如何建立内容索引,检索设置则基于所选的索引方式提供相应的检索策略。可以这样理解:索引方式决定如何整理文档,而检索设置则决定如何查找文档。 191| 192|知识库提供了两种索引方式:高质量经济,分别提供不同的检索设置选项。 193| 194|在高质量模式下,使用嵌入模型将已分段的文本块转换为数字向量,帮助更加有效地压缩与存储大量文本信息。这使得即使用户的问题用词与文档不完全相同,系统也能找到语义相关的准确答案。 195| 196| 197|> 💡 若要启用跨模态检索——即基于语义相关性同时检索文本和图片,需选择多模态嵌入模型(带有Vision图标)。从文档中提取的图片将被向量化并参与检索。 198| 199|使用此类嵌入模型的知识库,其卡片上标有Multimodal。 200| 201| 202|在经济索引方式下,每个分段使用 10 个关键词用于检索,无需调用嵌入模型,且不消耗 token。 203| 204| 205|> 💡 了解更多细节,阅读指定索引方式与检索设置。 206| 207| 208|索引方式可用检索设置说明高质量向量检索基于语义相似度,理解查询深层含义全文检索基于关键词匹配的检索方式,提供全面的检索能力混合检索结合语义和关键词经济倒排索引搜索引擎常用的检索方法,匹配问题与关键内容 209|> ⚠️ 若选择的嵌入模型支持多模态,需同样选择多模态 Rerank 模型(带有Vision图标)。否则,检索到的图片将在重排序和检索结果中被排除。 210| 211| 212|关于配置分段结构、索引方法、配置参数和检索设置,你也可以参考下方表格。 213| 214|分段结构可选索引方式可配置参数可用检索设置通用模式高质量经济 Embedding 嵌入模型关键词数量向量检索全文检索混合检索倒排索引父子模式高质量(仅支持)Embedding Model 嵌入模型向量检索全文检索混合检索问答模式高质量(仅支持)Embedding Model 嵌入模型向量检索全文检索混合检索 215|### 摘要自动生成 216|> 💡 仅适用于自托管部署。 217| 218|自动为所有分段生成摘要,以增强其可检索性。 219| 220|摘要同样会被向量化并参与检索。当摘要匹配查询时,其对应的分段也会被返回。 221| 222|你可以稍后手动编辑自动生成的摘要,或为特定文档重新生成摘要。详情请参阅维护知识库内容。 223| 224| 225|> 💡 如果你选择了支持视觉的 LLM,摘要将基于分段文本和任何附加的图片一起生成。 226| 227| 228|## 步骤四:配置用户输入表单用户输入表单对于收集流水线运行所需的有效初始信息非常重要。类似于工作流中的用户输入节点,这个表单从用户那里收集必要的详细信息,比如:需要上传的文件、文档处理的特定参数等,确保流水线拥有提供准确结果所需要的所有信息。 229| 230|通过这种方式,你可以为不同的使用场景创建特定的输入表单,提高流水线对于不同数据源和文档处理流程的灵活性和易用性。 231| 232| 233|### 创建用户输入表单你可以通过下面两种方式,创建用户输入表单。 234| 235| 236|- 知识流水线编排界面点击输入字段(Input Field)开始创建和配置输入表单。
237| 238| 239|- 节点参数面板选中节点,在右侧的面板需要填写的参数内,点击最下方的+ 创建用户输入字段(+ Create user input) 来创建新的输入项。新增的输入项将会汇总到输入字段(Input Field)的表单内。节点参数面板 240| 241| 242|### 添加用户输入字段 243|#### 非共享输入 (Unique Inputs for Each Entrance) 这类输入适用于每个数据源及其下游节点,用户只需在选择对应数据源时填写这些字段,比如不同数据源的 URL。 244| 245|创建方式:在数据源右侧点击”+“按钮,为该数据源添加字段。这个字段只能被该数据源及其后续连接的节点引用。 246| 247| 248|#### 全局共享输入 (Global Inputs for All Entrances) 全局共享输入可以被所有节点引用。这类输入适用于通用处理参数,比如分隔符、最大分块长度、文档处理配置等。无论用户选择哪个数据源,都需要填写这些字段。 249| 250|创建方式:在全局共享输入右侧点击”+“按钮,添加的字段将被任意节点引用。 251| 252| 253|### 支持字段类型和填写说明知识流水线支持以下七种类型的输入变量。 254| 255|字段类型说明文本短文本,由知识库使用者自行填写,最大长度为 256 字符段落长文本,知识库使用者可以输入较长字符下拉选项由编排者预设的固定选项供使用者选择,使用者无法自行填写内容布尔值只有真 / 假两个取值数字只能输入数字单文件上传单个文件,支持多种文件类型(文档、图片、音频和其他文件类型)文件列表批量上传文件,支持多种文件类型(文档、图片、音频和其他文件类型) 256|> 💡 请阅读用户输入节点,了解关于支持字段的更多说明。 257| 258| 259|### 字段配置选项所有类型的输入项包含:必填项、非必填项和更多设置,可以通过勾选设置为是否为必填。 260| 261|设置类型名称说明示例必填项变量名称系统内部标识名称,通常使用英文和下划线进行命名user_email显示名称界面展示的名称,通常是简洁易读的文字用户邮箱类型特定设置不同字段类型的特殊要求文本的最大长度为 100 字符更多设置默认值用户未输入时的默认值数字字段默认为 0, 文本字段默认为空占位符输入框空白时的提示文字请输入您的邮箱提示解释或指引用户进行填写的文字,通常在用户鼠标悬停时显示请输入有效的邮箱地址特殊非必填信息根据不同字段类型的额外设置选项邮箱格式验证配置完成后,点击右上角的预览按钮,你可以在弹出的表单预览界面中浏览。你可以拖拽调整字段的分组,如果出现感叹号,则表明移动后引用失效。 262| 263| 264|## 步骤五:为知识库命名默认情况下,知识库名称为”Untitled + 序号”,权限设置为”仅自己可见”,图标为橙色书本。如果你使用 DSL 文件导入,则将使用其保存的图标。 265| 266|点击左侧面板中的设置并填写以下信息: 267| 268| 269|- 名称和图标为你的知识库命名。你还可以选择一个 emoji、上传图片或粘贴图片 URL 作为知识库的图标。 270|- 知识库描述简要描述您的知识库。这有助于 AI 更好地理解和检索您的数据。如果留空,Dify 将应用默认的检索策略。 271|- 权限从下拉菜单中选择适当的访问权限。 272|## 步骤六:测试你马上就要完成了!这是知识流水线编排的最后一步。 273| 274|在完成编排后,你需要先验证配置的完整性,然后测试流水线运行效果,确认各项设置正确无误,最后发布知识库。 275| 276| 277|### 检查配置完成度在进行测试前,建议先检查配置的完整性,避免因遗漏配置而导致测试失败。 278| 279|点击右上角的检查清单按钮,系统会显示遗漏部分。 280| 281|完成所有的配置后,可以通过测试运行来预览知识流水线的运行效果,确认各项设置准确无误,再进行发布。 282| 283| 284|### 测试运行 (Test Run) 285|- 开始测试:点击右上角的测试运行(Test Run)按钮 286|- 导入测试文件:在右侧弹出的数据源窗口中,导入文件 287|> 💡 重要提醒:为了便于调试和观测,在测试运行状态下,每次仅允许上传一个文件。 288| 289| 290|- 填写参数:导入成功后,根据你之前配置的用户输入表单填写对应参数 291|- 开始试运行:点击下一步,开始测试整个流水线在测试期间,你可以访问运行历史(记录所有运行记录,包括运行时间、执行状态和输入 / 输出参数概要)和变量检查(位于底部面板,它显示每个节点的输入 / 输出数据,帮助你识别问题和验证数据流),以实现高效的故障排除和错误修复。 292|


PRTCL // PLAINTEXT
1|# 步骤五:管理和使用知识库
2|
3|> 原文:[步骤五:管理和使用知识库](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/manage-knowledge-base)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/manage-knowledge-base)。
11|
12|创建知识库后,你可以继续对其进行管理和优化,以确保它能为你的应用程序提供准确的的上下文信息。通过以下方式,你可以对知识库文件的进行更新、进行召回测试、修改流水线和修改知识库的属性等:
13|
14|
15|### 流水线浏览编排的流水线,并对节点和配置进行修改。
16|
17|
18|> 💡 你可前往[管理知识库文档](/zh/use-dify/knowledge/manage-knowledge/maintain-knowledge-documents),了解更多内容。
19|

PRTCL // PLAINTEXT
1|# 步骤三:发布知识流水线
2|
3|> 原文:[步骤三:发布知识流水线](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/publish-knowledge-pipeline)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/publish-knowledge-pipeline)。
11|
12|完成知识流水线的编排和调试后,点击 ** 发布 ** 并在弹窗中点击 ** 确认 **,即成功发布知识流水线。
13|
14|
15|> 💡 ** 注意:知识流水线发布后,分段结构无法进行修改。** 由于分段结构会影响知识库的存储方式和检索召回策略,为确保数据一致性和用户体验,当前每个知识库仅支持 ** 一种分段结构 **。
16|
17|
18|成功发布后,你可以进行如下操作:
19|
20|** 添加文档(Go to add documents)** 点击此选项可以跳转到知识库选择数据源界面,你可以直接上传文档。
21|
22|** 访问 API(Access API Reference)** 前往 API 文档页面,你可以获取知识库的 API 调用方法和说明。
23|
24|** 发布为流水线(Publish as a Knowledge Pipeline)** 你可以点击发布为知识流水线将该流水线保存为可复用的模版,该模版将出现在自定义模版中。
25|
26|
27|> 💡 限制说明:Sandbox 不支持发布为知识流水线功能。如需保存并发布为知识流水线,请[升级](https://dify.ai/pricing) 至 Professional 或者 Team 方案。
28|

PRTCL // PLAINTEXT
1|# 通过知识流水线创建知识库
2|
3|> 原文:[通过知识流水线创建知识库](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/readme)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/readme)。
11|
12|知识流水线是构建处理文档流程的一种解决方案,你能够像编排工作流一样对不同节点进行可视化地组合和配置,并选择使用不同工具来优化数据处理过程。
13|
14|它主要包含四个环节,每个环节由不同的节点和工具组成,形成完整的数据处理链路:
15|
16|** 数据源 → 数据提取 → 数据处理 → 知识库存储 **
17|
18|每个步骤都有特定的用途:从各种来源收集内容,将其转换为可处理的文本,优化以便搜索,并以能够快速、准确检索的格式进行存储。
19|
20|此外,Dify 还提供不同使用场景的知识流水线模板,帮助提升数据索引和检索结果的准确度。本章节将帮助你了解知识流水线的创建方式、流程以及相应节点,让你能快速搭建和优化自己的知识库。
21|
22|1
23|## 步骤一:创建知识流水线从内置模板、空白知识库流水线开始创建,或导入现有流水线。
24|
25|2
26|## 步骤二: 编排知识流水线了解知识库流水线的工作原理,编排不同节点,构建你需要的的数据处理流程。
27|
28|3
29|## 步骤三:发布知识流水线测试配置无误后,发布流水线,准备进行文档处理。
30|
31|4
32|## 步骤四:上传文件添加文档,经过处理后构建成可搜索的知识库。
33|
34|5
35|## 步骤五:管理和使用知识库日常维护文档、测试检索效果、修改设置等。
36|

PRTCL // PLAINTEXT
1|# 步骤四:上传文件
2|
3|> 原文:[步骤四:上传文件](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-pipeline/upload-files)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-pipeline/upload-files)。
11|
12|完成知识流水线的编排、调试并发布成功后,你能通过以下两种方式上传文件:
13|
14|A. 在发布成功的弹窗哪点击前往文档。进入文档页面后,点击添加文件进行上传。
15|
16|B. 在发布的下拉菜单中,点击去添加文档。进入选择数据源页面,选择对应数据源开始上传文件。
17|
18|
19|### 上传流程
20|- ** 选择数据源 ** 从流水线配置的数据源类型中进行选择。目前,Dify 支持 4 种数据源 ** 文件上传(pdf, docx 等)、在线网盘(Google Drive, OneDrive 等)、在线文档(Notion) 和 网页爬虫(Jina Reader 和 Firecrawl)。** 请前往[Dify Marketplace](https://marketplace.dify.ai/) 获取更多数据源支持。
21|
22|
23|- ** 填写文件处理相关参数和变量 ** 如果你在知识流水线的编排过程中配置了用户输入字段,需要在这一步填写所需的参数和变量。完成填写后,点击 ** 预览分段 ** 可进行预览。点击保存并处理完成知识库创建,进入数据处理阶段。
24|
25|
26|> 💡 注意:分段结构与知识流水线内保持一致,不会因用户输入的文件处理参数和变量而改变。
27|
28|
29|- ** 文档处理 ** 跟踪文档处理的进度。嵌入完成后,点击 ** 前往文档 **。
30|
31|
32|- ** 查看文件列表 ** 点击 ** 前往文档 **,前往知识库文档界面。在这里,你可以浏览上传文件数量、处理进程和状态等。
33|

PRTCL // PLAINTEXT
1|# 知识库请求频率限制
2|
3|> 原文:[知识库请求频率限制](https://docs.dify.ai/zh/use-dify/knowledge/knowledge-request-rate-limit)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/knowledge-request-rate-limit)。
11|
12|
13|## 什么是知识库请求频率限制?在 Dify Cloud 上,知识库请求频率限制指一个工作区在知识库中每分钟可执行的最大操作数。这些操作包括数据集创建、文档管理,以及在应用或工作流中的知识库查询。
14|
15|
16|## 不同订阅版本的限制
17|- **Sandbox**:10 次 / 分钟
18|- **Professional**:100 次 / 分钟
19|- **Team**:1,000 次 / 分钟例如,对于 **Sandbox 用户 **,如果在 1 分钟内执行了 10 次命中测试,该用户的工作区将在接下来的 1 分钟内暂时无法执行受知识库请求频率限制的操作。
20|
21|
22|## 哪些操作会受到知识库请求频率限制?当你执行以下操作时,会受到知识库请求频率限制:
23|
24|
25|- 创建空数据集
26|- 删除数据集
27|- 更新数据集设置
28|- 上传文档
29|- 删除文档
30|- 更新文档
31|- 禁用文档
32|- 启用文档
33|- 归档文档
34|- 恢复文档
35|- 暂停文档处理
36|- 恢复文档处理
37|- 新增分段
38|- 删除分段
39|- 更新分段
40|- 批量导入分段
41|- 命中测试
42|- App 或 Workflow 中查询知识库(多路召回虽然会多次查询知识库,但是只记作一次请求)
43|

PRTCL // PLAINTEXT
1|# 调整知识库设置
2|
3|> 原文:[调整知识库设置](https://docs.dify.ai/zh/use-dify/knowledge/manage-knowledge/introduction)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/manage-knowledge/introduction)。
11|
12|
13|> 💡 只有工作区所有者、管理员和编辑者可修改知识库设置。
14|
15|
16|在知识库中,点击左侧边栏的 ** 设置 ** 图标,进入设置页。
17|
18|设置项说明名称和图标用于标识和区分知识库。描述简要说明知识库的用途和内容。权限定义哪些工作区成员可访问该知识库。
19|> ⚠️ 被授予访问权限的成员将拥有[维护知识库内容](/zh/use-dify/knowledge/manage-knowledge/maintain-knowledge-documents) 中列出的全部权限。
20|
21|索引方式决定文档分段的处理和组织方式。详见[选择索引方式](/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods#%E9%80%89%E6%8B%A9%E7%B4%A2%E5%BC%95%E6%96%B9%E5%BC%8F)。嵌入模型选择用于将文档分段转化为向量的嵌入模型。
22|> 💡 更换嵌入模型将对所有分段重新进行向量化。
23|
24|摘要自动生成自动为文档分段生成摘要。
25|> 💡 启用后,仅对新添加的文档和分段生效。对于已有分段,请在文档列表中选择文档,然后点击 ** 生成摘要 **。
26|
27|检索设置决定知识库如何检索相关内容。详见[指定检索设置](/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods#%E6%8C%87%E5%AE%9A%E6%A3%80%E7%B4%A2%E8%AE%BE%E7%BD%AE)。
28|

PRTCL // PLAINTEXT
1|# 通过 API 维护知识库
2|
3|> 原文:[通过 API 维护知识库](https://docs.dify.ai/zh/use-dify/knowledge/manage-knowledge/maintain-dataset-via-api)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|Dify 提供了一套完整的知识库 API,可以通过编程方式管理知识库、文档和分段。这对于自动化数据同步或将知识库操作集成到 CI/CD 流程中非常有用。
11|
12|创建知识库时,API 访问默认开启。要开始调用 API,你只需要 API 凭据:一个端点和一个密钥。
13|
14|
15|> 💡 单个知识库 API 密钥可以访问同一账号下的 ** 所有可见知识库 **。请妥善保管凭据,避免意外的数据泄露。
16|
17|
18|## 获取 API 端点和密钥在 Dify 中进入 ** 知识库 ** 页面。点击右上角的 ** 服务 API** 打开 API 配置面板。在这里你可以:
19|
20|
21|- 获取服务 API 端点,即所有知识库 API 请求的基础 URL。
22|
23|
24|- 点击 **API 密钥 ** 创建新密钥并管理已有密钥。
25|
26|
27|> 💡 请将 API 密钥安全存储在服务端,切勿在客户端代码或公开仓库中暴露。
28|
29|
30|## 管理知识库的 API 访问权限每个知识库默认都可通过服务 API 访问。
31|
32|如果需要限制某个知识库的 API 访问,打开该知识库,点击左下角的 ** 访问 API** 并将其关闭。
33|
34|
35|## API 参考有关完整的端点列表、请求 / 响应结构、错误码和交互式示例,请参阅[知识库 API 参考](https://docs.dify.ai/api-reference/%E7%9F%A5%E8%AF%86%E5%BA%93/%E8%8E%B7%E5%8F%96%E7%9F%A5%E8%AF%86%E5%BA%93%E5%88%97%E8%A1%A8)。
36|

PRTCL // PLAINTEXT
1|# 维护知识库内容
2|
3|> 原文:[维护知识库内容](https://docs.dify.ai/zh/use-dify/knowledge/manage-knowledge/maintain-knowledge-documents)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/manage-knowledge/maintain-knowledge-documents)。
11|
12|
13|## 管理文档在知识库中,每个导入的项——无论是本地文件、Notion 页面还是网页——都会成为一个文档。
14|
15|你可以在文档列表中查看和管理所有文档,确保知识库的内容始终准确、相关且最新。
16|
17|
18|> 💡 点击顶部的知识库名称,可快速切换不同知识库。
19|
20|
21|操作说明添加导入新文档。修改分段设置修改文档的分段设置(不包括分段结构)。
22|> 💡 每个文档可拥有独立的分段设置,但分段结构在整个知识库中共享,且一旦设置无法更改。
23|
24|删除永久删除文档。** 删除不可撤销 **。启用 / 禁用临时将文档纳入或排除检索。
25|> ⚠️ 在 Dify Cloud 上,长时间未更新或未被检索的文档会自动禁用以优化性能。不同订阅计划的未活跃时长如下:
26|- Sandbox:7 天
27|- Professional & Team:30 天 Professional 和 Team 用户可 ** 一键 ** 重新启用这些文档。
28|
29|生成摘要自动为文档中的所有分段生成摘要。仅适用于启用了 ** 摘要自动生成 ** 功能的自托管部署。
30|> ⚠️ 已有的摘要将被覆盖。
31|
32|归档 / 取消归档将不再需要检索但仍需保留的文档归档。归档文档为只读,可随时取消归档。编辑通过编辑分段内容修改文档。详见[管理分段](#%E7%AE%A1%E7%90%86%E5%88%86%E6%AE%B5)。重命名修改文档名称。
33|## 管理分段根据其分段设置,每个文档被拆分为一个或多个分段,而分段是检索的基本单元。
34|
35|你可以在文档的分段列表中查看和管理所有分段,以提升检索效率与准确性。
36|
37|
38|> 💡 点击左上角的文档名称,可快速切换不同文档。
39|
40|
41|操作说明添加新增或批量新增分段。对于采用父子分段模式的文档,可同时新增父分段和子分段。
42|> 💡 「添加分段」在 Dify Cloud 上为付费功能,[升级至 Professional 或 Team 版](https://dify.ai/pricing) 即可解锁使用。
43|
44|删除永久删除分段。** 删除不可撤销 **。启用 / 禁用临时将分段纳入或排除检索。已禁用的分段不可编辑。编辑修改分段内容。已编辑的分段将标记为 ** 已编辑 **。对于采用父子分段模式的知识库:
45|- 编辑父分段时,可选择重新生成其子分段或保持原有的子分段不变。
46|- 编辑子分段不会改变其父分段。添加 / 编辑 / 删除关键词为分段添加或修改关键词(最多 10 个),以提升其可检索性。仅适用于使用经济索引方式的知识库。添加 / 删除图片附件在对应分段中,删除从文档中提取的图片或上传新图片。提取的图片 URL 会保留在分段文本中,你可以安全地删除这些 URL 以保持文本简洁——这不会影响已提取的图片。
47|> ⚠️ 每个分段最多支持 10 张图片附件,在检索中将被一同返回;超过数量的图片不会被提取。对于自托管部署,可通过修改环境变量`SINGLE_CHUNK_ATTACHMENT_LIMIT`调整此数量限制。
48|
49|
50|> 💡 若选择多模态嵌入模型(带有 **Vision** 图标),提取的图片也将被向量化并索引以供检索。
51|
52|添加 / 编辑 / 删除摘要为分段添加、修改或删除摘要。摘要同样会被向量化并索引以供检索。当摘要与查询匹配时,其对应的分段也会被返回。
53|> 💡 为多个分段添加相同的摘要,可实现分组检索,使相关分段能够一同返回(受 Top K 限制)。
54|
55|
56|## 最佳实践
57|### 检查分段质量文档完成分段后,仔细检查每个分段,确保其语义完整、长度适中,以保证检索准确性和回复相关性。
58|
59|常见问题包括:
60|
61|
62|- 分段 ** 过短 **:上下文不完整,易造成语义丢失和答案不准确。
63|
64|
65|- 分段 ** 过长 **:包含无关信息,易引入语义噪音、降低检索精度。
66|
67|
68|- 分段 ** 语义不完整 **:句子或段落被分段设置强制切断,易导致检索结果存在内容缺失或误导。
69|
70|
71|### 将子分段用作父分段的检索钩子对于采用父子分段模式的文档,系统会在子分段中进行搜索,但返回的是父分段。由于编辑子分段不会改变其父分段,可将子分段作为父分段的语义标签或检索提示。
72|
73|具体做法是将子分段改写为 ** 关键词 **、** 摘要 ** 或 ** 常见用户问题 **。例如,若父分段的内容涉及技术性的”LED 状态指示灯”,可将子分段改写为:
74|
75|
76|- * 闪烁灯、无法开机、红灯、连接错误、卡死 *(关键词)
77|
78|
79|- *LED 颜色解读及硬件电源或配对问题排查指南 *(摘要)
80|
81|
82|- * 常亮红灯是什么意思?*(问题)
83|
84|
85|### 使用摘要弥合查询与内容之间的差距虽然高质量的索引可以实现语义搜索,但当原始分段过于具体、包含噪音或结构复杂时,仍然难以与用户查询良好匹配。
86|
87|摘要通过提供一个精简的语义层来弥合这一差距,使分段的核心意图更加明确。
88|
89|在以下情况下使用摘要:
90|
91|
92|- ** 用户查询与文档语言不同 **:对于正式书写的技术文档,按照用户实际提问的方式添加摘要。
93|
94|
95|- ** 概念隐含或埋没在细节中 **:添加高层次的摘要,提炼核心概念和意图,使分段能够被匹配,而不依赖于分散在文本中的细枝末节。
96|
97|
98|- ** 原始文本是非文本内容 **:当分段主要是代码、表格、日志、记录稿或其他难以进行语义匹配的内容时,添加描述性摘要,清楚标注分段包含的内容。
99|

100| 101|- 相关分段需要一起检索:为一系列相关分段应用相同的摘要,以实现分组检索。这种语义粘合剂使一个主题的多个部分能够一起被检索,提供更丰富的上下文。 102| 103| 104|> 💡 返回的相关分段数量受检索设置中定义的 Top K 限制。 105|


PRTCL // PLAINTEXT
1|# 管理文档元数据
2|
3|> 原文:[管理文档元数据](https://docs.dify.ai/zh/use-dify/knowledge/metadata)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/metadata)。
11|
12|
13|## 什么是元数据?
14|### 定义元数据是用于描述其他数据的信息。简单来说,它是”关于数据的数据”。它就像一本书的目录或标签,可以为你介绍数据的内容、来源和用途。
15|通过提供数据的上下文,元数据能帮助你在知识库内快速查找和管理数据。
16|
17|
18|### 知识库元数据定义
19|- ** 字段(Field)**:元数据字段是用于描述文档特定属性的标识项,每个字段代表文档的某个特征或信息。例如”author""language”等。
20|
21|
22|- ** 字段值(Value)**:字段值是该字段的具体信息或属性,例如”Jack""English”。
23|
24|
25|- ** 字段值计数(Value Count)**:字段值计数是指在某条元数据字段中标记的字段值数量,包括重复项。例如,此处的”3”是字段值计数,指该字段中有 3 个独特的字段值。
26|
27|
28|- ** 值类型(Value Type)**:值类型指字段值的类型。
29|- 目前,Dify 的元数据功能支持以下三种值类型:
30|- ** 字符串 **(String):文本值。
31|- ** 数字 **(Number):数值。
32|- ** 时间 **(Time):日期和时间。
33|
34|
35|## 如何管理知识库元数据?
36|### 管理知识库元数据字段在知识库管理界面,你可以创建、修改和删除元数据字段。
37|
38|注意:所有在此界面进行的更新均为 ** 全局更新 **,这意味着对元数据字段列表的任何更改都会影响整个知识库,包括所有文档中标记的元数据。
39|
40|
41|#### 元数据管理界面简介 ** 进入元数据管理界面 **
42|
43|在知识库管理界面,点击右上方的 ** 元数据 ** 按钮,进入元数据管理界面。
44|
45|
46|** 知识库元数据字段的类型 **
47|
48|在知识库中,元数据字段分为两类:** 内置元数据(Built-in)** 和 ** 自定义元数据 **。
49|
50|内置元数据(Built-in)自定义元数据显示位置知识库界面 元数据 栏的下半部分。知识库界面 元数据 栏的上半部分。启用方式默认禁用,需要手动开启才能生效。由用户根据需求自由添加。生成方式启用后,由系统自动提取相关信息并生成字段值。用户手动添加,完全由用户自定义。修改权限一旦生成,无法修改字段与字段值。可以删除或编辑字段名称,也可以修改字段值。应用范围启用后,适用于已上传和新上传的所有文档。添加元数据字段后,字段会储存在知识库的元数据列表中 / 需要手动设置,才能将该字段应用于具体文档。字段由系统预定义,包括:
51|
52|
53|- document_name (string):文件名
54|- uploader (string):上传者
55|- upload_date (time):上传日期
56|- last_update_date (time):最后更新时间
57|- source (string):文件来源在初始状态下,知识库无自定义元数据字段,需要用户手动添加。字段值类型
58|- 字符串 (string):文本值
59|- 数字 (number):数值
60|- 时间 (time):日期和时间
61|- 字符串 (string):文本值
62|- 数字 (number):数值
63|- 时间 (time):日期和时间
64|#### 新建元数据字段
65|- 点击 **+ 添加元数据 ** 按钮,弹出 ** 新建元数据 ** 弹窗。
66|
67|
68|- 在 ** 字段值类型 ** 中选择元数据字段的值类型。
69|
70|
71|- 在 ** 名称 ** 框中填写字段的名称。
72|
73|字段名仅支持小写字母、数字和下划线(_)字符,不支持空格和大写字母。
74|
75|
76|- 点击 ** 保存 ** 按钮,保存字段。
77|
78|
79|#### 修改元数据字段
80|- 点击单条元数据字段右侧的编辑按钮,弹出 ** 重命名 ** 弹窗。
81|
82|
83|- 在 ** 名称 ** 框中修改字段名称。此弹窗仅支持修改字段名称,不支持修改字段值类型。
84|
85|
86|- 点击 ** 保存 ** 按钮,保存修改后的字段。修改并保存后,该字段将在知识库中的所有相关文档中同步更新。
87|
88|
89|#### 删除元数据字段点击单条元数据字段右侧的删除按钮,可以删除该字段。
90|
91|如果删除单条字段,该字段及该字段下包含的字段值将从知识库的所有文档中删除。
92|
93|
94|### 编辑文档元数据信息
95|#### 批量编辑文档元数据信息你可以在知识库管理界面批量编辑文档的元数据信息。
96|
97|** 打开编辑元数据弹窗 **
98|
99|

100|- 打开知识库管理界面,在文档列表左侧的白色方框中勾选你希望批量操作的文档。勾选后,页面下方会弹出操作选项。 101| 102| 103|- 点击操作选项中的元数据,弹出编辑元数据弹窗。 104| 105|批量新增元数据信息 106| 107| 108|- 在编辑元数据弹窗中点击底部的 **+ 添加元数据按钮,弹出操作弹窗。 109| 110| 111|- 如需为选中文档添加已创建的字段: 112| 113| 114|- 可以从下拉列表中选择已有的字段,添加到字段列表中。 115| 116| 117|- 可以在搜索元数据搜索框中搜索你需要的字段,添加到该文档的字段列表中。 118| 119| 120|- 如需为选中文档新建字段,可以点击弹窗左下角的+ 新建元数据按钮,并参考前文的新建元数据字段章节新建字段。 121| 122|在+ 新建元数据弹窗中新建的元数据字段,将自动同步至知识库字段列表中。 123| 124| 125|- 如需管理已创建的字段,可以点击该弹窗右下角的管理按钮,跳转到知识库的管理界面。 126| 127| 128|- *(可选)* 新增字段后,在字段值框内填写该字段相应的字段值。 129| 130| 131|- 如果值类型为时间 **,在填写字段值时会弹出时间选择器,供你选择具体时间。 132| 133| 134|- 点击保存按钮,保存操作。批量删改元数据信息 135| 136| 137|- 在编辑元数据弹窗中删改元数据信息: 138|- 添加字段值: 在需要添加元数据值的字段框内直接输入所需值。 139| 140| 141|- 重置字段值: 将光标悬停在字段名左侧的蓝色圆点上,蓝点将变为重置按钮。点击蓝点,将字段框内修改后的内容重置为原始元数据值。 142| 143| 144|- 删除字段值: 145| 146| 147|- 删除一个字段值:在需要删除字段值的字段框内直接删除该字段值。 148| 149| 150|- 删除多个字段值:点击多个值卡片的删除图标,清空所有选中文档的该元数据字段的值。 151| 152| 153|- 删除单条元数据字段: 点击字段最右侧的删除符号,删除该字段。删除后,该字段会被横线划掉且置灰。此操作仅会删除已选文档的该字段与字段值,字段本身依然保留在知识库中。 154| 155| 156|- 点击保存按钮,保存操作。调整批量操作的应用范围 157| 158| 159|- 调整批量操作的应用范围: 你可以使用编辑元数据弹窗左下角的应用于所有文档选框来调整编辑模式中改动的应用范围。 160| 161| 162|- 否(默认): 如果不选中该选项,编辑模式中的改动仅对原本已有该元数据字段的文档生效,其他文档不会受到影响。 163| 164| 165|- : 如果选中该选项,编辑模式中的改动会对所有选中的文档生效。原本没有该字段的文档,会自动添加该字段。 166| 167| 168|#### 编辑单篇文档元数据信息你可以在文档详情界面中编辑单篇文档的元数据信息。 169| 170|进入文档元数据编辑模式 171| 172| 173|- 在文档详情界面,点击信息栏上方的开始标记按钮。 174| 175| 176|- 进入文档元数据编辑模式。 177| 178|新增文档元数据信息 179| 180| 181|- 在文档的元数据编辑模式中,点击 **+ 添加元数据按钮,弹出操作弹窗。 182| 183| 184|- 如需使用新建字段为该文档标记字段值,可以点击弹窗左下角的+ 新建元数据按钮,并参考前文的新建元数据字段章节新建字段。 185| 186|在文档页面新建的元数据字段,将自动同步至知识库字段列表中。 187| 188| 189|- 如需使用知识库已有的字段为该文档标记字段值,可以选择下列任意一种方式使用已有的字段: 190| 191| 192|- 从下拉列表中选择知识库已有的字段,添加到该文档的字段列表中。 193| 194| 195|- 在搜索元数据搜索框中搜索你需要的字段,添加到该文档的字段列表中。 196| 197| 198|- 如需管理知识库已有的字段,可以点击弹窗右下角的管理按钮,跳转到知识库的管理界面。 199| 200| 201|- *(可选)* 添加字段后,在字段名右侧的元数据栏中填写字段值。 202| 203| 204|- 点击右上角的保存按钮,保存字段值。删改文档元数据信息 205| 206| 207|- 在文档的元数据编辑模式中,点击右上角的编辑按钮,进入编辑模式。 208| 209| 210|- 删改文档元数据信息: 211|- 删改字段值: 在字段名右侧的字段值框内,删除或修改字段值。此模式仅支持修改字段值,不支持修改字段名。 212| 213| 214|- 删除字段: 点击字段值框右侧的删除按钮,删除字段。此操作仅会删除该文档的该字段与字段值,字段本身依然保留在知识库中。 215| 216| 217|- 点击右上角的保存按钮,保存修改后的字段信息。 218|## 如何使用元数据功能在知识库中筛选文档?请参阅在应用内集成知识库中的使用元数据筛选知识 ** 章节。 219| 220| 221|## FAQ 222|- 元数据有什么作用? 223| 224| 225|- 提升搜索效率:用户可以根据元数据标签快速筛选和查找相关信息,节省时间并提高工作效率。 226| 227| 228|- 增强数据安全性:通过元数据设置访问权限,确保只有授权用户能访问敏感信息,保障数据的安全性。 229| 230| 231|- 优化数据管理能力:元数据帮助企业或组织有效分类和存储数据,提高数据的管理和检索能力,增强数据的可用性和一致性。 232| 233| 234|- 支持自动化流程:元数据在文档管理、数据分析等场景中可以自动触发任务或操作,简化流程并提高整体效率。 235| 236| 237|- 知识库元数据管理列表中的元数据字段和某篇文档中的元数据值有什么区别? 238| 239|定义性质举例元数据管理列表中的元数据字段预定义的字段,用于描述文档的某些属性。全局性字段。所有文档都可以使用这些字段。作者、文档类型、上传日期。某篇文档中的元数据值每个文档按需标记的针对特定文档的信息。文档特定的值。每个文档根据其内容会标记不同的元数据值。文档 A 的”作者”字段值为”张三”,文档 B 的”作者”字段值为”李四”。 240|- **“在知识库管理界面删除某条元数据字段""在编辑元数据弹窗中删除已选文档的某条元数据字段”和”在文档详情界面删除某条元数据字段”有什么区别?** 操作方式操作方法影响范围结果在知识库管理界面删除某条元数据字段在知识库管理界面,点击某条元数据字段右侧的删除图标,删除该字段。从知识库管理列表中完全删除该元数据字段及其所有字段值。该字段从知识库中移除,所有文档中的该字段及包含的所有字段值也会消失。在编辑元数据弹窗中删除已选文档的某条元数据字段在编辑元数据弹窗中,点击某条元数据字段右侧的删除图标,删除该字段。仅删除已选文档的该字段与字段值,字段本身依然保留在知识库管理列表中。选中文档中的字段与字段值被移除,但字段仍保留在知识库内,字段值计数会发生数值上的变化。在文档详情界面删除某条元数据字段在文档详情界面中的元数据编辑模式里,点击某条元数据字段右侧的删除图标,删除该字段。仅删除该文档的该字段与字段值,字段本身依然保留在知识库管理列表中。该文档中的字段与字段值被移除,但字段仍保留在知识库内,字段值计数会发生数值上的变化。 241|


PRTCL // PLAINTEXT
1|# 知识库
2|
3|> 原文:[知识库](https://docs.dify.ai/zh/use-dify/knowledge/readme)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/readme)。
11|
12|
13|## 简介在 Dify 中,你可以将自有数据作为「知识」集成到 AI 应用中。通过为大语言模型(LLM)提供特定领域的上下文信息,知识能够让 LLM 的回复更加准确、相关,并显著减少幻觉。
14|
15|这得益于检索增强生成(RAG)技术。其核心在于:LLM 不再只依赖预训练的公开数据,还会将你的自定义知识作为额外的事实来源:
16|
17|
18|- (检索)处理用户提问时,系统会先从已集成的知识库中 ** 检索最相关的信息 **。
19|- (增强)检索到的信息会与用户的原始问题打包,作为 ** 增强的上下文 ** 发送给 LLM。
20|- (生成)LLM 基于这些上下文 ** 生成更精准的答案 **。知识存储在知识库中。你可以创建多个知识库,分别适配不同领域、场景或数据源,并按需集成到应用中。
21|
22|
23|## 应用场景借助 Dify 知识库,你可以打造基于自有数据和特定领域知识的 AI 应用。常见场景包括:
24|
25|
26|- ** 智能客服机器人 **:让问答机器人基于最新的产品文档、FAQ 和故障排查指南,智能回复客户问题。
27|- ** 企业内部知识门户 **:为员工构建 AI 搜索与问答系统,快速查询公司政策与流程。
28|- ** 内容生成工具 **:根据特定背景资料,智能生成报告、文章或邮件。
29|- ** 科研与分析应用 **:检索和总结学术论文、市场报告、法律文档等专业知识,辅助研究与分析。
30|## 创建知识库
31|- **[快速创建](/zh/use-dify/knowledge/create-knowledge/introduction)**:导入数据,设置处理规则,其余一切交给 Dify。简单高效,新手友好。
32|- **[通过知识流水线创建](/zh/use-dify/knowledge/knowledge-pipeline/readme)**:自定义步骤和插件,编排更复杂、灵活的数据处理流程。
33|- **[连接外部知识库](/zh/use-dify/knowledge/connect-external-knowledge-base)**:通过 API 直接同步外部知识库,无需迁移即可利用现有数据。
34|## 管理与优化知识库
35|- **[维护知识库内容](/zh/use-dify/knowledge/manage-knowledge/maintain-knowledge-documents)**:对文档及其分段进行查看、添加、修改和删除等操作,使知识库内容保持最新、准确、相关。
36|- **[测试召回效果](/zh/use-dify/knowledge/test-retrieval)**:模拟用户提问,测试知识库召回效果。
37|- **[利用元数据增强检索](/zh/use-dify/knowledge/metadata)**:为文档添加元数据,实现基于文档筛选的检索,进一步提升检索精度。
38|- **[调整知识库设置](/zh/use-dify/knowledge/manage-knowledge/introduction)**:随时调整索引方式、嵌入模型和检索策略等设置。
39|## 使用知识库 **[集成到应用](/zh/use-dify/knowledge/integrate-knowledge-within-application)**:将自定义知识集成到你的 AI 应用中。
40|
41|** 延伸阅读 **:
42|
43|
44|- [Dify v1.1.0 发布:用元数据给知识库“贴标签”,RAG 检索效率翻倍](https://mp.weixin.qq.com/s/Zvyz9tS2jmPaLo7Bi9y5LA)
45|
46|
47|- [Dify v0.15.0:全新父子检索策略 - 更精准,更全面的知识检索](https://mp.weixin.qq.com/s/YCvxXVjKjIeOpTNf4NRkYQ)
48|
49|
50|- [引入混合检索(Hybrid Search)和重排序(Rerank)改进 RAG 系统召回效果](https://mp.weixin.qq.com/s/57Wb0EcvgHzLO_XetTnRLg)
51|
52|
53|- [文本 Embedding 基本概念和应用实现原理](https://mp.weixin.qq.com/s/sYGxvx-qsu8xaIe2gb5haQ)
54|
55|
56|- [Dify.AI x Jina AI:Dify Embedding 模型新添助力 —— jina-embeddings-v2](https://mp.weixin.qq.com/s/k9-k1ONpRubRV4sKwuAhcg)
57|

PRTCL // PLAINTEXT
1|# 测试检索
2|
3|> 原文:[测试检索](https://docs.dify.ai/zh/use-dify/knowledge/test-retrieval)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/test-retrieval)。
11|
12|在知识库中,点击左侧边栏的 ** 检索测试 ** 图标,进入测试页面。在这里,可模拟用户提问以测试知识库的检索效果,并尝试不同的检索设置以获得最佳结果。
13|
14|
15|> ⚠️ 在召回测试中调整的检索设置,仅在当前测试会话中临时生效。
16|
17|
18|> 💡 关于检索参数的更多说明,阅读[指定检索设置](/zh/use-dify/knowledge/create-knowledge/setting-indexing-methods#%E6%8C%87%E5%AE%9A%E6%A3%80%E7%B4%A2%E8%AE%BE%E7%BD%AE)。
19|
20|
21|** 记录 ** 板块记录与该知识库相关的所有检索事件,包括:
22|
23|
24|- 在 ** 召回测试 ** 页面进行的测试检索
25|- 由任何关联应用发起的常规检索请求(无论是测试还是生产环境)
26|> 💡 召回测试与常规检索共用一个 API 接口。
27|

Related Posts

Comments

Copied
Copied to clipboard