diff --git a/zh_CN/.gitbook/assets/image (151).png b/zh_CN/.gitbook/assets/image (151).png new file mode 100644 index 0000000..537b8d3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (151).png differ diff --git a/zh_CN/.gitbook/assets/image (152).png b/zh_CN/.gitbook/assets/image (152).png new file mode 100644 index 0000000..6a3c26b Binary files /dev/null and b/zh_CN/.gitbook/assets/image (152).png differ diff --git a/zh_CN/.gitbook/assets/image (153).png b/zh_CN/.gitbook/assets/image (153).png new file mode 100644 index 0000000..6a3c26b Binary files /dev/null and b/zh_CN/.gitbook/assets/image (153).png differ diff --git a/zh_CN/.gitbook/assets/image (154).png b/zh_CN/.gitbook/assets/image (154).png new file mode 100644 index 0000000..6a3c26b Binary files /dev/null and b/zh_CN/.gitbook/assets/image (154).png differ diff --git a/zh_CN/.gitbook/assets/image (155).png b/zh_CN/.gitbook/assets/image (155).png new file mode 100644 index 0000000..6a3c26b Binary files /dev/null and b/zh_CN/.gitbook/assets/image (155).png differ diff --git a/zh_CN/.gitbook/assets/image (156).png b/zh_CN/.gitbook/assets/image (156).png new file mode 100644 index 0000000..4f2d7dd Binary files /dev/null and b/zh_CN/.gitbook/assets/image (156).png differ diff --git a/zh_CN/.gitbook/assets/image (157).png b/zh_CN/.gitbook/assets/image (157).png new file mode 100644 index 0000000..582917a Binary files /dev/null and b/zh_CN/.gitbook/assets/image (157).png differ diff --git a/zh_CN/.gitbook/assets/image (158).png b/zh_CN/.gitbook/assets/image (158).png new file mode 100644 index 0000000..82b1175 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (158).png differ diff --git a/zh_CN/.gitbook/assets/image (159).png b/zh_CN/.gitbook/assets/image (159).png new file mode 100644 index 0000000..b744bee Binary files /dev/null and b/zh_CN/.gitbook/assets/image (159).png differ diff --git a/zh_CN/.gitbook/assets/image (160).png b/zh_CN/.gitbook/assets/image (160).png new file mode 100644 index 0000000..1775718 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (160).png differ diff --git a/zh_CN/.gitbook/assets/image (161).png b/zh_CN/.gitbook/assets/image (161).png new file mode 100644 index 0000000..a38848c Binary files /dev/null and b/zh_CN/.gitbook/assets/image (161).png differ diff --git a/zh_CN/.gitbook/assets/image (162).png b/zh_CN/.gitbook/assets/image (162).png new file mode 100644 index 0000000..47e8ab1 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (162).png differ diff --git a/zh_CN/SUMMARY.md b/zh_CN/SUMMARY.md index 1446a96..a5ad832 100644 --- a/zh_CN/SUMMARY.md +++ b/zh_CN/SUMMARY.md @@ -51,6 +51,7 @@ * [接入 Ollama 部署的本地模型](guides/model-configuration/ollama.md) * [工作流](guides/workflow/README.md) * [基本介绍](guides/workflow/introduce.md) + * [关键概念](guides/workflow/key\_concept.md) * [节点说明](guides/workflow/node/README.md) * [开始](guides/workflow/node/start.md) * [结束](guides/workflow/node/end.md) @@ -64,11 +65,14 @@ * [变量赋值](guides/workflow/node/variable\_assigner.md) * [HTTP 请求](guides/workflow/node/http\_request.md) * [工具](guides/workflow/node/tools.md) - * [预览调试](guides/workflow/debug\_and\_preview/README.md) + * [预览与调试](guides/workflow/debug\_and\_preview/README.md) + * [预览与运行](guides/workflow/debug\_and\_preview/yu-lan-yu-yun-hang.md) + * [单步调试](guides/workflow/debug\_and\_preview/step\_run.md) * [对话/运行日志](guides/workflow/debug\_and\_preview/log.md) * [检查清单](guides/workflow/debug\_and\_preview/checklist.md) * [运行历史](guides/workflow/debug\_and\_preview/history.md) * [应用发布](guides/workflow/publish.md) + * [导出/导入模板](guides/workflow/dao-chu-dao-ru-mo-ban.md) * [知识库](guides/knowledge-base/README.md) * [从 Notion 导入数据](guides/knowledge-base/sync-from-notion.md) * [通过 API 维护数据集](guides/knowledge-base/maintain-dataset-via-api.md) diff --git a/zh_CN/guides/workflow/dao-chu-dao-ru-mo-ban.md b/zh_CN/guides/workflow/dao-chu-dao-ru-mo-ban.md new file mode 100644 index 0000000..095182a --- /dev/null +++ b/zh_CN/guides/workflow/dao-chu-dao-ru-mo-ban.md @@ -0,0 +1,15 @@ +# 导出/导入模板 + +你可以在工作室内导出/导入应用模板为 YAML 格式的 DSL 文件与你的团队成员分享应用。 + +在工作室应用列表内导入 DSL 文件: + +
+ +在工作室应用列表内导出 DSL 文件: + +
+ +在工作流编排页导出 DSL 文件: + +
diff --git a/zh_CN/guides/workflow/debug_and_preview/checklist.md b/zh_CN/guides/workflow/debug_and_preview/checklist.md index bd9bcfa..8f8cd63 100644 --- a/zh_CN/guides/workflow/debug_and_preview/checklist.md +++ b/zh_CN/guides/workflow/debug_and_preview/checklist.md @@ -1,2 +1,5 @@ # 检查清单 +在进入调试运行之前,你可以在检查清单内检查是否有未完成配置或者未连线的节点。 + +
diff --git a/zh_CN/guides/workflow/debug_and_preview/history.md b/zh_CN/guides/workflow/debug_and_preview/history.md index 36adc32..1d56233 100644 --- a/zh_CN/guides/workflow/debug_and_preview/history.md +++ b/zh_CN/guides/workflow/debug_and_preview/history.md @@ -1,2 +1,5 @@ # 运行历史 +在「运行历史」中可以查看当前工作流历史调试的运行结果和日志信息。 + +
diff --git a/zh_CN/guides/workflow/debug_and_preview/log.md b/zh_CN/guides/workflow/debug_and_preview/log.md index 30a13e2..8f67d02 100644 --- a/zh_CN/guides/workflow/debug_and_preview/log.md +++ b/zh_CN/guides/workflow/debug_and_preview/log.md @@ -1,2 +1,9 @@ # 对话/运行日志 +点击「查看日志—详情」可以在详情中查看运行总览信息、输入/输出 、元数据信息等。 + +
+ +点击「查看日志-追踪」可以查看工作流完整运行过程各节点的输入/输出、Token 消耗、运行时长等。 + +
diff --git a/zh_CN/guides/workflow/debug_and_preview/step_run.md b/zh_CN/guides/workflow/debug_and_preview/step_run.md new file mode 100644 index 0000000..4df7460 --- /dev/null +++ b/zh_CN/guides/workflow/debug_and_preview/step_run.md @@ -0,0 +1,9 @@ +# 单步调试 + +工作流支持节点的单步调试,在单步调试中你可以重复测试当前节点的执行是否符合预期。 + +
+ +单步测试运行后可以查看运行状态、输入/输出、元数据信息。 + +
diff --git a/zh_CN/guides/workflow/debug_and_preview/yu-lan-yu-yun-hang.md b/zh_CN/guides/workflow/debug_and_preview/yu-lan-yu-yun-hang.md new file mode 100644 index 0000000..a17c848 --- /dev/null +++ b/zh_CN/guides/workflow/debug_and_preview/yu-lan-yu-yun-hang.md @@ -0,0 +1,13 @@ +# 预览与运行 + +Dify Workflow 提供了一套完整的运行调试功能,在对话型应用中点击「预览」进入调试模式。 + +
+ +在工作流应用中点击「运行」进入调试模式。 + +
+ +进入调试模式内在界面右侧调试已配置好的工作流。 + +
diff --git a/zh_CN/guides/workflow/introduce.md b/zh_CN/guides/workflow/introduce.md index 819798b..d96b079 100644 --- a/zh_CN/guides/workflow/introduce.md +++ b/zh_CN/guides/workflow/introduce.md @@ -1,2 +1,47 @@ -# 基本概念 +# 基本介绍 +### 基本介绍 + +工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。 + +Dify 工作流按应用情景划分为两种类型: + +* Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。 +* Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。 + +为解决自然语言输入中用户意图识别的复杂性,Chatflow 提供了问题理解类节点,如问题分类、问题重写、子问题拆分等节点。除此之外还将为 LLM 提供与外界环境交互的能力,即工具调用能力,如联网搜索、数学计算、查询天气、绘图等。 + +
+ +为解决自动化和批处理情景中复杂业务逻辑,Workflow 提供了丰富的逻辑节点,如代码节点、IF/ELSE 节点、合并节点、模板转换节点等,除此之外也将提供定时触发和事件触发的能力,方便构建自动化流程。 + +
+ +### 常见案例 + +* 客户服务 + +通过将 LLM 集成到您的客户服务系统中,您可以自动化回答常见问题,减轻支持团队的工作负担。 LLM 可以理解客户查询的上下文和意图,并实时生成有帮助且准确的回答。 + +* 内容生成 + +无论您需要创建博客文章、产品描述还是营销材料,LLM 都可以通过生成高质量内容来帮助您。只需提供一个大纲或主题,LLM将利用其广泛的知识库来制作引人入胜、信息丰富且结构良好的内容。 + +* 任务自动化 + +可以与各种任务管理系统集成,如 Trello、Slack、Lark、以自动化项目和任务管理。通过使用自然语言处理,LLM 可以理解和解释用户输入,创建任务,更新状态和分配优先级,无需手动干预。 + +* 数据分析和报告 + +可以用于分析大型数据集并生成报告或摘要。通过提供相关信息给 LLM,它可以识别趋势、模式和洞察力,将原始数据转化为可操作的智能。对于希望做出数据驱动决策的企业来说,这尤其有价值。 + +* 邮件自动化处理 + +LLM 可以用于起草电子邮件、社交媒体更新和其他形式的沟通。通过提供简要的大纲或关键要点,LLM 可以生成一个结构良好、连贯且与上下文相关的信息。这样可以节省大量时间,并确保您的回复清晰和专业。 + +### 如何开始 + +* 从一个空白的工作流开始构建或者使用系统模版帮助你开始; +* 熟悉基础操作,包括在画布上创建节点、连接和配置节点、调试工作流、查看运行历史等; +* 保存并发布一个工作流; +* 在已发布应用中运行或者通过 API 调用工作流; diff --git a/zh_CN/guides/workflow/key_concept.md b/zh_CN/guides/workflow/key_concept.md new file mode 100644 index 0000000..75178f4 --- /dev/null +++ b/zh_CN/guides/workflow/key_concept.md @@ -0,0 +1,49 @@ +# 关键概念 + +### 节点 + +节点是工作流中的关键构成,通过连接不同功能的节点,执行工作流的一系列操作。节点按类型分为: + +* 基础节点:开始、结束、直接回复、LLM、知识检索、应用(即将上线) +* 问题转换:问题分类、问题重写(即将上线)、子问题拆分(即将上线) +* 逻辑处理:条件分支、合并(即将上线)、循环(即将上线) +* 转换:代码执行、模版转换、变量赋值、函数提取(即将上线) +* 其他:HTTP 请求 +* 工具:内置工具、自定义工具 + +### 变量 + +变量用于串联工作流中前后节点的输入与输出,实现流程中的复杂处理逻辑。 + +* 工作流需要定义启动执行或者对话的输入变量。 +* 节点需要定义启动执行的输入变量,如问题分类器的输入变量一般为用户输入的问题。 +* 节点内引用变量时只可以引用该节点前置流程节点的变量。 +* 为了避免引用变量名重复,节点名称不可同名。 +* 节点的输出变量为系统固定变量,不可编辑修改。 + +### Chatflow 和 Workflow 的区别 + +1. 应用场景的区别 + +* Chatflow:面向对话类情景,属于 Chatbot 应用类型的高阶编排模式 +* Workflow:面向自动化和批处理情景 + +2. 可用节点的区别 + +| **节点** | **Chatflow** | **Workflow** | +| ------------------- | ----------------------------------- | ------------------------------------ | +| Start | 系统内置变量:用户输入和文件上传 | 系统内置变量:文件上传 | +| End | 无 End 节点 | 使用 End 节点在执行结束时输出,可输出结构化文本,不可在流程中间输出 | +| Answer | 使用 Answer 节点进行流式输出或者固定文本回复,可在流程中间输出 | 无 Answer 节点 | +| LLM | 默认开启 Memory 用于存储和传递多轮对话的历史消息 | 无 Memory 配置 | +| Question Classifier | 默认开启 Memory 用于存储和传递多轮对话的历史消息 | 无 Memory 配置 | + +3. 应用入口的划分 + +Chatflow 入口: + +
+ +Workflow 入口: + +
diff --git a/zh_CN/guides/workflow/node/answer.md b/zh_CN/guides/workflow/node/answer.md index 8d62b87..22b6adf 100644 --- a/zh_CN/guides/workflow/node/answer.md +++ b/zh_CN/guides/workflow/node/answer.md @@ -1,2 +1,7 @@ # 直接回复 +定义一个 Chatflow 流程中的回复内容。你可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复。 + +
+ +提示:直接回复节点可以不作为最终的输出节点,作为流程过程节点时,可以在中间步骤流式输出结果。 diff --git a/zh_CN/guides/workflow/node/code.md b/zh_CN/guides/workflow/node/code.md index b1dbbe5..0107b06 100644 --- a/zh_CN/guides/workflow/node/code.md +++ b/zh_CN/guides/workflow/node/code.md @@ -1,2 +1,7 @@ # 代码执行 +代码节点极大地增强了开发人员的灵活性,使他们能够在工作流程中嵌入自定义的 Python 或 Javascript 脚本,并以预设节点无法达到的方式操作变量。通过配置选项,你可以指明所需的输入和输出变量,并撰写相应的执行代码: + +
+ +无论是Python还是Javascript,它们的执行环境都被严格隔离(沙箱化),以确保安全性。这意味着开发者不能使用那些消耗大量系统资源或可能引发安全问题的功能,如直接访问文件系统、进行网络请求或执行操作系统级别的命令。这些限制保证了代码的安全执行,同时避免了对系统资源的过度消耗。 diff --git a/zh_CN/guides/workflow/node/end.md b/zh_CN/guides/workflow/node/end.md index 5bec951..88322cd 100644 --- a/zh_CN/guides/workflow/node/end.md +++ b/zh_CN/guides/workflow/node/end.md @@ -1,2 +1,13 @@ # 结束 +定义一个 workflow 流程结束的最终输出内容。每一个工作流在完整执行后都需要至少一个「结果」节点,用于输出完整执行的最终结果。 + +「结果」节点为流程终止节点,后面无法再添加其他节点,工作流应用中只有运行到「结果」节点才会输出执行结果。若流程中出现条件分叉,则需要定义多个「结束」节点。 + +**单路执行示例:** + +
+ +**多路执行示例:** + +
diff --git a/zh_CN/guides/workflow/node/ifelse.md b/zh_CN/guides/workflow/node/ifelse.md index 8256d9c..5321ac2 100644 --- a/zh_CN/guides/workflow/node/ifelse.md +++ b/zh_CN/guides/workflow/node/ifelse.md @@ -1,2 +1,5 @@ # 条件分支 +条件分支节点允许你根据 if/else 条件将 workflow 拆分成两个分支。在条件分支节点,你可以设置一个或多个 IF 触发条件,满足 IF 条件判断时触发 「IS TRUE」 下一步流程,未满足 IF 条件判断时触发「IS FALSE」下一步流程。 + +
diff --git a/zh_CN/guides/workflow/node/knowledge_retrieval.md b/zh_CN/guides/workflow/node/knowledge_retrieval.md index 1eca3c5..0f601f0 100644 --- a/zh_CN/guides/workflow/node/knowledge_retrieval.md +++ b/zh_CN/guides/workflow/node/knowledge_retrieval.md @@ -1,2 +1,29 @@ # 知识检索 +知识库检索节点用于从知识库中查询与用户问题相关的文本内容。 + +
+ +配置知识库检索节点主要包含三个部分: + +1. 选择查询变量 +2. 选择查询的知识库 +3. 配置检索策略 + +**选择查询变量** + +在知识库检索场景中,用于知识库检索的查询变量一般为用户输入的问题,在对话型应用的「开始」节点中,系统预设了「sys.query」作为用户输入变量,你可以使用该变量用于查询知识库内与用户问题最相近的文本分段结果。 + +**选择查询知识库** + +在知识库检索节点中你可以添加一个 Dify 内已有的知识库,如何在 Dify 内创建知识库请参考[知识库帮助文档](https://docs.dify.ai/v/zh-hans/guides/knowledge-base)。 + +**配置检索策略** + +可以在节点内修改单个知识库的索引策略和检索模式。关于该设置的具体原理请参考[知识库帮助文档](https://docs.dify.ai/v/zh-hans/learn-more/extended-reading/retrieval-augment/hybrid-search)。 + +
+ +Dify 针对多知识库的不同检索场景提供了两种召回策略:「N选1召回」和「多路召回」,在 N 选 1 模式下,知识库查询通过工具函数调用(Function Calling)来实现,需要选择系统推理模型。在多路召回模式下,需要配置 Rerank 模型用于结果重排。关于两种召回策略的具体原理请参考帮助文档中的[召回模式说明](https://docs.dify.ai/v/zh-hans/learn-more/extended-reading/retrieval-augment/retrieval)。 + +
diff --git a/zh_CN/guides/workflow/node/llm.md b/zh_CN/guides/workflow/node/llm.md index 48379a6..a5c0850 100644 --- a/zh_CN/guides/workflow/node/llm.md +++ b/zh_CN/guides/workflow/node/llm.md @@ -4,3 +4,47 @@ description: LLM # LLM +调用大语言模型回答问题或者对自然语言进行处理。你可以在 LLM 节点中选择合适的模型,编写提示词,设置提示词中引用的上下文,配置记忆开关、设置记忆窗口的大小等。 + +
+ +配置 LLM 节点主要包括两个部分: + +1. 选择模型 +2. 编写系统提示词 + +#### **配置模型** + +在选择适合任务的模型之前,你需要在「系统设置—模型供应商」内完成模型配置。具体配置方式可以参考[模型配置说明](https://docs.dify.ai/v/zh-hans/guides/model-configuration)。选择好模型后可以对模型参数进行配置。 + +
+ +#### **编写提示词** + +在 LLM 节点内,你可以自定义模型输入的提示词。如果选择对话型模型,你可以自定义系统提示词/用户消息/助手消息三部分的内容。 + +以知识库问答情景为例,在「上下文」中关联知识库检索节点的「结果」变量后,在提示词中插入「上下文」特殊变量即可将从知识库从检索到的文本内容作为模型输入的上下文背景信息。 + +
+ +在提示词编辑器中,你可以通过输入“/”或者“{”呼出变量插入菜单,将特殊变量块或者前置流程节点中的变量插入到提示词中作为上下文内容。 + +
+ +如果选择补全型模型,系统预置了提示词模板用于实现对话型应用,你可以自定义提示词的内容,在提示词合适的位置内输入“/”或者“{”插入特殊变量块:「会话历史」「上下文」来实现更丰富的会话功能。 + +
+ +#### **记忆开关设置** + +在对话型应用(Chatflow)中,LLM 节点会默认开启系统记忆设置,在多轮对话场景中,系统会将历史对话消息存储并在对话中传入模型。 + +在工作流应用(Workflow)中默认关闭系统记忆,且未提供记忆设置的选项。 + +#### **记忆窗口设置** + +若关闭记忆窗口设置,系统将根据模型上下文窗口动态传入历史对话消息。开启记忆窗口设置后,你可以根据需求配置窗口传入历史对话消息的条数。 + +#### **对话角色名设置** + +由于模型在训练阶段的差异,不同模型对于角色名的指令遵循程度不同,如 Human/Assistant,Human/AI,人类/助手等等。为适配多模型的提示响应效果,系统提供了对话角色名的设置,修改对话角色名将会修改会话历史的角色前缀。 diff --git a/zh_CN/guides/workflow/node/question_classifier.md b/zh_CN/guides/workflow/node/question_classifier.md index ae50847..8932a0d 100644 --- a/zh_CN/guides/workflow/node/question_classifier.md +++ b/zh_CN/guides/workflow/node/question_classifier.md @@ -1,2 +1,23 @@ # 问题分类 +问题分类器定义用户问题的分类条件,LLM 能够根据分类描述定义对话的进展方式。如图所示,在一个典型的客服机器人场景中,问题分类器可以作为知识库检索的前置步骤,对用户意图进行识别,分类处理后能够有效提高知识库的召回效果。 + +
+ +配置问题分类器节点主要包含三个部分: + +1. 选择输入变量 +2. 配置推理模型 +3. 编写分类方法 + +#### **选择输入变量** + +在对话类客户情景中,你可以将「开始节点」中的用户输入变量(sys.query)作为问题分类器的输入变量,在自动化/批处理场景中,你可以将客户评价或者邮件内容作为输入变量。 + +#### **配置推理模型** + +问题分类器依靠 LLM 的自然语言处理能力对文本进行分类,你需要为分类器配置一个推理模型。在配置推理模型之前,你可能需要在「系统设置-模型供应商」内完成模型配置。具体配置方式可以参考[模型配置说明](https://docs.dify.ai/v/zh-hans/guides/model-configuration)。选择好模型后可以对模型参数进行配置。 + +#### **编写分类条件** + +你可以手动添加多个分类,通过编写符合该分类的关键词或者描述语句,根据分类条件描述,问题分类器能够根据用户输入的语义来选择适合的流程路径。 diff --git a/zh_CN/guides/workflow/node/start.md b/zh_CN/guides/workflow/node/start.md index a58e3f7..d02ae75 100644 --- a/zh_CN/guides/workflow/node/start.md +++ b/zh_CN/guides/workflow/node/start.md @@ -1,2 +1,15 @@ # 开始 +定义一个 workflow 流程启动的初始参数。你可以在开始节点中自定义启动工作流的输入变量。每一个工作流都需要一个开始节点。 + +
+ +在「开始」节点内定义输入变量支持四种类型:文本、段落、下拉选项和数字。 + +
+ +配置完成后,在工作流执行时会要求输入开始节点中定义的变量值。 + +
+ +提示:在 Chatflow 中,开始节点会提供系统内置变量:sys.query 和 sys.files,sys.query 用于对话型应用中的用户问题输入,sys.files 用于对话中上传文件,如上传一张图片用于理解含义,需要配合图像理解模型或者图片输入的工具来使用。 diff --git a/zh_CN/guides/workflow/node/template.md b/zh_CN/guides/workflow/node/template.md index 54bebd7..c0a8b4a 100644 --- a/zh_CN/guides/workflow/node/template.md +++ b/zh_CN/guides/workflow/node/template.md @@ -1,2 +1,29 @@ # 模板转换 +模板功能允许你借助 Jinja2 这一强大的 Python 模板语言,灵活地格式化并合并来自前面步骤的变量,创建出单一的文本输出。这非常适合于将多个数据源的信息汇总成一个特定格式,满足后续步骤的需求。例如,以下简单示例说明了如何利用之前步骤的输出来拼接一篇文章: + +
+ +对于更复杂的应用场景,你可以参考 Jinja 的[官方文档](https://jinja.palletsprojects.com/en/3.1.x/templates/),创建更为复杂的模板来执行各种任务。这里有一个模板示例,它把从知识检索节点获取的信息及其相关的元数据,整理成一个结构化的 Markdown 格式: + +{% code fullWidth="false" %} +```Plain +{% raw %} +{% for item in chunks %} +### Chunk {{ loop.index }}. +### Similarity: {{ item.metadata.score | default('N/A') }} + +#### {{ item.title }} + +##### Content +{{ item.content | replace('\n', '\n\n') }} + +--- +{% endfor %} +{% endraw %} +``` +{% endcode %} + +
+ +模版节点可以在聊天流程(Chatflow)中应用,用于在触发大型语言模型(LLM)进行回应前,向用户展示中间结果。 diff --git a/zh_CN/guides/workflow/node/tools.md b/zh_CN/guides/workflow/node/tools.md index e7af555..ec64797 100644 --- a/zh_CN/guides/workflow/node/tools.md +++ b/zh_CN/guides/workflow/node/tools.md @@ -1,2 +1,12 @@ # 工具 +工作流内提供 Dify 的内置工具或自定义工具,在使用工具之前,你需要先给工具进行「授权」。若内置工具无法满足使用需求,你可以在「Dify—工具」内先创建自定义工具。 + +
+ +配置工具节点一般分为两个步骤: + +1. 对工具授权/创建自定义工具 +2. 配置工具输入和参数 + +如何创建自定义工具和配置工具请参考[工具配置说明](https://docs.dify.ai/v/zh-hans/guides/tools)。 diff --git a/zh_CN/guides/workflow/node/variable_assigner.md b/zh_CN/guides/workflow/node/variable_assigner.md index 85f4b82..47f279f 100644 --- a/zh_CN/guides/workflow/node/variable_assigner.md +++ b/zh_CN/guides/workflow/node/variable_assigner.md @@ -1,2 +1,11 @@ # 变量赋值 +变量赋值节点是工作流程中的一个关键节点,它负责整合不同分支的输出结果,确保无论哪个分支被执行,其结果都能通过一个统一的变量来引用和访问。这样,无论流程如何分叉,最终的数据输出都能被下游的节点有效捕捉并进一步处理。 + +
+ +此节点支持多种数据类型的输出变量,包括字符串(String)、数字(Number)、对象(Object)以及数组(Array)。你可以根据需要指定输出的数据类型,然后从预先定义的变量下拉菜单中选择,这个菜单会根据你的类型选择自动筛选适合的变量选项。这些变量来源于之前的分支输出,使得数据的引用和整合更加灵活高效。 + +
+ +通过变量赋值,可以将这些多样化的输出统一为一个特定类型的变量,供流程下游的节点使用和操作。这种设计简化了数据流的管理,提高了工作流的灵活性和效率。 diff --git a/zh_CN/guides/workflow/publish.md b/zh_CN/guides/workflow/publish.md index 69cfd9b..425e4e8 100644 --- a/zh_CN/guides/workflow/publish.md +++ b/zh_CN/guides/workflow/publish.md @@ -1,2 +1,17 @@ # 应用发布 +调试完成之后点击右上角的「发布」可以将该工作流保存并快速发布成为不同类型的应用。对话型应用支持发布为: + +* 直接运行 +* 嵌入网站 +* 访问 API + +工作流应用支持发布为: + +* 直接运行 +* 批处理 +* 访问 API + +
+ +你也可以点击「恢复」预览上一次发布的应用版本,确认恢复将会使用上一次发布的工作流版本覆盖当前的工作流版本。