-
+
### API 调用示例
diff --git a/ja-jp/guides/knowledge-base/metadata.mdx b/ja-jp/guides/knowledge-base/metadata.mdx
index 39823071..3005087e 100644
--- a/ja-jp/guides/knowledge-base/metadata.mdx
+++ b/ja-jp/guides/knowledge-base/metadata.mdx
@@ -18,6 +18,7 @@ title: 元数据
diff --git a/scripts/convert_image_format.py b/scripts/convert_image_format.py
index b77f907c..22629533 100644
--- a/scripts/convert_image_format.py
+++ b/scripts/convert_image_format.py
@@ -3,15 +3,37 @@
Mintlify图片格式转换工具
这个脚本用于扫描dify-docs-mintlify目录中的所有.mdx文件,
-并将标签中的图片转换为标准Markdown格式。
+并将标签中的图片转换为标准Markdown格式或HTML格式。
-转换前:
-
-
-
+支持以下转换:
+1. 基本Frame转Markdown:
+
+
+
+
+ 转换为:
+ 
-转换后:
-
+2. 带自闭合标签的Frame:
+
+
+
+
+ 转换为:
+ 
+
+3. 带宽度的Frame转HTML:
+
+
+
+
+ 转换为:
+
"""
import os
@@ -33,12 +55,32 @@ class Colors:
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
-# 匹配Frame标签中的图片
-FRAME_IMG_PATTERN = re.compile(r'\s*
+HTML_IMG_PATTERN = re.compile(
+ r'
+
如果将 script 代码粘贴到官网的 `` 处,你将得到一个官网 AI 机器人:
-
+
## 自定义 Dify 聊天机器人气泡按钮
diff --git a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/conversation-application.mdx b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/conversation-application.mdx
index 9859988e..ecd6822d 100644
--- a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/conversation-application.mdx
+++ b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/conversation-application.mdx
@@ -16,20 +16,16 @@ version: '简体中文'
如你在应用编排时有设置变量的填写要求,则在对话前需要按提示填写信息才可进入对话窗口:
-
-
-
+
填写必要内容,点击 "开始对话" 按钮,开始聊天。
-
-
-
+
移动到 AI 的回答上,可以复制会话内容,给回答 "赞" 和 "踩"。
-
+
### 对话的创建、置顶和删除
@@ -37,7 +33,7 @@ version: '简体中文'
点击 "新对话" 按钮开始一个新的对话。移动到一个会话上,可以对会话进行 "置顶" 和 "删除" 操作。
-
+
### 对话开场白
@@ -45,7 +41,7 @@ version: '简体中文'
若在应用编排时开启了「对话开场白」功能,则在创建一个新对话时 AI 应用会自动发起第一句对话:
-
+
### 下一步问题建议
@@ -53,7 +49,7 @@ version: '简体中文'
若在应用编排时开启了「下一步问题建议」功能,则在对话后系统自动生成 3 个相关问题建议:
-
+
### 语音转文字
@@ -63,11 +59,11 @@ version: '简体中文'
_请注意确保你使用的设备环境已经授权使用麦克风。_
-
+
### 引用与归属
开启该功能后,当 LLM 回复问题来自知识库的内容时,可以在回复内容下面查看到具体的引用段落信息,包括原始分段文本、分段序号、匹配度等。
-详细说明请参考[《引用与归属》](/zh-cn/user-guide/knowledge-base/retrieval-test-and-citation)。
\ No newline at end of file
+详细说明请参考[《引用与归属》](/zh-hans/guides/knowledge-base/retrieval-test-and-citation)。
diff --git a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/text-generator.mdx b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/text-generator.mdx
index 6bd6af5f..0343eed4 100644
--- a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/text-generator.mdx
+++ b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/text-generator.mdx
@@ -1,6 +1,5 @@
---
title: 文本生成型应用
-version: '简体中文'
---
文本生成类应用是一种根据用户提供的提示,自动生成高质量文本的应用。它可以生成各种类型的文本,例如文章摘要、翻译等。
@@ -19,7 +18,7 @@ version: '简体中文'
输入查询内容,点击运行按钮,右侧会生成结果,如下图所示:
-
+
在生成的结果部分,点 "复制" 按钮可以将内容复制到剪贴板。点 "保存" 按钮可以保存内容。可以在 "已保存" 选项卡中看到保存过的内容。也可以对生成的内容点 "赞" 和 "踩"。
@@ -35,7 +34,7 @@ version: '简体中文'
点击 "批量运行" 选项卡,则会进入批量运行页面。
-
+
#### 第 2 步 下载模版并填写内容
@@ -43,13 +42,13 @@ version: '简体中文'
点击下载模版按钮,下载模版。编辑模版,填写内容,并另存为 `.csv` 格式的文件。
-
+
#### 第 3 步 上传文件并运行
-
+
如果需要导出生成的内容,可以点右上角的下载 "按钮" 来导出为 `csv` 文件。
@@ -61,7 +60,7 @@ version: '简体中文'
点击生成结果下面的 "保存" 按钮,可以保存运行结果。在 "已保存" 选项卡中,可以看到所有已保存的内容。
-
+
### 生成更多类似结果
@@ -69,5 +68,5 @@ version: '简体中文'
如果在应用编排时开启了 "更多类似" 的功能。在 Web 应用中可以点击 "更多类似" 的按钮来生成和当前结果相似的内容。如下图所示:
-
+
\ No newline at end of file
diff --git a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/web-app-settings.mdx b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/web-app-settings.mdx
index 189c05d7..f0353d26 100644
--- a/zh-hans/guides/application-publishing/launch-your-webapp-quickly/web-app-settings.mdx
+++ b/zh-hans/guides/application-publishing/launch-your-webapp-quickly/web-app-settings.mdx
@@ -1,6 +1,5 @@
---
title: Web 应用设置
-version: '简体中文'
---
Web 应用是给应用使用者用的。应用开发者在 Dify 创建一个应用,就会获得一个对应的 Web 应用。Web 应用的使用者无需登陆,即可使用。Web 应用已适配不同尺寸的设备:PC,平板和手机。
diff --git a/zh-hans/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api.mdx b/zh-hans/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api.mdx
index a336a3e5..38963092 100644
--- a/zh-hans/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api.mdx
+++ b/zh-hans/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api.mdx
@@ -20,9 +20,7 @@ version: '简体中文'
进入知识库页面,在左侧的导航中切换至 **API** 页面。在该页面中你可以查看 Dify 提供的知识库 API 文档,并可以在 **API 密钥** 中管理可访问知识库 API 的凭据。
-
-
-
+
### API 调用示例
diff --git a/zh-hans/guides/knowledge-base/knowledge-base-creation/introduction.mdx b/zh-hans/guides/knowledge-base/knowledge-base-creation/introduction.mdx
index 576eb7ef..cf63160a 100644
--- a/zh-hans/guides/knowledge-base/knowledge-base-creation/introduction.mdx
+++ b/zh-hans/guides/knowledge-base/knowledge-base-creation/introduction.mdx
@@ -23,7 +23,7 @@ title: 创建步骤
diff --git a/zh-hans/guides/management/app-management.mdx b/zh-hans/guides/management/app-management.mdx
index f26d3c70..fd4ca47a 100644
--- a/zh-hans/guides/management/app-management.mdx
+++ b/zh-hans/guides/management/app-management.mdx
@@ -1,19 +1,27 @@
---
title: 应用管理
-version: '简体中文'
---
-## [编辑应用信息](#edit-app-info)
+## 导入应用
+
+将 DSL 文件上传至 Dify 平台内即可完成 Dify 应用的导入。导入 DSL 文件时会进行版本检查,如果导入较低版本的 DSL 文件将进行提示。
+
+- 对于 SaaS 用户而言,在 SaaS 平台导出的 DSL 文件版本为最新版本。
+- 对于社区版用户而言,建议参考[更新 Dify](/zh-hans/getting-started/install-self-hosted/docker-compose#更新-dify)更新社区版以导出更高版本的 DSL 文件,避免潜在的兼容性问题。
+
+
+
+## 编辑应用信息
创建应用后,如果你想要修改应用名称或描述,可以点击应用左上角的 「编辑信息」 ,重新修改应用的图标、名称或描述。
-
+
-## [复制应用](#copy-app)
+## 复制应用
应用均支持复制操作,点击应用左上角的 「复制」。
-## [导出应用](#export-app)
+## 导出应用
在 Dify 内创建的应用均支持以 DSL 格式进行导出,你可以自由地将配置文件导入至任意 Dify 团队。
@@ -22,20 +30,20 @@ version: '简体中文'
* 在 “工作室” 页点击应用菜单按钮中 “导出 DSL”;
* 进入应用的编排页后,点击左上角 “导出 DSL”。
-
+
DSL 文件不包含自定义工具节点内已填写的授权信息,例如第三方服务的 API Key;如果环境变量中包含 `Secret`类型变量,导出文件时将提示是否允许导出该敏感信息。
-
+
-
+
为项目编辑一个名称。
-
+
3. 创建项目 API 凭据,在项目内左侧边栏中点击 **Settings** 打开设置
-
+
在 Settings 内点击 **Create API Keys** 创建一个项目 API 凭据。
-
+
复制并保存 **Secret Key** ,**Public Key,Host**
-
+
4. 在 Dify 内配置 Langfuse,打开需要监测的应用,在侧边菜单打开 **监测 **,在页面中选择 **配置。**
-
+
点击配置后,将在 Langfuse 内创建的 **Secret Key, Public Key, Host** 粘贴到配置内并保存。
-
+
成功保存后可以在当前页面查看到状态,显示已启动即正在监测。
-
+
***
@@ -71,22 +70,22 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
配置完成后, Dify 内应用的调试或生产数据可以在 Langfuse 查看监测数据。
-
+
-
+
-
+
### 监测数据清单
-#### Workflow /Chatflow Trace 信息
+#### Workflow /Chatflow Trace信息
-** 用于追踪 workflow 以及 chatflow**
+**用于追踪workflow以及chatflow**
| Workflow | LangFuse Trace |
| ---------------------------------------- | ----------------------- |
@@ -138,9 +137,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* file\_list - 处理的文件列表
* triggered\_from - 触发来源
-#### Message Trace 信息
+#### Message Trace信息
-** 用于追踪 llm 对话相关 **
+**用于追踪llm对话相关**
| Message | LangFuse Generation/Trace |
| -------------------------------- | ------------------------- |
@@ -188,9 +187,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* from\_source - 消息来源
* message\_id - 消息 ID
-#### Moderation Trace 信息
+#### Moderation Trace信息
-** 用于追踪对话审查 **
+**用于追踪对话审查**
| Moderation | LangFuse Generation/Trace |
| ------------- | ------------------------- |
@@ -221,9 +220,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* action - 执行的具体行动
* preset\_response - 预设响应
-#### Suggested Question Trace 信息
+#### Suggested Question Trace信息
-** 用于追踪建议问题 **
+**用于追踪建议问题**
| Suggested Question | LangFuse Generation/Trace |
| ---------------------- | ------------------------- |
@@ -266,9 +265,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* workflow\_run\_id - 工作流运行 ID
* from\_source - 消息来源
-#### Dataset Retrieval Trace 信息
+#### Dataset Retrieval Trace信息
-** 用于追踪知识库检索 **
+**用于追踪知识库检索**
| Dataset Retrieval | LangFuse Generation/Trace |
| --------------------- | ------------------------- |
@@ -301,9 +300,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* workflow\_run\_id 工作流运行 ID
* from\_source 消息来源
-#### Tool Trace 信息
+#### Tool Trace信息
-** 用于追踪工具调用 **
+**用于追踪工具调用**
| Tool | LangFuse Generation/Trace |
| --------------------- | ------------------------- |
@@ -346,9 +345,9 @@ Langfuse 官网介绍:[https://langfuse.com/](https://langfuse.com/)
* created\_by\_role 创建者角色
* created\_user\_id 创建者用户 ID
-#### Generate Name Trace 信息
+#### Generate Name Trace信息
-** 用于追踪会话标题生成 **
+**用于追踪会话标题生成**
| Generate Name | LangFuse Generation/Trace |
| ----------------- | ------------------------- |
diff --git a/zh-hans/guides/monitoring/integrate-external-ops-tools/integrate-langsmith.mdx b/zh-hans/guides/monitoring/integrate-external-ops-tools/integrate-langsmith.mdx
index bb16e4d1..f091be8b 100644
--- a/zh-hans/guides/monitoring/integrate-external-ops-tools/integrate-langsmith.mdx
+++ b/zh-hans/guides/monitoring/integrate-external-ops-tools/integrate-langsmith.mdx
@@ -1,19 +1,18 @@
---
title: 集成 LangSmith
-version: '简体中文'
---
-### 什么是 LangSmith
+### LangSmith 简介
LangSmith 是一个用于构建生产级 LLM 应用程序的平台,它用于开发、协作、测试、部署和监控 LLM 应用程序。
-
+
创建完成之后在 Projects 内可以查看该项目。
-
+
#### 3. 创建项目凭据
@@ -38,25 +37,25 @@ LangSmith [官网介绍](https://www.langchain.com/langsmith)
创建项目凭据,在左侧边栏内找到项目设置 **Settings**。
-
+
点击 **Create API Key**,创建一个项目凭据。
-
+
选择 **Personal Access Token** ,用于后续的 API 身份校验。
-
+
将创建的 API key 复制保存。
-
+
#### 4. 将 LangSmith 集成至 Dify 平台
@@ -64,23 +63,23 @@ LangSmith [官网介绍](https://www.langchain.com/langsmith)
在 Dify 应用内配置 LangSmith。打开需要监测的应用,在左侧边菜单内打开**监测**,点击页面内的**配置。**
-
+
点击配置后,将在 LangSmith 内创建的 **API Key** 和**项目名**粘贴到配置内并保存。
-
+
-
+
### 在 LangSmith 内查看监测数据
@@ -88,15 +87,15 @@ LangSmith [官网介绍](https://www.langchain.com/langsmith)
配置完成后, Dify 内应用的调试或生产数据可以在 LangSmith 查看监测数据。
-
+
-
+
-
+
### 监测数据清单
diff --git a/zh-hans/guides/tools/extensions/api-based/api-based-extension.mdx b/zh-hans/guides/tools/extensions/api-based/api-based-extension.mdx
index 68856e57..0bc4b4b6 100644
--- a/zh-hans/guides/tools/extensions/api-based/api-based-extension.mdx
+++ b/zh-hans/guides/tools/extensions/api-based/api-based-extension.mdx
@@ -12,9 +12,7 @@ version: '简体中文'
除了需要开发对应的模块能力,还需要遵照以下规范,以便 Dify 正确调用 API。
-
-
-
+
### API 规范
@@ -240,9 +238,7 @@ API 返回为:
1. 进入 [https://ngrok.com](https://ngrok.com) 官网,注册并下载 Ngrok 文件。
-
-
-
+
2. 下载完成后,进入下载目录,根据下方说明解压压缩包,并执行说明中的初始化脚本。
* ```Shell
@@ -251,9 +247,7 @@ API 返回为:
```
3. 查看本地 API 服务的端口:
-
-
-
+
并运行以下命令启动:
@@ -263,9 +257,7 @@ API 返回为:
启动成功的样例如下:
-
-
-
+
4. 我们找到 Forwarding 中,如上图:`https://177e-159-223-41-52.ngrok-free.app`(此为示例域名,请替换为自己的)即为公网域名。
diff --git a/zh-hans/guides/tools/extensions/api-based/cloudflare-workers.mdx b/zh-hans/guides/tools/extensions/api-based/cloudflare-workers.mdx
index 76e56f2c..20b5587b 100644
--- a/zh-hans/guides/tools/extensions/api-based/cloudflare-workers.mdx
+++ b/zh-hans/guides/tools/extensions/api-based/cloudflare-workers.mdx
@@ -46,13 +46,9 @@ npm run deploy
部署成功之后,你会得到一个公网地址,你可以在 Dify 中添加这个地址作为 API Endpoint。请注意不要遗漏 `endpoint` 这个路径。
-
-
-
+
-
-
-
+
## 其他逻辑
diff --git a/zh-hans/guides/tools/extensions/code-based/external-data-tool.mdx b/zh-hans/guides/tools/extensions/code-based/external-data-tool.mdx
index 3edb861d..4e3f90ad 100644
--- a/zh-hans/guides/tools/extensions/code-based/external-data-tool.mdx
+++ b/zh-hans/guides/tools/extensions/code-based/external-data-tool.mdx
@@ -1,47 +1,189 @@
---
title: 外部数据工具
-version: '简体中文'
---
-## 功能介绍
+外部数据工具用于在终端用户提交数据后,利用外部工具获取额外数据组装至提示词中作为 LLM 额外上下文信息。Dify 默认提供了外部 API 调用的工具,具体参见 [基于 API 的扩展](/zh-hans/guides/tools/extensions/api-based/api-based-extension)。
-[知识库](https://docs.dify.ai/zh-hans/guides/knowledge-base/create-knowledge-and-upload-documents)功能允许开发者可以直接上传各类格式的长文本、结构化数据来构建数据集,使 AI 应用基于用户上传的最新上下文进行对话。
+而对于本地部署 Dify 的开发者,为了满足更加定制化的需求,或者不希望额外开发一个 API Server,可以直接在 Dify 服务的基础上,以插件的形式插入定制的外部数据工具实现逻辑。扩展自定义工具后,将会在工具类型的下拉列表中增加你的自定义工具选项,团队成员即可使用自定义的工具来获取外部数据。
-而**外部数据工具**赋能开发者可以使用自有的搜索能力或内部知识库等外部数据作为 LLM 的上下文,通过 API 扩展的方式实现外部数据的获取并嵌入提示词。相比在云端上传数据集,使用**外部数据工具**可以在保障私有数据安全,自定义搜索,获取实时数据等方面有显著优势。
+## 快速开始
-## 具体实现
+这里以一个 `天气查询` 外部数据工具扩展为例,步骤如下:
-当终端用户向对话系统提出请求时,平台后端会触发外部数据工具(即调用自己的 API),它会查询用户问题相关的外部信息,如员工资料、实时记录等,通过 API 返回与当前请求相关的部分。平台后端会将返回的结果组装成文本作为上下文注入到提示词中,以输出更加个性化和符合用户需求的回复内容。
+1. 初始化目录
+2. 添加前端表单规范
+3. 添加实现类
+4. 预览前端界面
+5. 调试扩展
-## 操作说明
+### 1. **初始化目录**
-1. 在使用外部数据工具之前,你需要准备一个 API 和用于鉴权的 API Key,请阅读[external-data-tool.md](../extension/api-based-extension/external-data-tool.md "mention")
-2. Dify 提供了集中式的 API 管理,在设置界面统一添加 API 扩展配置后,即可在 Dify 上的各类应用中直接使用。
+新增自定义类型 `Weather Search` ,需要在 `api/core/external_data_tool` 目录下新建相关的目录和文件。
-
-
-
+```python
+.
+└── api
+ └── core
+ └── external_data_tool
+ └── weather_search
+ ├── __init__.py
+ ├── weather_search.py
+ └── schema.json
+```
-3. 我们以"查询天气"为例,在"新增基于 API 的扩展"对话框输入名字,API 端点,API Key。保存后我们就可以调用 API 了。
+### 2. **添加前端组件规范**
-
-
-
+* `schema.json`,定义前端组件,详细请参考[基于代码的扩展](/zh-hans/guides/tools/extensions/code-based/external-data-tool)
-4. 在提示词编排页面,点击"工具"右侧的"+添加"按钮,在打开的"添加 工具"对话框,填写名称和变量名称(变量名称会被引用到提示词中,请填写英文),以及选择第 2 步中已经添加的基于 API 的扩展。
+```json
+{
+ "label": {
+ "en-US": "Weather Search",
+ "zh-Hans": "天气查询"
+ },
+ "form_schema": [
+ {
+ "type": "select",
+ "label": {
+ "en-US": "Temperature Unit",
+ "zh-Hans": "温度单位"
+ },
+ "variable": "temperature_unit",
+ "required": true,
+ "options": [
+ {
+ "label": {
+ "en-US": "Fahrenheit",
+ "zh-Hans": "华氏度"
+ },
+ "value": "fahrenheit"
+ },
+ {
+ "label": {
+ "en-US": "Centigrade",
+ "zh-Hans": "摄氏度"
+ },
+ "value": "centigrade"
+ }
+ ],
+ "default": "centigrade",
+ "placeholder": "Please select temperature unit"
+ }
+ ]
+}
+```
-
-
-
+### 3. 添加实现类
-5. 这样,我们在提示词编排框就可以把查询到的外部数据拼装到提示词中。比如我们要查询今天的伦敦天气,可以添加`location` 变量,输入"London",结合外部数据工具的扩展变量名称`weather_data`,调试输出如下:
+`weather_search.py` 代码模版,你可以在这里实现具体的业务逻辑。
-
-
-
+
-
\ No newline at end of file
+from core.external_data_tool.base import ExternalDataTool
+
+
+class WeatherSearch(ExternalDataTool):
+ """
+ The name of custom type must be unique, keep the same with directory and file name.
+ """
+ name: str = "weather_search"
+
+ @classmethod
+ def validate_config(cls, tenant_id: str, config: dict) -> None:
+ """
+ schema.json validation. It will be called when user save the config.
+
+ Example:
+ .. code-block:: python
+ config = {
+ "temperature_unit": "centigrade"
+ }
+
+ :param tenant_id: the id of workspace
+ :param config: the variables of form config
+ :return:
+ """
+
+ if not config.get('temperature_unit'):
+ raise ValueError('temperature unit is required')
+
+ def query(self, inputs: dict, query: Optional[str] = None) -> str:
+ """
+ Query the external data tool.
+
+ :param inputs: user inputs
+ :param query: the query of chat app
+ :return: the tool query result
+ """
+ city = inputs.get('city')
+ temperature_unit = self.config.get('temperature_unit')
+
+ if temperature_unit == 'fahrenheit':
+ return f'Weather in {city} is 32°F'
+ else:
+ return f'Weather in {city} is 0°C'
+```
+
+### 4. **调试扩展**
+
+至此,即可在 Dify 应用编排界面选择自定义的 `Weather Search` 外部数据工具扩展类型进行调试。
+
+## 实现类模版
+
+```python
+from typing import Optional
+
+from core.external_data_tool.base import ExternalDataTool
+
+
+class WeatherSearch(ExternalDataTool):
+ """
+ The name of custom type must be unique, keep the same with directory and file name.
+ """
+ name: str = "weather_search"
+
+ @classmethod
+ def validate_config(cls, tenant_id: str, config: dict) -> None:
+ """
+ schema.json validation. It will be called when user save the config.
+
+ :param tenant_id: the id of workspace
+ :param config: the variables of form config
+ :return:
+ """
+
+ # implement your own logic here
+
+ def query(self, inputs: dict, query: Optional[str] = None) -> str:
+ """
+ Query the external data tool.
+
+ :param inputs: user inputs
+ :param query: the query of chat app
+ :return: the tool query result
+ """
+
+ # implement your own logic here
+ return "your own data."
+```
+
+### 实现类开发详细介绍
+
+### def validate\_config
+
+`schema.json` 表单校验方法,当用户点击「发布」保存配置时调用
+
+* `config` 表单参数
+ * `{{variable}}` 表单自定义变量
+
+### def query
+
+用户自定义数据查询实现,返回的结果将会被替换到指定的变量。
+
+* `inputs` :终端用户传入变量值
+* `query` :终端用户当前对话输入内容,对话型应用固定参数。
diff --git a/zh-hans/guides/tools/extensions/code-based/moderation.mdx b/zh-hans/guides/tools/extensions/code-based/moderation.mdx
index 27760c88..78b4a506 100644
--- a/zh-hans/guides/tools/extensions/code-based/moderation.mdx
+++ b/zh-hans/guides/tools/extensions/code-based/moderation.mdx
@@ -309,5 +309,3 @@ class CloudServiceModeration(Moderation):
* `overridden`覆写传入变量值
* `preset_response` 预设回复(仅当 action=direct\_output 返回)
* `text` 覆写的 LLM 回答内容(仅当 action=overridden 返回)。
-
-\\
diff --git a/zh-hans/guides/workflow/file-upload.mdx b/zh-hans/guides/workflow/file-upload.mdx
index 3b444934..bae960c3 100644
--- a/zh-hans/guides/workflow/file-upload.mdx
+++ b/zh-hans/guides/workflow/file-upload.mdx
@@ -1,6 +1,5 @@
---
title: 文件上传
-version: '简体中文'
---
相较于聊天文本,文档文件能够承载大量的信息,例如学术报告、法律合同。受限于 LLM 自身仅能够支持文件或图片,难以获取文件内更加丰富的上下文信息,应用的使用者不得不手动复制粘贴大量信息与 LLM 对话,增加了许多不必要的使用成本。
@@ -36,13 +35,13 @@ version: '简体中文'
### 快速开始
-Dify 支持在 [ChatFlow](key-concept.md#chatflow-he-workflow) 和 [WorkFlow](key-concept.md#chatflow-he-workflow) 类型应用中上传文件,并通过[变量](variables)交由 LLM 处理。应用开发者可以参考以下方法为应用开启文件上传功能:
+Dify 支持在 [ChatFlow](/zh-hans/guides/workflow/concepts#chatflow-和-workflow) 和 [WorkFlow](/zh-hans/guides/workflow/concepts#chatflow-和-workflow) 类型应用中上传文件,并通过[变量](/zh-hans/guides/workflow/variables)交由 LLM 处理。应用开发者可以参考以下方法为应用开启文件上传功能:
* 在 Workflow 应用中:
- * 在 ["开始节点"](node/start) 添加文件变量
+ * 在 ["开始节点"](/zh-hans/guides/workflow/nodes/start) 添加文件变量
* 在 ChatFlow 应用中:
- * 在 ["附加功能"](additional-features) 中开启文件上传,允许在聊天窗中直接上传文件
- * 在 ["开始节点"](node/start) 添加文件变量
+ * 在 ["附加功能"](/zh-hans/guides/workflow/additional-feature) 中开启文件上传,允许在聊天窗中直接上传文件
+ * 在 ["开始节点"](/zh-hans/guides/workflow/nodes/start) 添加文件变量
* 注意:这两种方法可以同时配置,它们是彼此独立的。附加功能中的文件上传设置(包括上传方式和数量限制)不会影响开始节点中的文件变量。例如只想通过开始节点创建文件变量,则无需开启附加功能中的文件上传功能。
这两种方法为应用提供了灵活的文件上传选项,以满足不同场景的需求。
@@ -59,42 +58,58 @@ file variables 和 array[file] variables 支持以下文件类型与格式:
| 视频 | MP4, MOV, MPEG, MPGA. |
| 其他 | 自定义后缀名支持 |
-#### 方法一:在应用聊天框中开启文件上传(仅适用于 Chatflow)
+#### 方法一:使用具备识别文件的 LLM
+
+部分 LLMs(例如 [Claude 3.5 Sonnet](https://docs.anthropic.com/en/docs/build-with-claude/pdf-support))已支持直接处理并分析文件内容,因此 LLM 节点的提示词已允许输入文件变量。
+
+> 为了避免潜在异常,应用开发者在使用该文件变量前需前往 LLM 官网确认 LLM 支持何种文件类型。
+
+1. 点击创建 Chatflow / Workflow 应用。
+2. 添加 LLM 节点,选择具备文件分析能力的 LLM。
+3. 在开始节点添加文件变量
+4. 在 LLM 的系统提示词内输入文件变量。
+5. 完成创建。
+
+
+
+
+
+#### 方法二:在应用聊天框中开启文件上传(仅适用于 Chatflow)
1. 点击 Chatflow 应用右上角的 **"功能"** 按钮即可为应用添加更多功能。
开启此功能后,应用使用者可以在应用对话的过程中随时上传并更新文件。最多支持同时上传 10 个文件,每个文件的大小上限为 15MB。
-
+
-开启该功能并不意味着赋予 LLM 直接读取文件的能力,还需要配备[**文档提取器**](node/doc-extractor)将文档解析为文本供 LLM 理解。
+开启该功能并不意味着赋予 LLM 直接读取文件的能力,还需要配备[**文档提取器**](/zh-hans/guides/workflow/nodes/doc-extractor)将文档解析为文本供 LLM 理解。
-* 对于音频文件,可以使用 gpt-4o-audio-preview 等支持多模态输入的模型直接处理音频,无需额外的提取器。
-* 对于视频和其他文件类型,暂无对应的提取器,需要应用开发者接入[外部工具](../tools/advanced-tool-integration)进行处理
+* 对于音频文件,可以使用 `gpt-4o-audio-preview` 等支持多模态输入的模型直接处理音频,无需额外的提取器。
+* 对于视频和其他文件类型,暂无对应的提取器,需要应用开发者接入[外部工具](/zh-hans/guides/tools/extensions/api-based/api-based-extension)进行处理
-2. 添加[文档提取器](node/doc-extractor)节点,在输入变量中选中 `sys.files` 变量。
+2. 添加[文档提取器](/zh-hans/guides/workflow/nodes/doc-extractor)节点,在输入变量中选中 `sys.files` 变量。
3. 添加 LLM 节点,在系统提示词中选中文档提取器节点的输出变量。
4. 在末尾添加 "直接回复" 节点,填写 LLM 节点的输出变量。
-
+
开启后,用户可以在对话框中上传文件并进行对话。但通过此方式, LLM 应用并不具备记忆文件内容的能力,每次对话时需要上传文件。
-
+
若希望 LLM 能够在对话中记忆文件内容,请参考下文。
-#### 方法二:通过添加文件变量开启文件上传功能
+#### 方法三:通过添加文件变量开启文件上传功能
#### 1. 在"开始"节点添加文件变量
-在应用的["开始"](node/start)节点内添加输入字段,选择 **"单文件"** 或 **"文件列表"** 字段类型的变量。
+在应用的["开始"](/zh-hans/guides/workflow/nodes/start)节点内添加输入字段,选择 **"单文件"** 或 **"文件列表"** 字段类型的变量。