GITBOOK-164: No subject
parent
b1d1dcf283
commit
4d229c424a
|
|
@ -35,7 +35,6 @@
|
|||
* [应用附加功能](guides/application-design/ying-yong-gong-ju-xiang/README.md)
|
||||
* [敏感内容审查](guides/application-design/ying-yong-gong-ju-xiang/moderation-tool.md)
|
||||
* [工作流](guides/workflow/README.md)
|
||||
* [基本介绍](guides/workflow/introduce.md)
|
||||
* [关键概念](guides/workflow/key\_concept.md)
|
||||
* [节点说明](guides/workflow/node/README.md)
|
||||
* [开始](guides/workflow/node/start.md)
|
||||
|
|
@ -59,10 +58,10 @@
|
|||
* [应用发布](guides/workflow/publish.md)
|
||||
* [导出/导入模板](guides/workflow/dao-chu-dao-ru-mo-ban.md)
|
||||
* [知识库](guides/knowledge-base/README.md)
|
||||
* [创建知识库&上传文档](guides/knowledge-base/chuang-jian-zhi-shi-ku-shang-chuan-wen-dang.md)
|
||||
* [知识库管理&文档维护](guides/knowledge-base/zhi-shi-ku-guan-li-wen-dang-wei-hu.md)
|
||||
* [在应用内关联知识库](guides/knowledge-base/zai-ying-yong-nei-guan-lian-zhi-shi-ku.md)
|
||||
* [召回测试/引用归属](guides/knowledge-base/zhao-hui-ce-shi-yin-yong-gui-shu.md)
|
||||
* [创建知识库&上传文档](guides/knowledge-base/create\_knowledge\_and\_upload\_documents.md)
|
||||
* [知识库及文档维护](guides/knowledge-base/knowledge\_and\_documents\_maintenance.md)
|
||||
* [在应用内集成知识库](guides/knowledge-base/integrate\_knowledge\_within\_application.md)
|
||||
* [召回测试/引用归属](guides/knowledge-base/retrieval\_test\_and\_citation.md)
|
||||
* [从 Notion 导入数据](guides/knowledge-base/sync-from-notion.md)
|
||||
* [通过 API 维护知识库](guides/knowledge-base/maintain-dataset-via-api.md)
|
||||
* [外部数据工具](guides/knowledge-base/external\_data\_tool.md)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# 在应用内关联知识库
|
||||
# 在应用内集成知识库
|
||||
|
||||
### 1 创建知识库应用
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ N 选 1 召回依赖模型的推理能力,使用限制较多,计划在 2024
|
|||
<figure><img src="../../.gitbook/assets/image (128).png" alt=""><figcaption><p>混合检索+重排序</p></figcaption></figure>
|
||||
|
||||
{% hint style="info" %}
|
||||
想了解更多关于 Rerank 的相关知识,请查阅扩展阅读[重排序](zai-ying-yong-nei-guan-lian-zhi-shi-ku.md#zhong-pai-xu-rerank)。
|
||||
想了解更多关于 Rerank 的相关知识,请查阅扩展阅读[重排序](integrate\_knowledge\_within\_application.md#zhong-pai-xu-rerank)。
|
||||
{% endhint %}
|
||||
|
||||
#### 如何配置 Rerank 模型?
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# 知识库管理&文档维护
|
||||
# 知识库及文档维护
|
||||
|
||||
### 1 查看文本分段
|
||||
|
||||
|
|
@ -96,11 +96,11 @@
|
|||
|
||||
**可见权限**,可选择 「 只有我 」 或 「 所有团队成员 」,不具有权限的人将无法查阅和编辑数据集。
|
||||
|
||||
**索引模式**,[参考文档](chuang-jian-zhi-shi-ku-shang-chuan-wen-dang.md#suo-yin-fang-shi)
|
||||
**索引模式**,[参考文档](create\_knowledge\_and\_upload\_documents.md#suo-yin-fang-shi)
|
||||
|
||||
**Embedding 模型,**修改知识库的嵌入模型,修改 Embedding 模型将对知识库内的所有文档重新嵌入,原先的嵌入将会被删除。
|
||||
|
||||
**检索设置**,[参考文档](chuang-jian-zhi-shi-ku-shang-chuan-wen-dang.md#jian-suo-she-zhi)
|
||||
**检索设置**,[参考文档](create\_knowledge\_and\_upload\_documents.md#jian-suo-she-zhi)
|
||||
|
||||
***
|
||||
|
||||
|
|
@ -6,7 +6,7 @@ Dify 知识库内提供了文本召回测试的功能,用于调试不同检索
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption><p>召回测试</p></figcaption></figure>
|
||||
|
||||
点击源文本输入框右上角的图标可以更换当前知识库的检索方式和具体参数,**保存之后仅在召回测试的调试过程中生效**。在召回测试完成调试并确认更改知识库的检索参数时,需要在 [知识库设置 > 检索设置](zhao-hui-ce-shi-yin-yong-gui-shu.md#zhi-shi-ku-she-zhi) 中进行更改。
|
||||
点击源文本输入框右上角的图标可以更换当前知识库的检索方式和具体参数,**保存之后仅在召回测试的调试过程中生效**。在召回测试完成调试并确认更改知识库的检索参数时,需要在 [知识库设置 > 检索设置](retrieval\_test\_and\_citation.md#zhi-shi-ku-she-zhi) 中进行更改。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1).png" alt=""><figcaption><p>召回测试-检索设置</p></figcaption></figure>
|
||||
|
||||
|
|
@ -1,2 +1,47 @@
|
|||
# 工作流
|
||||
|
||||
🚧 维护中
|
||||
|
||||
### 基本介绍
|
||||
|
||||
工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
|
||||
|
||||
Dify 工作流分为两种类型:
|
||||
|
||||
* **Chatflow**:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
|
||||
* **Workflow**:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (156).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
为解决自然语言输入中用户意图识别的复杂性,Chatflow 提供了问题理解类节点。相对于 Workflow 增加了 Chatbot 特性的支持,如:对话历史(Memory)、标注回复、Answer 节点等。
|
||||
|
||||
为解决自动化和批处理情景中复杂业务逻辑,工作流提供了丰富的逻辑节点,如代码节点、IF/ELSE 节点、模板转换、迭代节点等,除此之外也将提供定时和事件触发的能力,方便构建自动化流程。
|
||||
|
||||
### 常见案例
|
||||
|
||||
* 客户服务
|
||||
|
||||
通过将 LLM 集成到您的客户服务系统中,您可以自动化回答常见问题,减轻支持团队的工作负担。 LLM 可以理解客户查询的上下文和意图,并实时生成有帮助且准确的回答。
|
||||
|
||||
* 内容生成
|
||||
|
||||
无论您需要创建博客文章、产品描述还是营销材料,LLM 都可以通过生成高质量内容来帮助您。只需提供一个大纲或主题,LLM将利用其广泛的知识库来制作引人入胜、信息丰富且结构良好的内容。
|
||||
|
||||
* 任务自动化
|
||||
|
||||
可以与各种任务管理系统集成,如 Trello、Slack、Lark、以自动化项目和任务管理。通过使用自然语言处理,LLM 可以理解和解释用户输入,创建任务,更新状态和分配优先级,无需手动干预。
|
||||
|
||||
* 数据分析和报告
|
||||
|
||||
可以用于分析大型数据集并生成报告或摘要。通过提供相关信息给 LLM,它可以识别趋势、模式和洞察力,将原始数据转化为可操作的智能。对于希望做出数据驱动决策的企业来说,这尤其有价值。
|
||||
|
||||
* 邮件自动化处理
|
||||
|
||||
LLM 可以用于起草电子邮件、社交媒体更新和其他形式的沟通。通过提供简要的大纲或关键要点,LLM 可以生成一个结构良好、连贯且与上下文相关的信息。这样可以节省大量时间,并确保您的回复清晰和专业。
|
||||
|
||||
### 如何开始
|
||||
|
||||
* 从一个空白的工作流开始构建或者使用系统模版帮助你开始;
|
||||
* 熟悉基础操作,包括在画布上创建节点、连接和配置节点、调试工作流、查看运行历史等;
|
||||
* 保存并发布一个工作流;
|
||||
* 在已发布应用中运行或者通过 API 调用工作流;
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
# 基本介绍
|
||||
|
||||
### 基本介绍
|
||||
|
||||
工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
|
||||
|
||||
Dify 工作流按应用情景划分为两种类型:
|
||||
|
||||
* Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
|
||||
* Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
|
||||
|
||||
为解决自然语言输入中用户意图识别的复杂性,Chatflow 提供了问题理解类节点,如问题分类、问题重写、子问题拆分等节点。相对于 Workflow 增加了 Chatbot 特性的支持,如:对话历史(Memory)、标注回复、Answer 节点等。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (156).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
为解决自动化和批处理情景中复杂业务逻辑,Workflow 提供了丰富的逻辑节点,如代码节点、IF/ELSE 节点、合并节点、模板转换节点等,除此之外也将提供定时触发和事件触发的能力,方便构建自动化流程。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (155).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 常见案例
|
||||
|
||||
* 客户服务
|
||||
|
||||
通过将 LLM 集成到您的客户服务系统中,您可以自动化回答常见问题,减轻支持团队的工作负担。 LLM 可以理解客户查询的上下文和意图,并实时生成有帮助且准确的回答。
|
||||
|
||||
* 内容生成
|
||||
|
||||
无论您需要创建博客文章、产品描述还是营销材料,LLM 都可以通过生成高质量内容来帮助您。只需提供一个大纲或主题,LLM将利用其广泛的知识库来制作引人入胜、信息丰富且结构良好的内容。
|
||||
|
||||
* 任务自动化
|
||||
|
||||
可以与各种任务管理系统集成,如 Trello、Slack、Lark、以自动化项目和任务管理。通过使用自然语言处理,LLM 可以理解和解释用户输入,创建任务,更新状态和分配优先级,无需手动干预。
|
||||
|
||||
* 数据分析和报告
|
||||
|
||||
可以用于分析大型数据集并生成报告或摘要。通过提供相关信息给 LLM,它可以识别趋势、模式和洞察力,将原始数据转化为可操作的智能。对于希望做出数据驱动决策的企业来说,这尤其有价值。
|
||||
|
||||
* 邮件自动化处理
|
||||
|
||||
LLM 可以用于起草电子邮件、社交媒体更新和其他形式的沟通。通过提供简要的大纲或关键要点,LLM 可以生成一个结构良好、连贯且与上下文相关的信息。这样可以节省大量时间,并确保您的回复清晰和专业。
|
||||
|
||||
### 如何开始
|
||||
|
||||
* 从一个空白的工作流开始构建或者使用系统模版帮助你开始;
|
||||
* 熟悉基础操作,包括在画布上创建节点、连接和配置节点、调试工作流、查看运行历史等;
|
||||
* 保存并发布一个工作流;
|
||||
* 在已发布应用中运行或者通过 API 调用工作流;
|
||||
|
|
@ -1,49 +1,41 @@
|
|||
# 关键概念
|
||||
|
||||
### 节点
|
||||
### 1 节点
|
||||
|
||||
节点是工作流中的关键构成,通过连接不同功能的节点,执行工作流的一系列操作。节点按类型分为:
|
||||
**节点是工作流的关键构成**,通过连接不同功能的节点,执行工作流的一系列操作。
|
||||
|
||||
* 基础节点:开始、结束、直接回复、LLM、知识检索、应用(即将上线)
|
||||
* 问题转换:问题分类、问题重写(即将上线)、子问题拆分(即将上线)
|
||||
* 逻辑处理:条件分支、合并(即将上线)、循环(即将上线)
|
||||
* 转换:代码执行、模版转换、变量赋值、函数提取(即将上线)
|
||||
* 其他:HTTP 请求
|
||||
* 工具:内置工具、自定义工具
|
||||
工作流的核心节点请查看[节点说明](node/)。
|
||||
|
||||
### 变量
|
||||
***
|
||||
|
||||
变量用于串联工作流中前后节点的输入与输出,实现流程中的复杂处理逻辑。
|
||||
### 2 变量
|
||||
|
||||
* 工作流需要定义启动执行或者对话的输入变量。
|
||||
* 节点需要定义启动执行的输入变量,如问题分类器的输入变量一般为用户输入的问题。
|
||||
* 节点内引用变量时只可以引用该节点前置流程节点的变量。
|
||||
* 为了避免引用变量名重复,节点名称不可同名。
|
||||
* 节点的输出变量为系统固定变量,不可编辑修改。
|
||||
**变量用于串联工作流内前后节点的输入与输出**,实现流程中的复杂处理逻辑。
|
||||
|
||||
### Chatflow 和 Workflow 的区别
|
||||
* 工作流需要定义启动执行变量,如聊天机器人需要定义一个输入变量 `sys.query`;
|
||||
* 节点一般需要定义输入变量,如定义问题分类器的输入变量为 `sys.query`;
|
||||
* 引用变量时只可引用流程上游节点的变量;
|
||||
* 为避免变量名重复,节点命名不可重复;
|
||||
* 节点的输出变量一般为系统固定变量,不可编辑。
|
||||
|
||||
1. 应用场景的区别
|
||||
***
|
||||
|
||||
* Chatflow:面向对话类情景,属于 Chatbot 应用类型的高阶编排模式
|
||||
* Workflow:面向自动化和批处理情景
|
||||
### 3 Chatflow 和 Workflow 
|
||||
|
||||
2. 可用节点的区别
|
||||
**应用场景**
|
||||
|
||||
| **节点** | **Chatflow** | **Workflow** |
|
||||
| ------------------- | ----------------------------------- | ------------------------------------ |
|
||||
| Start | 系统内置变量:用户输入和文件上传 | 系统内置变量:文件上传 |
|
||||
| End | 无 End 节点 | 使用 End 节点在执行结束时输出,可输出结构化文本,不可在流程中间输出 |
|
||||
| Answer | 使用 Answer 节点进行流式输出或者固定文本回复,可在流程中间输出 | 无 Answer 节点 |
|
||||
| LLM | 默认开启 Memory 用于存储和传递多轮对话的历史消息 | 无 Memory 配置 |
|
||||
| Question Classifier | 默认开启 Memory 用于存储和传递多轮对话的历史消息 | 无 Memory 配置 |
|
||||
* **Chatflow**:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
|
||||
* **Workflow**:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
|
||||
|
||||
3. 应用入口的划分
|
||||
**使用入口**
|
||||
|
||||
Chatflow 入口:
|
||||
<figure><img src="../../.gitbook/assets/output.png" alt=""><figcaption><p>Chatflow 入口</p></figcaption></figure>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/output.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/output (4).png" alt=""><figcaption><p>Workflow 入口</p></figcaption></figure>
|
||||
|
||||
Workflow 入口:
|
||||
**可用节点差异**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/output (4).png" alt=""><figcaption></figcaption></figure>
|
||||
1. End 节点属于 Workflow 的结束节点,仅可在流程结束时选择。
|
||||
2. Answer 节点属于 Chatflow ,用于流式输出文本内容,并支持在流程中间步骤输出。
|
||||
3. Chatflow 内置聊天记忆(Memory),用于存储和传递多轮对话的历史消息,可在 LLM 、问题分类等节点内开启,Workflow 无 Memory 相关配置,无法开启。
|
||||
4. Chatflow 的开始节点内置变量包括:`sys.query`,`sys.files`,`sys.conversation_id`,sys.user\_id。Workflow 的开始节点内置变量包括:`sys.files`,`sys_id`
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
# 节点说明
|
||||
|
||||
节点是工作流中的关键构成,通过连接不同功能的节点,执行工作流的一系列操作。
|
||||
🚧 维护中
|
||||
|
||||
**节点是工作流中的关键构成**,通过连接不同功能的节点,执行工作流的一系列操作。
|
||||
|
||||
### 核心节点
|
||||
|
||||
<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>开始(Start)</strong></td><td>定义一个 workflow 流程启动的初始参数。</td><td></td></tr><tr><td><strong>结束(End)</strong></td><td>定义一个 workflow 流程结束的最终输出内容。</td><td></td></tr><tr><td><strong>直接回复(Answer)</strong></td><td>定义一个 Chatflow 流程中的回复内容。</td><td></td></tr><tr><td><strong>LLM</strong></td><td>调用大语言模型回答问题或者对自然语言进行处理。</td><td></td></tr><tr><td><strong>知识检索(Knowledge Retrieval)</strong></td><td>从知识库中检索与用户问题相关的文本内容,可作为下游 LLM 节点的上下文。</td><td></td></tr><tr><td><strong>问题分类(Question Classifier)</strong></td><td>通过定义分类描述,LLM 能够根据用户输入选择与之相匹配的分类。</td><td></td></tr><tr><td><strong>条件分支(IF/ELSE)</strong></td><td>允许你根据 if/else 条件将 workflow 拆分成两个分支。</td><td></td></tr><tr><td><strong>代码执行(Code)</strong></td><td>运行 Python / NodeJS 代码以在工作流程中执行数据转换等自定义逻辑。</td><td></td></tr><tr><td><strong>模板转换(Template)</strong></td><td>允许借助 Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理等。</td><td></td></tr><tr><td><strong>变量聚合(Variable Aggregator)</strong></td><td>将多路分支的变量聚合为一个变量,以实现下游节点统一配置。</td><td></td></tr><tr><td><strong>参数提取器(Parameter Extractor)</strong></td><td>利用 LLM 从自然语言推理并提取结构化参数,用于后置的工具调用或 HTTP 请求。</td><td></td></tr><tr><td><strong>迭代(Iteration)</strong></td><td>对列表对象执行多次步骤直至输出所有结果。</td><td></td></tr><tr><td><strong>HTTP 请求(HTTP Request)</strong></td><td>允许通过 HTTP 协议发送服务器请求,适用于获取外部检索结果、webhook、生成图片等情景。</td><td></td></tr><tr><td><strong>工具(Tools)</strong></td><td>允许在工作流内调用 Dify 内置工具、自定义工具、子工作流等。</td><td></td></tr></tbody></table>
|
||||
|
|
|
|||
|
|
@ -18,17 +18,18 @@
|
|||
|
||||
#### 2.1.1. 创建聊天助手
|
||||
|
||||
##### (1)Dify简介
|
||||
**(1)Dify简介**
|
||||
|
||||
Dify是一个优秀的LLMOps(大型语言模型运维)平台,Dify的详细介绍请移步官方文档[欢迎使用 Dify | 中文 | Dify](https://docs.dify.ai/v/zh-hans)。
|
||||
|
||||
##### (2)登录Dify官方应用平台
|
||||
**(2)登录Dify官方应用平台**
|
||||
|
||||
首先,登录[Dify官方应用平台](https://cloud.dify.ai/signin),你可以选择使用Github登录或者使用Google登录。此外,你也可以参考Dify官方教程[Docker Compose 部署 | 中文 | Dify](https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/docker-compose) 私有部署,Dify是开源项目,支持私有部署。
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/login.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
##### (3)创建Dify基础编排聊天助手应用
|
||||
**(3)创建Dify基础编排聊天助手应用**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-basic-chatbot.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
登录成功后,进入Dify页面,我们按照下方步骤创建一个基础编排聊天助手应用
|
||||
|
|
@ -41,11 +42,13 @@ Dify是一个优秀的LLMOps(大型语言模型运维)平台,Dify的详细
|
|||
6. 点击创建
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/config-basic-chatbot.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
创建成功后我们会跳转到上图所示页面,我们继续配置应用
|
||||
|
||||
1. 选择模型,如gpt-3.5-turbo-0125
|
||||
2. 设置模型参数
|
||||
3. 填写应用提示词
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/publish-basic-chatbot.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
在配置完成后,我们可以在右侧对话框进行测试,在测试完成后,进行如下操作
|
||||
|
|
@ -54,7 +57,8 @@ Dify是一个优秀的LLMOps(大型语言模型运维)平台,Dify的详细
|
|||
2. 更新
|
||||
3. 访问API
|
||||
|
||||
##### (4)生成基础编排聊天助手API密钥
|
||||
**(4)生成基础编排聊天助手API密钥**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-basic-chatbot-apikey.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
在点击"访问API"后,我们会跳转到上图的API管理页面,在这个页面我们按照如下步骤获取API密钥:
|
||||
|
|
@ -69,11 +73,11 @@ Dify是一个优秀的LLMOps(大型语言模型运维)平台,Dify的详细
|
|||
|
||||
#### 2.1.2. 下载Dify on WeChat项目
|
||||
|
||||
##### (1)Dify on WeChat项目简介
|
||||
**(1)Dify on WeChat项目简介**
|
||||
|
||||
[Dify on WeChat](https://github.com/hanfangyuan4396/dify-on-wechat)是[ ChatGPT on WeChat](https://github.com/zhayujie/chatgpt-on-wechat)的下游分支,额外实现了对接[Dify](https://github.com/langgenius/dify) API,支持Dify聊天助手、支持Agent调用工具和知识库,支持Dify工作流,详情请查看GitHub仓库[Dify on WeChat](https://github.com/hanfangyuan4396/dify-on-wechat)。
|
||||
|
||||
##### (2)下载代码并安装依赖
|
||||
**(2)下载代码并安装依赖**
|
||||
|
||||
1. 下载项目代码
|
||||
|
||||
|
|
@ -98,9 +102,9 @@ pip3 install -r requirements.txt # 国内可以在该命令末尾添加 "-i htt
|
|||
pip3 install -r requirements-optional.txt # 国内可以在该命令末尾添加 "-i https://mirrors.aliyun.com/pypi/simple" 参数,使用阿里云镜像源安装依赖
|
||||
```
|
||||
|
||||
##### (3)填写配置文件
|
||||
**(3)填写配置文件**
|
||||
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,我们在**2.1.1小节(4)**最后保存了**API密钥**与**API服务器地址**,请把**dify_api_base**配置为**API服务器地址**;**dify_api_key**配置为**API密钥**其他配置保持不变
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,我们在**2.1.1小节(4)最后保存了API密钥**与**API服务器地址**,请把**dify\_api\_base**配置为**API服务器地址**;**dify\_api\_key**配置为**API密钥**其他配置保持不变
|
||||
|
||||
```bash
|
||||
{
|
||||
|
|
@ -120,25 +124,26 @@ pip3 install -r requirements-optional.txt # 国内可以在该命令末尾添加
|
|||
|
||||
#### 2.2.1. 快速启动测试
|
||||
|
||||
##### (1)在Dify on Wechat项目根目录执行如下命令
|
||||
**(1)在Dify on Wechat项目根目录执行如下命令**
|
||||
|
||||
```bash
|
||||
cd dify-on-wechat
|
||||
python3 app.py # windows环境下该命令通常为 python app.py
|
||||
```
|
||||
|
||||
##### (2)扫码登录
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/wechat-login.jpg" alt=""><figcaption></figcaption></figure>
|
||||
**(2)扫码登录**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/wechat-login.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
本项目使用itchat实现个人微信登录,有封号风险,建议使用**实名认证**过的**微信小号**进行测试,在执行上述命令后,我们可以在控制台看到打印如上图所示二维码,使用微信扫码登录,登录后当看到"itchat:Start auto replying."字符,表示登录成功,我们可以进行测试。
|
||||
|
||||
##### (3)对话测试
|
||||
**(3)对话测试**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/basic-chatbot-on-wechat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
我们看到,微信机器人的回复与在Dify测试页面上的回复一致。至此,恭喜你成功把Dify接入了个人微信🎉🎉🎉
|
||||
|
||||
##### (4)服务器部署
|
||||
**(4)服务器部署**
|
||||
|
||||
1. 源码部署
|
||||
|
||||
|
|
@ -161,17 +166,20 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
#### 2.3.1. 创建知识库
|
||||
|
||||
##### (1)下载知识库文件
|
||||
**(1)下载知识库文件**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/download-dify-workflow-knowledge.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
我们到[dify文档仓库](https://github.com/langgenius/dify-docs/blob/main/zh_CN/guides/workflow/introduce.md)下载Dify工作流介绍的文档。
|
||||
我们到[dify文档仓库](../../guides/workflow/)下载Dify工作流介绍的文档。
|
||||
|
||||
**(2)Dify中导入知识库**
|
||||
|
||||
##### (2)Dify中导入知识库
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-knowledge-1.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
进入知识库页面,创建知识库
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-knowledge-2.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
选择导入已有文本,上传刚才下载的introduce.md文件,点击下一步
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-knowledge-3.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
|
@ -180,9 +188,9 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
选择如下配置
|
||||
|
||||
- 分段设置:自动分段与清洗
|
||||
- 索引方式:高质量
|
||||
- 检索设置:向量检索
|
||||
* 分段设置:自动分段与清洗
|
||||
* 索引方式:高质量
|
||||
* 检索设置:向量检索
|
||||
|
||||
最后点击保存并处理
|
||||
|
||||
|
|
@ -200,34 +208,29 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
我们使用知识库+聊天机器人类型的模板,设置应用图标与名称,点击创建
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-workflow-chatbot-3.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
跳转到工作流编排页面后,先点击知识检索节点,点击最右侧"+"添加知识库。我们选择之前上传好的introduce.md知识库,该知识库是对Dify工作流的基本介绍。最后我们点击添加,知识库节点设置完成。
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-workflow-chatbot-4.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
接下来选择LLM节点,点击设置上下文,我们选择result变量,该变量存有知识检索的结果。
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-workflow-chatbot-5.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
设置完LLM节点后,我们点击预览进行测试,输入问题:请介绍一下dify工作流。可以看到最终输出了Dify工作流的正确介绍。测试正常后,我们返回编辑模式。
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/create-workflow-chatbot-6.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
返回编辑模式后,依次点击发布、更新、访问API
|
||||
|
||||
|
||||
|
||||
#### 2.3.3. 生成工作流编排聊天助手API密钥
|
||||
|
||||
在跳转到API管理页面后,我们参照**2.1.1小节(4)**获取"知识库+聊天机器人"应用的**API密钥**与**API服务器地址**
|
||||
在跳转到API管理页面后,我们参照**2.1.1小节(4)获取"知识库+聊天机器人"应用的API密钥**与**API服务器地址**
|
||||
|
||||
#### 2.3.4. 接入微信
|
||||
|
||||
与**2.1.2小节(3)**类似,我们在项目根目录创建名为config.json的文件,文件内容如下,同样把**dify_api_base**配置为**知识库+聊天机器人**应用的API服务器地址, **dify_api_key**配置为**知识库+聊天机器人**应用的API密钥,其他配置保持不变
|
||||
与**2.1.2小节(3)类似,我们在项目根目录创建名为config.json的文件,文件内容如下,同样把dify\_api\_base**配置为**知识库+聊天机器人**应用的API服务器地址, **dify\_api\_key**配置为**知识库+聊天机器人**应用的API密钥,其他配置保持不变
|
||||
|
||||
```bash
|
||||
{
|
||||
|
|
@ -244,6 +247,7 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
```
|
||||
|
||||
我们按照**2.2.1小节**启动程序并扫码登录,然后给微信机器人发送消息,进行测试
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/workflow-chatbot-on-wechat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
微信机器人的回复与在Dify测试页面上的回复一致。恭喜你更进一步,把工作流编排应用接入了个人微信,你可以向知识库中导入更多的Dify官方文档,让微信机器人为你解答更多的Dify相关问题。
|
||||
|
|
@ -274,11 +278,11 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
#### 2.4.2. 生成Agent API密钥
|
||||
|
||||
我们继续参照**2.1.1小节(4)**获取**智能助手**应用的**API密钥**与**API服务器地址**
|
||||
我们继续参照**2.1.1小节(4)获取智能助手**应用的**API密钥**与**API服务器地址**
|
||||
|
||||
#### 2.4.3. 接入微信
|
||||
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,同样把**dify_api_base**配置为**智能助手**应用的API服务器地址;**dify_api_key**配置为**智能助手**应用的API密钥,注意该应用为**智能助手**类型应用,还需要把**dify_app_type**设置为**agent**,其他配置保持不变
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,同样把**dify\_api\_base**配置为**智能助手**应用的API服务器地址;**dify\_api\_key**配置为**智能助手**应用的API密钥,注意该应用为**智能助手**类型应用,还需要把**dify\_app\_type**设置为**agent**,其他配置保持不变
|
||||
|
||||
```bash
|
||||
{
|
||||
|
|
@ -296,6 +300,7 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
```
|
||||
|
||||
继续参照**2.2.1小节**启动程序并扫码登录,然后给微信机器人发送消息,进行测试
|
||||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/agent-on-wechat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
可以看到微信机器人可以正常使用搜索和绘画工具。再一次恭喜你,把Dify Agent应用接入微信。也恭喜我,写到这里可以先睡觉了。
|
||||
|
|
@ -320,11 +325,11 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
#### 2.5.2. 生成工作流API密钥
|
||||
|
||||
我们同样参照**2.1.1小节(4)**获取**工作流**应用的**API密钥**与**API服务器地址**。
|
||||
我们同样参照**2.1.1小节(4)获取工作流**应用的**API密钥**与**API服务器地址**。
|
||||
|
||||
#### 2.5.3. 接入微信
|
||||
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,同样把**dify_api_base**配置为**工作流**应用的API服务器地址;**dify_api_key**配置为**工作流**应用的API密钥,注意该应用为**工作流**类型应用,还需要把**dify_app_type**设置为**workflow**,其他配置保持不变
|
||||
我们在项目根目录创建名为config.json的文件,文件内容如下,同样把**dify\_api\_base**配置为**工作流**应用的API服务器地址;**dify\_api\_key**配置为**工作流**应用的API密钥,注意该应用为**工作流**类型应用,还需要把**dify\_app\_type**设置为**workflow**,其他配置保持不变
|
||||
|
||||
```bash
|
||||
{
|
||||
|
|
@ -356,7 +361,7 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
### 3.1. 下载安装企业微信
|
||||
|
||||
确保你有一台windows系统的电脑,然后在此电脑下载安装特定版本的企业微信,[官方下载链接](https://dldir1.qq.com/wework/work_weixin/WeCom_4.0.8.6027.exe),[备用下载链接](https://www.alipan.com/s/UxQHrZ5WoxS)。
|
||||
确保你有一台windows系统的电脑,然后在此电脑下载安装特定版本的企业微信,[官方下载链接](https://dldir1.qq.com/wework/work\_weixin/WeCom\_4.0.8.6027.exe),[备用下载链接](https://www.alipan.com/s/UxQHrZ5WoxS)。
|
||||
|
||||
### 3.2. 创建Dify应用
|
||||
|
||||
|
|
@ -374,16 +379,17 @@ docker logs -f dify-on-wechat # 查看二维码并登录
|
|||
|
||||
例如我的python版本信息为
|
||||
|
||||
"Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]"
|
||||
"Python 3.8.5 (default, Sep 3 2020, 21:29:08) \[MSC v.1916 64 bit (AMD64)]"
|
||||
|
||||
可以看到python版本是**3.8.5**,并且是**AMD64**,所以对应的whl文件为**ntwork-0.1.3-cp38-cp38-win\_amd64.whl**,需要执行如下命令安装
|
||||
|
||||
可以看到python版本是**3.8.5**,并且是**AMD64**,所以对应的whl文件为**ntwork-0.1.3-cp38-cp38-win_amd64.whl**,需要执行如下命令安装
|
||||
```sh
|
||||
pip install your-path/ntwork-0.1.3-cp38-cp38-win_amd64.whl
|
||||
```
|
||||
|
||||
### 3.5. 填写配置文件
|
||||
|
||||
我们在Dify on WeChat项目根目录创建名为config.json的文件,下面是以Dify智能助手应用作为示例的配置文件,请正确填写你刚刚创建应用的dify_api_base、dify_api_key、dify_app_type信息,请注意channel_type填写为 **wework**
|
||||
我们在Dify on WeChat项目根目录创建名为config.json的文件,下面是以Dify智能助手应用作为示例的配置文件,请正确填写你刚刚创建应用的dify\_api\_base、dify\_api\_key、dify\_app\_type信息,请注意channel\_type填写为 **wework**
|
||||
|
||||
```json
|
||||
{
|
||||
|
|
@ -406,12 +412,14 @@ pip install your-path/ntwork-0.1.3-cp38-cp38-win_amd64.whl
|
|||
### 3.7. 启动微信个人号机器人
|
||||
|
||||
运行如下命令启动机器人
|
||||
|
||||
```sh
|
||||
cd dify-on-wechat
|
||||
python app.py
|
||||
```
|
||||
|
||||
我们可以看到终端输出如下信息,**等待wework程序初始化完成**,最后启动成功~
|
||||
我们可以看到终端输出如下信息,**等待wework程序初始化完成**,最后启动成功\~
|
||||
|
||||
```
|
||||
[INFO][2024-04-30 21:16:04][wework_channel.py:185] - 等待登录······
|
||||
[INFO][2024-04-30 21:16:05][wework_channel.py:190] - 登录信息:>>>user_id:xxx>>>>>>>>name:
|
||||
|
|
@ -421,22 +429,20 @@ python app.py
|
|||
|
||||
<figure><img src="../../.gitbook/assets/dify-on-wechat/agent-on-wework.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
现在我们给机器人发送消息,可以看到接入成功!
|
||||
|
||||
|
||||
## 4. Dify接入公众号
|
||||
|
||||
待更新~
|
||||
待更新\~
|
||||
|
||||
## 5. Dify接入企业微信应用
|
||||
|
||||
待更新~
|
||||
待更新\~
|
||||
|
||||
## 6. Dify接入企业微信客服
|
||||
|
||||
待更新~
|
||||
待更新\~
|
||||
|
||||
## 7. 后记
|
||||
|
||||
我是社畜打工人,精力实在有限,只能晚上下班还有周末空闲时间维护[Dify on WeChat](https://github.com/hanfangyuan4396/dify-on-wechat)项目,单靠我个人开发项目进度十分缓慢,希望大家能一起参与进来这个项目,多多提PR,让Dify的生态变得更好~
|
||||
我是社畜打工人,精力实在有限,只能晚上下班还有周末空闲时间维护[Dify on WeChat](https://github.com/hanfangyuan4396/dify-on-wechat)项目,单靠我个人开发项目进度十分缓慢,希望大家能一起参与进来这个项目,多多提PR,让Dify的生态变得更好\~
|
||||
|
|
|
|||
Loading…
Reference in New Issue