GITBOOK-84: No subject

pull/34/head
vincehe 2024-01-23 17:02:50 +00:00 committed by gitbook-bot
parent ef29e525b7
commit eccfc55c9e
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
24 changed files with 92 additions and 38 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

View File

@ -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)

View File

@ -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 的即为文本补全模型,该类模型接受名为“提示词”的自由格式文本字符串,模型将生成一个文本补全,试图匹配您给它的任何上下文或模式。例如,如果您给的提示词:“正如笛卡尔所说,我思故”,它将高概率返回“我在”作为补全。
* **聊天模型** <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 前缀可点击 `会话历史` 后的`...` 进行修改。&#x20;
查询内容仅在对话型应用的文本补全模型中可用,对话中用户输入的内容将替换该变量,以触发每轮新的对话。
* <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. 如何进入专家模式
&#x20; 创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。
创建应用后,在提示词编排页可以切换至**专家模式**,在此模式下可以编辑完整的应用提示词。
<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值范围为整数 110**
@ -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>

63
zh_CN/guides/gong-ju.md Normal file
View File

@ -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>