diff --git a/zh_CN/.gitbook/assets/image (131).png b/zh_CN/.gitbook/assets/image (131).png new file mode 100644 index 0000000..3775957 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (131).png differ diff --git a/zh_CN/.gitbook/assets/image (132).png b/zh_CN/.gitbook/assets/image (132).png new file mode 100644 index 0000000..a86d001 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (132).png differ diff --git a/zh_CN/.gitbook/assets/image (133).png b/zh_CN/.gitbook/assets/image (133).png new file mode 100644 index 0000000..e00ead3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (133).png differ diff --git a/zh_CN/.gitbook/assets/image (134).png b/zh_CN/.gitbook/assets/image (134).png new file mode 100644 index 0000000..5aa2aa3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (134).png differ diff --git a/zh_CN/.gitbook/assets/image (135).png b/zh_CN/.gitbook/assets/image (135).png new file mode 100644 index 0000000..582fac7 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (135).png differ diff --git a/zh_CN/.gitbook/assets/image (136).png b/zh_CN/.gitbook/assets/image (136).png new file mode 100644 index 0000000..5d52df7 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (136).png differ diff --git a/zh_CN/.gitbook/assets/image (137).png b/zh_CN/.gitbook/assets/image (137).png new file mode 100644 index 0000000..d00a5ef Binary files /dev/null and b/zh_CN/.gitbook/assets/image (137).png differ diff --git a/zh_CN/.gitbook/assets/image (138).png b/zh_CN/.gitbook/assets/image (138).png new file mode 100644 index 0000000..cf2bda0 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (138).png differ diff --git a/zh_CN/.gitbook/assets/image (139).png b/zh_CN/.gitbook/assets/image (139).png new file mode 100644 index 0000000..282972a Binary files /dev/null and b/zh_CN/.gitbook/assets/image (139).png differ diff --git a/zh_CN/.gitbook/assets/image (140).png b/zh_CN/.gitbook/assets/image (140).png new file mode 100644 index 0000000..c15b0e3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (140).png differ diff --git a/zh_CN/.gitbook/assets/image (141).png b/zh_CN/.gitbook/assets/image (141).png new file mode 100644 index 0000000..c15b0e3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (141).png differ diff --git a/zh_CN/.gitbook/assets/image (142).png b/zh_CN/.gitbook/assets/image (142).png new file mode 100644 index 0000000..c15b0e3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (142).png differ diff --git a/zh_CN/.gitbook/assets/image (143).png b/zh_CN/.gitbook/assets/image (143).png new file mode 100644 index 0000000..c15b0e3 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (143).png differ diff --git a/zh_CN/.gitbook/assets/image (144).png b/zh_CN/.gitbook/assets/image (144).png new file mode 100644 index 0000000..9b47467 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (144).png differ diff --git a/zh_CN/.gitbook/assets/image (145).png b/zh_CN/.gitbook/assets/image (145).png new file mode 100644 index 0000000..b667c52 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (145).png differ diff --git a/zh_CN/.gitbook/assets/image (146).png b/zh_CN/.gitbook/assets/image (146).png new file mode 100644 index 0000000..0acb0ad Binary files /dev/null and b/zh_CN/.gitbook/assets/image (146).png differ diff --git a/zh_CN/.gitbook/assets/image (147).png b/zh_CN/.gitbook/assets/image (147).png new file mode 100644 index 0000000..44e6630 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (147).png differ diff --git a/zh_CN/.gitbook/assets/image (148).png b/zh_CN/.gitbook/assets/image (148).png new file mode 100644 index 0000000..b5b5647 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (148).png differ diff --git a/zh_CN/.gitbook/assets/image (149).png b/zh_CN/.gitbook/assets/image (149).png new file mode 100644 index 0000000..b5b5647 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (149).png differ diff --git a/zh_CN/.gitbook/assets/image (150).png b/zh_CN/.gitbook/assets/image (150).png new file mode 100644 index 0000000..9a0e697 Binary files /dev/null and b/zh_CN/.gitbook/assets/image (150).png differ diff --git a/zh_CN/SUMMARY.md b/zh_CN/SUMMARY.md index 5ba2a52..d589eeb 100644 --- a/zh_CN/SUMMARY.md +++ b/zh_CN/SUMMARY.md @@ -16,17 +16,17 @@ * [应用构建及提示词](guides/application-design/README.md) * [创建应用](guides/application-design/creating-an-application.md) * [提示词编排](guides/application-design/prompt-engineering/README.md) + * [助手型应用](guides/application-design/prompt-engineering/conversation-application.md) * [文本生成型应用](guides/application-design/prompt-engineering/text-generation-application.md) - * [对话型应用](guides/application-design/prompt-engineering/conversation-application.md) - * [提示词编排专家模式](guides/application-design/prompt-engineering-1/README.md) - * [提示词初始模版参考](guides/application-design/prompt-engineering-1/prompt-engineering-template.md) + * [提示词编排专家模式](guides/application-design/prompt-engineering/prompt-engineering-1/README.md) + * [提示词初始模版参考](guides/application-design/prompt-engineering/prompt-engineering-1/prompt-engineering-template.md) * [标注回复](guides/application-design/annotation-reply.md) * [敏感内容审查](guides/application-design/moderation-tool.md) * [扩展外部能力](guides/application-design/extension/README.md) - * [API 扩展](guides/application-design/extension/api_based_extension/README.md) - * [外部数据工具](guides/application-design/extension/api_based_extension/external_data_tool.md) - * [使用 Cloudflare Workers 部署 API Tools](guides/application-design/extension/api_based_extension/cloudflare_workers.md) - * [敏感内容审查](guides/application-design/extension/api_based_extension/moderation.md) + * [API 扩展](guides/application-design/extension/api\_based\_extension/README.md) + * [外部数据工具](guides/application-design/extension/api\_based\_extension/external\_data\_tool.md) + * [使用 Cloudflare Workers 部署 API Tools](guides/application-design/extension/api\_based\_extension/cloudflare\_workers.md) + * [敏感内容审查](guides/application-design/extension/api\_based\_extension/moderation.md) * [代码扩展](guides/application-design/extension/code\_based\_extension/README.md) * [外部数据工具](guides/application-design/extension/code\_based\_extension/external\_data\_tool.md) * [敏感内容审查](guides/application-design/extension/code\_based\_extension/moderation.md) @@ -48,6 +48,7 @@ * [从 Notion 导入数据](guides/knowledge-base/sync-from-notion.md) * [通过 API 维护数据集](guides/knowledge-base/maintain-dataset-via-api.md) * [外部数据工具](guides/knowledge-base/external\_data\_tool.md) +* [工具](guides/gong-ju.md) * [日志与标注](guides/logs.md) * [团队协同](guides/workspace/README.md) * [邀请与管理成员](guides/workspace/invite-and-manage-members.md) diff --git a/zh_CN/guides/application-design/prompt-engineering-1/README.md b/zh_CN/guides/application-design/prompt-engineering/prompt-engineering-1/README.md similarity index 72% rename from zh_CN/guides/application-design/prompt-engineering-1/README.md rename to zh_CN/guides/application-design/prompt-engineering/prompt-engineering-1/README.md index 88c4931..e77b104 100644 --- a/zh_CN/guides/application-design/prompt-engineering-1/README.md +++ b/zh_CN/guides/application-design/prompt-engineering/prompt-engineering-1/README.md @@ -1,17 +1,15 @@ # 提示词编排专家模式 -在 Dify 创建应用的编排默认为**简易模式**,这很适合想要快速创建应用的非技术人员,比如你想创建一个企业知识库 Chatbot 或者文章摘要生成器,利用**简易模式**编排对话前提示词,添加变量,添加上下文等简易步骤即可发布一个完整的应用(可参考👉[conversation-application.md](../prompt-engineering/conversation-application.md "mention")[text-generation-application.md](../prompt-engineering/text-generation-application.md "mention"))。 +在 Dify 创建应用的编排默认为**简易模式**,这很适合想要快速创建应用的非技术人员,比如你想创建一个企业知识库 Chatbot 或者文章摘要生成器,利用**简易模式**编排对话前提示词,添加变量,添加上下文等简易步骤即可发布一个完整的应用(可参考👉[conversation-application.md](../conversation-application.md "mention")[text-generation-application.md](../text-generation-application.md "mention"))。 -而如果你是一个熟练掌握使用 **OpenAI** 的 **Playground** 的技术人员,正想创建一个学习导师应用,需要在提示词中针对不同的教学模块位置嵌入不同的上下文和变量,就可以选择**专家模式。**在此模式下你可以自由地编写完整的提示词,包括修改内置的提示词,调整上下文和聊天历史内容在提示词中的位置,设定必要参数等**。**如果你对 Chat 和 Complete 两种模型不陌生,现在**专家模式**可以快速切换 Chat 和Complete 模型以满足你的需要,并且都适用于对话型应用和文本生成型应用。 +而如果你是一个熟练掌握使用 **OpenAI** 的 **Playground** 的技术人员,正想创建一个学习导师应用,需要在提示词中针对不同的教学模块位置嵌入不同的上下文和变量,就可以选择**专家模式。在此模式下你可以自由地编写完整的提示词,包括修改内置的提示词,调整上下文和聊天历史内容在提示词中的位置,设定必要参数等。如果你对 Chat 和 Complete 两种模型不陌生,现在专家模式**可以快速切换 Chat 和Complete 模型以满足你的需要,并且都适用于对话型应用和文本生成型应用。 在你开始尝试新模式前,你需要知道**专家模式**下的必要元素: -* **文本补全模型** ![](../../../.gitbook/assets/screenshot-20231017-092613.png) +* **文本补全模型** ![](../../../../.gitbook/assets/screenshot-20231017-092613.png) 在选择模型的时候,模型名字的右侧显示 COMPLETE 的即为文本补全模型,该类模型接受名为“提示词”的自由格式文本字符串,模型将生成一个文本补全,试图匹配您给它的任何上下文或模式。例如,如果您给的提示词:“正如笛卡尔所说,我思故”,它将高概率返回“我在”作为补全。 - - -* **聊天模型** +* **聊天模型** 在选择模型的时候,模型名字的右侧显示 CHAT 的即为聊天模型,该类模型将消息列表作为输入,并返回模型生成的消息作为输出。尽管聊天格式旨在简化多轮对话,但它对于没有任何对话的单轮任务同样有用。聊天模型使用的是聊天消息作为输入和输出,包含 SYSTEM / USER / ASSISTANT 三种消息类型: @@ -21,26 +19,19 @@ * 用户消息提供请求或评论以供 AI 助手响应。 * `ASSISTANT` * 助手消息存储以前的助手响应,但也可以由您编写以提供所需行为的示例。 - - * **停止序列 Stop\_Sequences** 是指特定的单词、短语或字符,用于向 LLM 发出停止生成文本的信号。 +* **专家模式提示词中的内容块** + * + 用户在配置了数据集的 App 中,输入查询内容,App 会将查询内容作为数据集的检索条件,检索的结果在组织之后会作为上下文内容替换 `上下文` 变量,使 LLM 能够参考上下文的内容进行回答。 + * -* **专家模式提示词中的内容块** - - * - - 用户在配置了数据集的 App 中,输入查询内容,App 会将查询内容作为数据集的检索条件,检索的结果在组织之后会作为上下文内容替换 `上下文` 变量,使 LLM 能够参考上下文的内容进行回答。 - * - - 查询内容仅在对话型应用的文本补全模型中可用,对话中用户输入的内容将替换该变量,以触发每轮新的对话。 - * - - 会话历史仅在对话型应用的文本补全模型中可用。在对话型应用中多次对话时,Dify 会将历史的对话记录根据内置规则进行组装拼接,并替换 `会话历史` 变量。其中 Human 和 Assistant 前缀可点击 `会话历史` 后的`...` 进行修改。 - + 查询内容仅在对话型应用的文本补全模型中可用,对话中用户输入的内容将替换该变量,以触发每轮新的对话。 + * + 会话历史仅在对话型应用的文本补全模型中可用。在对话型应用中多次对话时,Dify 会将历史的对话记录根据内置规则进行组装拼接,并替换 `会话历史` 变量。其中 Human 和 Assistant 前缀可点击 `会话历史` 后的`...` 进行修改。 * **初始模版** 在**专家模式**下,正式编排之前,提示词框会给到一个初始模版,我们可以直接修改初始模版来对 LLM有更加定制化的要求。注意:不同类型应用的不同类型模式下有所区别。 @@ -49,15 +40,15 @@ ## 两种模式对比 -
对比维度简易模式专家模式
内置提示词可见性封装不可见开放可见
有无自动编排可用不可用
文本补全模型和聊天模型选择有无区别文本补全模型和聊天模型选择后有编排区别
变量插入
内容块校验
SYSTEM / USER / ASSISTANT
三种消息类型编排
上下文参数设置可设置可设置
查看 PROMPT LOG可查看完整提示词日志可查看完整提示词日志
停止序列 Stop_Sequences 参数设置可设置
+
对比维度简易模式专家模式
内置提示词可见性封装不可见开放可见
有无自动编排可用不可用
文本补全模型和聊天模型选择有无区别文本补全模型和聊天模型选择后有编排区别
变量插入
内容块校验
SYSTEM / USER / ASSISTANT
三种消息类型编排
上下文参数设置可设置可设置
查看 PROMPT LOG可查看完整提示词日志可查看完整提示词日志
停止序列 Stop_Sequences 参数设置可设置
## 操作说明 ### 1. 如何进入专家模式 - 创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。 +创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。 -

专家模式入口

+

专家模式入口

{% hint style="warning" %} 在**专家模式**下修改提示词并发布应用后,将无法返回至**简易模式**。 @@ -71,7 +62,7 @@ 需要注意的是,我们只有先上传了上下文,在**专家模式**下才会呈现包含 \{{#context#\}} 的内置提示词 {% endhint %} -

上下文参数设置

+

上下文参数设置

**TopK:值范围为整数 1~10** @@ -113,10 +104,9 @@ Assistant1: 土是黄色的 ### 4. 快捷插入变量和内容块 -在**专家模式**下,你可以在文本编辑器中输入“`/`”,快捷调出内容块来插入提示词中。内容块分为:`上下文`、`变量`、`会话历史`、`查询内容`。你也可以通过输入“`{`”,快捷插入已创建过的变量列表。\ +在**专家模式**下,你可以在文本编辑器中输入“`/`”,快捷调出内容块来插入提示词中。内容块分为:`上下文`、`变量`、`会话历史`、`查询内容`。你也可以通过输入“`{`”,快捷插入已创建过的变量列表。\\ - -

快捷键 “/”

+

快捷键 “/”

{% hint style="warning" %} 除“`变量`”以外的其他内容块不可重复插入。在不同应用和模型下,可插入的内容块会根据不同的提示词模板结构有所区别,`会话历史`、`查询内容` 仅在对话型应用的文本补全模型中可用。 @@ -153,13 +143,13 @@ And answer according to the language English. ### 6. 调试日志 -编排调试时不仅可以查看用户的输入和 LLM 的回复。在**专家模式**下,点击发送消息左上角图标,可以看到完整的提示词,方便开发者确认输入变量内容、上下文、聊天记录和查询内容是否符合预期。日志列表的相关说明请查看日志文档 👉 : [logs.md](../../logs.md "mention") +编排调试时不仅可以查看用户的输入和 LLM 的回复。在**专家模式**下,点击发送消息左上角图标,可以看到完整的提示词,方便开发者确认输入变量内容、上下文、聊天记录和查询内容是否符合预期。日志列表的相关说明请查看日志文档 👉 : [logs.md](../../../logs.md "mention") #### 6.1 **查看调试日志** 在调试预览界面,用户与 AI 产生对话之后,将鼠标指针移动到任意的用户会话,即可在左上角看到“日志”标志按钮,点击即可查看提示词日志。 -

调试日志入口

+

调试日志入口

在日志中,我们可以清晰的查看到: @@ -167,7 +157,7 @@ And answer according to the language English. * 当前会话引用的相关文本片段 * 历史会话记录 -

调试预览界面查看提示词日志

+

调试预览界面查看提示词日志

从日志中,我们可以查看经过系统拼装后最终发送至 LLM 的完整提示词,并根据调试结果持续改进提示词输入。 @@ -175,4 +165,4 @@ And answer according to the language English. 在初始的构建应用主界面,左侧导航栏可以看到“日志与标注”,点击进去即可查看完整的日志。 在日志与标注的主界面,点击任意一个会话日志条目,在弹出的右侧对话框中同样鼠标指针移动到会话上即可点开“日志”按钮查看提示词日志。 -

日志与标注界面查看提示词日志

+

日志与标注界面查看提示词日志

diff --git a/zh_CN/guides/application-design/prompt-engineering-1/prompt-engineering-template.md b/zh_CN/guides/application-design/prompt-engineering/prompt-engineering-1/prompt-engineering-template.md similarity index 100% rename from zh_CN/guides/application-design/prompt-engineering-1/prompt-engineering-template.md rename to zh_CN/guides/application-design/prompt-engineering/prompt-engineering-1/prompt-engineering-template.md diff --git a/zh_CN/guides/gong-ju.md b/zh_CN/guides/gong-ju.md new file mode 100644 index 0000000..cb58fa0 --- /dev/null +++ b/zh_CN/guides/gong-ju.md @@ -0,0 +1,63 @@ +# 工具 + +### 工具定义 + +工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:**第一方工具**和**自定义工具**。 + +你可以直接使用 Dify 生态提供的第一方内置工具,或者轻松导入自定义的 API 工具(目前支持 OpenAPI / Swagger 和 OpenAI Plugin 规范)。 + +#### 工具的作用: + +1. 工具使用户可以在 Dify 上创建更强大的 AI 应用,如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。 +2. 方便将你的应用与其他系统或服务连接,与外部环境交互,如代码执行、对专属信息源的访问等。 + +### 如何配置第一方工具 + +

第一方工具列表

+ +Dify 目前已支持: + +
工具工具描述
谷歌搜索用于执行 Google SERP 搜索并提取片段和网页的工具。输入应该是一个搜索查询
维基百科用于执行维基百科搜索并提取片段和网页的工具。
DALL-E 绘画用于通过自然语言输入生成高质量图片
网页抓取用于爬取网页数据的工具
WolframAlpha一个强大的计算知识引擎,能根据问题直接给出标准化答案,同时具有强大的数学计算功能
图表生成用于生成可视化图表的工具,你可以通过它来生成柱状图、折线图、饼图等各类图表
当前时间用于查询当前时间的工具
雅虎财经获取并整理出最新的新闻、股票报价等一切你想要的财经信息。
Stable Diffusion一个可以在本地部署的图片生成的工具,您可以使用 stable-diffusion-webui 来部署它
Vectorizer一个将 PNG 和 JPG 图像快速轻松地转换为 SVG 矢量图的工具。
YouTube一个用于获取油管频道视频统计数据的工具
+ +{% hint style="info" %} +欢迎您为 Dify 贡献自己开发的工具,关于如何贡献的具体方法请查看 [Dify 开发贡献文档](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md),您的任何支持对我们都是极为宝贵的。 +{% endhint %} + +#### 第一方工具授权 + +若你需要直接使用 Dify 生态提供的第一方内置工具,你需要在使用前配置相应的凭据。 + +

配置第一方工具凭据

+ +凭据校验成功后工具会显示“已授权”状态。配置凭据后,工作区中的所有成员都可以在编排应用程序时使用此工具。 + +

第一方工具已授权

+ +### 如何创建自定义工具 + +你可以在“工具-自定义工具”内导入自定义的 API 工具,目前支持 OpenAPI / Swagger 和 ChatGPT Plugin 规范。你可以将 OpenAPI schema 内容直接粘贴或从 URL 内导入。关于 OpenAPI / Swagger 规范您可以查看[官方文档说明](https://swagger.io/specification/)。 + +工具目前支持两种鉴权方式:无鉴权 和 API Key。 + +

创建自定义工具

+ +在导入 Schema 内容后系统会主动解析文件内的参数,并可预览工具具体的参数、 方法、路径。您也可以在此对工具参数进行测试。 + +

自定义工具参数测试

+ +完成自定义工具创建之后,工作区中的所有成员都可以在“工作室”内编排应用程序时使用此工具。 + +

已添加自定义工具

+ +### 如何在应用内使用工具 + +目前,您可以在“工作室”中创建**智能助手型应用**时,将已配置好凭据的工具在其中使用。 + +

创建智能助手型应用时添加工具

+ +以下图为例,在财务分析应用内添加工具后,智能助手将在需要时自主调用工具,从工具中查询财务报告数据,并将数据分析后完成与用户之间的对话。 + +

智能助手在对话中完成工具调用回复问题

+ + +