GITBOOK-84: No subject
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 330 KiB |
|
After Width: | Height: | Size: 324 KiB |
|
After Width: | Height: | Size: 326 KiB |
|
After Width: | Height: | Size: 297 KiB |
|
After Width: | Height: | Size: 299 KiB |
|
After Width: | Height: | Size: 630 KiB |
|
After Width: | Height: | Size: 484 KiB |
|
After Width: | Height: | Size: 466 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 578 KiB |
|
After Width: | Height: | Size: 270 KiB |
|
After Width: | Height: | Size: 369 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 240 KiB |
|
After Width: | Height: | Size: 240 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 模型以满足你的需要,并且都适用于对话型应用和文本生成型应用。
|
||||
|
||||
在你开始尝试新模式前,你需要知道**专家模式**下的必要元素:
|
||||
|
||||
* **文本补全模型** 
|
||||
* **文本补全模型** 
|
||||
|
||||
在选择模型的时候,模型名字的右侧显示 COMPLETE 的即为文本补全模型,该类模型接受名为“提示词”的自由格式文本字符串,模型将生成一个文本补全,试图匹配您给它的任何上下文或模式。例如,如果您给的提示词:“正如笛卡尔所说,我思故”,它将高概率返回“我在”作为补全。
|
||||
|
||||
|
||||
* **聊天模型** <img src="../../../.gitbook/assets/screenshot-20231017-092957.png" alt="" data-size="line">
|
||||
* **聊天模型** <img src="../../../../.gitbook/assets/screenshot-20231017-092957.png" alt="" data-size="line">
|
||||
|
||||
在选择模型的时候,模型名字的右侧显示 CHAT 的即为聊天模型,该类模型将消息列表作为输入,并返回模型生成的消息作为输出。尽管聊天格式旨在简化多轮对话,但它对于没有任何对话的单轮任务同样有用。聊天模型使用的是聊天消息作为输入和输出,包含 SYSTEM / USER / ASSISTANT 三种消息类型:
|
||||
|
||||
|
|
@ -21,26 +19,19 @@
|
|||
* 用户消息提供请求或评论以供 AI 助手响应。
|
||||
* `ASSISTANT`
|
||||
* 助手消息存储以前的助手响应,但也可以由您编写以提供所需行为的示例。
|
||||
|
||||
|
||||
* **停止序列 Stop\_Sequences**
|
||||
|
||||
是指特定的单词、短语或字符,用于向 LLM 发出停止生成文本的信号。
|
||||
* **专家模式提示词中的内容块**
|
||||
* <img src="../../../../.gitbook/assets/3.png" alt="" data-size="line">
|
||||
|
||||
用户在配置了数据集的 App 中,输入查询内容,App 会将查询内容作为数据集的检索条件,检索的结果在组织之后会作为上下文内容替换 `上下文` 变量,使 LLM 能够参考上下文的内容进行回答。
|
||||
* <img src="../../../../.gitbook/assets/4.png" alt="" data-size="line">
|
||||
|
||||
* **专家模式提示词中的内容块**
|
||||
|
||||
* <img src="../../../.gitbook/assets/3.png" alt="" data-size="line">
|
||||
|
||||
用户在配置了数据集的 App 中,输入查询内容,App 会将查询内容作为数据集的检索条件,检索的结果在组织之后会作为上下文内容替换 `上下文` 变量,使 LLM 能够参考上下文的内容进行回答。
|
||||
* <img src="../../../.gitbook/assets/4.png" alt="" data-size="line">
|
||||
|
||||
查询内容仅在对话型应用的文本补全模型中可用,对话中用户输入的内容将替换该变量,以触发每轮新的对话。
|
||||
* <img src="../../../.gitbook/assets/5.png" alt="" data-size="line">
|
||||
|
||||
会话历史仅在对话型应用的文本补全模型中可用。在对话型应用中多次对话时,Dify 会将历史的对话记录根据内置规则进行组装拼接,并替换 `会话历史` 变量。其中 Human 和 Assistant 前缀可点击 `会话历史` 后的`...` 进行修改。 
|
||||
|
||||
查询内容仅在对话型应用的文本补全模型中可用,对话中用户输入的内容将替换该变量,以触发每轮新的对话。
|
||||
* <img src="../../../../.gitbook/assets/5.png" alt="" data-size="line">
|
||||
|
||||
会话历史仅在对话型应用的文本补全模型中可用。在对话型应用中多次对话时,Dify 会将历史的对话记录根据内置规则进行组装拼接,并替换 `会话历史` 变量。其中 Human 和 Assistant 前缀可点击 `会话历史` 后的`...` 进行修改。
|
||||
* **初始模版**
|
||||
|
||||
在**专家模式**下,正式编排之前,提示词框会给到一个初始模版,我们可以直接修改初始模版来对 LLM有更加定制化的要求。注意:不同类型应用的不同类型模式下有所区别。
|
||||
|
|
@ -49,15 +40,15 @@
|
|||
|
||||
## 两种模式对比
|
||||
|
||||
<table><thead><tr><th width="333">对比维度</th><th width="197">简易模式</th><th>专家模式</th></tr></thead><tbody><tr><td>内置提示词可见性</td><td>封装不可见</td><td>开放可见</td></tr><tr><td>有无自动编排</td><td>可用</td><td>不可用</td></tr><tr><td>文本补全模型和聊天模型选择有无区别</td><td>无</td><td>文本补全模型和聊天模型选择后有编排区别</td></tr><tr><td>变量插入</td><td>有</td><td>有</td></tr><tr><td>内容块校验</td><td>无</td><td>有</td></tr><tr><td>SYSTEM / USER / ASSISTANT <br>三种消息类型编排</td><td>无</td><td>有</td></tr><tr><td>上下文参数设置</td><td>可设置</td><td>可设置</td></tr><tr><td>查看 PROMPT LOG</td><td>可查看完整提示词日志</td><td>可查看完整提示词日志</td></tr><tr><td>停止序列 Stop_Sequences 参数设置</td><td>无</td><td>可设置</td></tr></tbody></table>
|
||||
<table><thead><tr><th width="333">对比维度</th><th width="197">简易模式</th><th>专家模式</th></tr></thead><tbody><tr><td>内置提示词可见性</td><td>封装不可见</td><td>开放可见</td></tr><tr><td>有无自动编排</td><td>可用</td><td>不可用</td></tr><tr><td>文本补全模型和聊天模型选择有无区别</td><td>无</td><td>文本补全模型和聊天模型选择后有编排区别</td></tr><tr><td>变量插入</td><td>有</td><td>有</td></tr><tr><td>内容块校验</td><td>无</td><td>有</td></tr><tr><td>SYSTEM / USER / ASSISTANT<br>三种消息类型编排</td><td>无</td><td>有</td></tr><tr><td>上下文参数设置</td><td>可设置</td><td>可设置</td></tr><tr><td>查看 PROMPT LOG</td><td>可查看完整提示词日志</td><td>可查看完整提示词日志</td></tr><tr><td>停止序列 Stop_Sequences 参数设置</td><td>无</td><td>可设置</td></tr></tbody></table>
|
||||
|
||||
## 操作说明
|
||||
|
||||
### 1. 如何进入专家模式
|
||||
|
||||
  创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。
|
||||
创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/专家模式.png" alt=""><figcaption><p>专家模式入口</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/专家模式.png" alt=""><figcaption><p>专家模式入口</p></figcaption></figure>
|
||||
|
||||
{% hint style="warning" %}
|
||||
在**专家模式**下修改提示词并发布应用后,将无法返回至**简易模式**。
|
||||
|
|
@ -71,7 +62,7 @@
|
|||
需要注意的是,我们只有先上传了上下文,在**专家模式**下才会呈现包含 \{{#context#\}} 的内置提示词
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/参数设置.png" alt=""><figcaption><p>上下文参数设置</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/参数设置.png" alt=""><figcaption><p>上下文参数设置</p></figcaption></figure>
|
||||
|
||||
**TopK:值范围为整数 1~10**
|
||||
|
||||
|
|
@ -113,10 +104,9 @@ Assistant1: 土是黄色的
|
|||
|
||||
### 4. 快捷插入变量和内容块
|
||||
|
||||
在**专家模式**下,你可以在文本编辑器中输入“`/`”,快捷调出内容块来插入提示词中。内容块分为:`上下文`、`变量`、`会话历史`、`查询内容`。你也可以通过输入“`{`”,快捷插入已创建过的变量列表。\
|
||||
在**专家模式**下,你可以在文本编辑器中输入“`/`”,快捷调出内容块来插入提示词中。内容块分为:`上下文`、`变量`、`会话历史`、`查询内容`。你也可以通过输入“`{`”,快捷插入已创建过的变量列表。\\
|
||||
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/快捷键.png" alt=""><figcaption><p>快捷键 “/”</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/快捷键.png" alt=""><figcaption><p>快捷键 “/”</p></figcaption></figure>
|
||||
|
||||
{% 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 产生对话之后,将鼠标指针移动到任意的用户会话,即可在左上角看到“日志”标志按钮,点击即可查看提示词日志。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/日志.png" alt=""><figcaption><p>调试日志入口</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/日志.png" alt=""><figcaption><p>调试日志入口</p></figcaption></figure>
|
||||
|
||||
在日志中,我们可以清晰的查看到:
|
||||
|
||||
|
|
@ -167,7 +157,7 @@ And answer according to the language English.
|
|||
* 当前会话引用的相关文本片段
|
||||
* 历史会话记录
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/11.png" alt=""><figcaption><p>调试预览界面查看提示词日志</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/11.png" alt=""><figcaption><p>调试预览界面查看提示词日志</p></figcaption></figure>
|
||||
|
||||
从日志中,我们可以查看经过系统拼装后最终发送至 LLM 的完整提示词,并根据调试结果持续改进提示词输入。
|
||||
|
||||
|
|
@ -175,4 +165,4 @@ And answer according to the language English.
|
|||
|
||||
在初始的构建应用主界面,左侧导航栏可以看到“日志与标注”,点击进去即可查看完整的日志。 在日志与标注的主界面,点击任意一个会话日志条目,在弹出的右侧对话框中同样鼠标指针移动到会话上即可点开“日志”按钮查看提示词日志。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/12.png" alt=""><figcaption><p>日志与标注界面查看提示词日志</p></figcaption></figure>
|
||||
<figure><img src="../../../../.gitbook/assets/12.png" alt=""><figcaption><p>日志与标注界面查看提示词日志</p></figcaption></figure>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
# 工具
|
||||
|
||||
### 工具定义
|
||||
|
||||
工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:**第一方工具**和**自定义工具**。
|
||||
|
||||
你可以直接使用 Dify 生态提供的第一方内置工具,或者轻松导入自定义的 API 工具(目前支持 OpenAPI / Swagger 和 OpenAI Plugin 规范)。
|
||||
|
||||
#### 工具的作用:
|
||||
|
||||
1. 工具使用户可以在 Dify 上创建更强大的 AI 应用,如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。
|
||||
2. 方便将你的应用与其他系统或服务连接,与外部环境交互,如代码执行、对专属信息源的访问等。
|
||||
|
||||
### 如何配置第一方工具
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (131).png" alt=""><figcaption><p>第一方工具列表</p></figcaption></figure>
|
||||
|
||||
Dify 目前已支持:
|
||||
|
||||
<table><thead><tr><th width="154">工具</th><th>工具描述</th></tr></thead><tbody><tr><td>谷歌搜索</td><td>用于执行 Google SERP 搜索并提取片段和网页的工具。输入应该是一个搜索查询</td></tr><tr><td>维基百科</td><td>用于执行维基百科搜索并提取片段和网页的工具。</td></tr><tr><td>DALL-E 绘画</td><td>用于通过自然语言输入生成高质量图片</td></tr><tr><td>网页抓取</td><td>用于爬取网页数据的工具</td></tr><tr><td>WolframAlpha</td><td>一个强大的计算知识引擎,能根据问题直接给出标准化答案,同时具有强大的数学计算功能</td></tr><tr><td>图表生成</td><td>用于生成可视化图表的工具,你可以通过它来生成柱状图、折线图、饼图等各类图表</td></tr><tr><td>当前时间</td><td>用于查询当前时间的工具</td></tr><tr><td>雅虎财经</td><td>获取并整理出最新的新闻、股票报价等一切你想要的财经信息。</td></tr><tr><td>Stable Diffusion</td><td>一个可以在本地部署的图片生成的工具,您可以使用 stable-diffusion-webui 来部署它</td></tr><tr><td>Vectorizer</td><td>一个将 PNG 和 JPG 图像快速轻松地转换为 SVG 矢量图的工具。</td></tr><tr><td>YouTube</td><td>一个用于获取油管频道视频统计数据的工具</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
欢迎您为 Dify 贡献自己开发的工具,关于如何贡献的具体方法请查看 [Dify 开发贡献文档](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md),您的任何支持对我们都是极为宝贵的。
|
||||
{% endhint %}
|
||||
|
||||
#### 第一方工具授权
|
||||
|
||||
若你需要直接使用 Dify 生态提供的第一方内置工具,你需要在使用前配置相应的凭据。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (134).png" alt=""><figcaption><p>配置第一方工具凭据</p></figcaption></figure>
|
||||
|
||||
凭据校验成功后工具会显示“已授权”状态。配置凭据后,工作区中的所有成员都可以在编排应用程序时使用此工具。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (136).png" alt=""><figcaption><p>第一方工具已授权</p></figcaption></figure>
|
||||
|
||||
### 如何创建自定义工具
|
||||
|
||||
你可以在“工具-自定义工具”内导入自定义的 API 工具,目前支持 OpenAPI / Swagger 和 ChatGPT Plugin 规范。你可以将 OpenAPI schema 内容直接粘贴或从 URL 内导入。关于 OpenAPI / Swagger 规范您可以查看[官方文档说明](https://swagger.io/specification/)。
|
||||
|
||||
工具目前支持两种鉴权方式:无鉴权 和 API Key。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (147).png" alt=""><figcaption><p>创建自定义工具</p></figcaption></figure>
|
||||
|
||||
在导入 Schema 内容后系统会主动解析文件内的参数,并可预览工具具体的参数、 方法、路径。您也可以在此对工具参数进行测试。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (148).png" alt=""><figcaption><p>自定义工具参数测试</p></figcaption></figure>
|
||||
|
||||
完成自定义工具创建之后,工作区中的所有成员都可以在“工作室”内编排应用程序时使用此工具。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (150).png" alt=""><figcaption><p>已添加自定义工具</p></figcaption></figure>
|
||||
|
||||
### 如何在应用内使用工具
|
||||
|
||||
目前,您可以在“工作室”中创建**智能助手型应用**时,将已配置好凭据的工具在其中使用。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (139).png" alt=""><figcaption><p>创建智能助手型应用时添加工具</p></figcaption></figure>
|
||||
|
||||
以下图为例,在财务分析应用内添加工具后,智能助手将在需要时自主调用工具,从工具中查询财务报告数据,并将数据分析后完成与用户之间的对话。
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (144).png" alt=""><figcaption><p>智能助手在对话中完成工具调用回复问题</p></figcaption></figure>
|
||||
|
||||
|
||||
|
||||