弃坑 Coze,我把 Dify 接入了个人微信,AI小助理太强了

20241028011830308
猴哥的第 76 期分享,欢迎追看

之前免费出圈的 Coze 开始收费了,总结来看:

  • API 只有 100 次免费额度;
  • 除了在 coze 主页使用,其他外部平台如:微信公众号/抖音,只有 100 次免费额度
  • 不能使用火山引擎的方舟大模型中的免费额度;
20241028011831863

有没有类似 Coze 的开源项目?

目前有两个 Coze 的开源平替,同样支持智能体搭建:FastGPT 和 Dify。

就目前的体验来看,二者各有优劣:

  • FastGPT:在知识库召回上更优;
  • Dify:支持的大模型更丰富,插件生态更完善。

关于 FastGPT,可以看之前的教程:0基础搭建本地私有知识库,给 GPT 插上翅膀

今日分享,将手把手带大家私有化部署体验 Dify,并把它接入个人微信。

1. Dify 简介

在线体验:https://dify.ai/

开源地址:https://github.com/langgenius/dify

官方文档:https://docs.dify.ai/v/zh-hans

Dify 是 Do it for you (为你而做)的简称。

和 Coze 非常类似,Dify 也内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,以及一套易用的界面和 API。

如果你用过 Coze 搭建智能体,那么迁移到 Dify 会非常丝滑。

如果你没用过 Coze,那么可以前往上面的在线体验地址,先去点点看~

如果不想自己部署,官方地址也提供了一定的免费额度,不过只支持上传 50 个文档,且支持 RAG 的向量空间也只有 5 MB。

如果不想付费,且对自己的私有数据安全有更高要求,那么强烈建议你本地私有化部署,参考下面步骤,相信你也能搞定!

2. Dify 私有化部署

参考文档:https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/docker-compose

首先,克隆 Dify 源代码至本地,然后进入 docker 目录,复制一份环境变量,采用默认端口,一键启动:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

启动成功后,你会发现共有 9 个容器:包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox。

20241028011832779

内存占用共计 1690 M,所以至少确保有一台 2G 内存的机器。

20241028011832771

因为项目中启动了一个容器 nginx 将 web 服务转发到 80 端口,所以在浏览器中,直接输入公网 IP 即可,设置一下管理员的账号密码,进入应用主界面。

20241028011833327

3. 接入大模型

整个界面非常简单,先不管能干啥,我们先把大模型接入进来。

怎么接入?

不得不说,Dify 把这么重要的需求设置的实在太隐秘了,着实折腾了一段时间才找到👇

20241028011834561

设置里找到模型供应商,这里已经支持了上百款模型,我这里主要先接入了三款有免费额度的。

20241028011834500

其中:

  • SiliconFlow 提供了大量免费的 LLM API,即便是需要付费的模型,新注册用户也有 2000W Token 的体验额度。可前往领取:https://cloud.siliconflow.cn?referrer=clxv36914000l6xncevco3u1y
  • 火山引擎的方舟大模型也提供了一定的免费额度,怎么接入?

在火山方舟控制台找到:在线推理-创建推理接入点,就可以拿到接入点名称。

20241028011835744

如果你打算采用本地部署的大模型,Dify 也提供了对 Ollama 的支持:

20241028011835838

不了解 Ollama 的小伙伴,可以回看教程:本地部署大模型?看这篇就够了,Ollama 部署和实战

如果你有用过 OneAPI 管理过各种大模型,Dify 也提供了对 OpenAI-API-compatible 的支持:

20241028011836591

不了解 OneAPI 的小伙伴,可以回看教程:一键封装成OpenAI协议,强推的一款神器!

4. 创建工作流

回到主页,点击创建空白应用,这里的聊天助手和文本生成应用,是功能最为单一的 LLM 应用,都不支持工具和知识库的接入。

Agent 和 工作流有什么区别?

  • Agent:智能体,基于大语言模型的推理能力,可以自主选择工具来完成任务,相对简单。
  • 工作流:以工作流的形式编排 LLM 应用,提供更多的定制化能力,适合有经验的用户。
20241028011836442

通常,我们需要 Agent 和 工作流配合使用,Agent 负责对话理解,Workflow 处理具体的定制功能。

今天,我们就把上一篇在 coze 做的微信消息转发插件迁移过来,给大家展示一下工作流的搭建方式。看看 Dify 能否完成同样的功能。

先创建一个工作流,进来后,在开始中添加后面添加添加两个参数:好友昵称 和 消息内容:

20241028011836223

然后在开始后面添加一个 Http 请求:

20241028011837273

在 Http 请求中填入相关信息:url 就是上篇中搭建的机器人的发送消息的API,body 内容参考请求体参数填写,如下图所示。

20241028011837771

注意,上述填写 json 结构体时,一定要将变量加双引号,否则后面测试不通。

最后,创建一个结束流程,把 http 请求接口的结果进行返回。

20241028011838767

创建成功后,点击运行测试一下:

20241028011839608

运行测试没问题后,你需要将它发布为一个工具(类似 coze 中的插件),才能供后面的 Agent 调用。

20241028011839685

注意:这里的工具调用名称,是后续给大模型调用的,工具描述需要写清楚。

20241028011840573

5. 创建 Agent 应用

工具发布以后,回到首页,在工具 tab 页的工作流中可以看到:

20241028011840715

接下来,我们来创建一个 Agent 应用,来调用该工具:

20241028011841987

可以先设置一下角色提示词:

你作为一个聊天机器人,能够深刻理解对话内容背后的意图。可以使用wechat_msg工具,给对方的微信号发送答复。

然后,在下方的工具处,把我们刚发布的工具添加进来:

20241028011841479

最后,如果指令任务执行的不够好,右上角选择切换一个大模型:

20241028011842620

在右侧的预览与调试区域,测试一下吧~

测试案例一

让它给我的大号微信讲一句土味情话,可以看到成功调用了刚刚添加的工具!

20241028011842493

还能干点啥?

测试案例二

比如查询天气,那就添加天气相关的工具,Dify 中内置了两款插件。

OpenWeather这个工具申请 API Key 后需要等大约 1h 后才能生效。这里选择高德的天气插件,给大家演示。

20241028011843607

首先采用的是豆包大模型,需要调用两个工具的任务,居然就掉链子了,得再次强调一次任务才能发送成功!

20241028011843955

所以,指令遵循是否完美,和选用的大模型有很大关系,Doubao-pro-128k就需要发两次消息,换用gpt-4后就一次搞定了!

20241028011844117

来微信看看,成功发送!👇

20241028011845673

完美实现类似昨天 coze 的功能!

写在最后

作为 Coze 的开源平替,Dify 也是一个非常强大的智能体开发和搭建平台,

今天通过搭建一个简单的工作流和 Agent 的具体实操,带着大家熟悉了 Dify 的本地部署体验,成功实现了微信 AI 消息转发。

关于 Dify,还有诸如知识库API 调用等更丰富的功能,后续再跟大家分享~

阅读剩余
THE END