基于 AstrBot、Gewechat 和 Dify 构建微信聊天机器人应用

一、背景与框架选择

为了开发一款能够 24 小时在线的微信聊天机器人,在我无法及时回复消息时,自动向对方提供我的日程安排、最新动态和基本信息,并能陪伴聊天解闷,甚至提供 IP 地址归属地查询、经典语录查询等常用工具功能,我选择了以下三个开源框架:

  1. AstrBot 聊天机器人框架https://astrbot.soulter.top/
    • 大语言模型对话:支持多种大语言模型,包括 OpenAI API、Google Gemini、Llama、Deepseek、ChatGLM 等,支持接入本地部署的大模型,通过 Ollama、LLMTuner。具备多轮对话、人格情境、多模态能力,支持图片理解、语音转文字(Whisper)。
    • 多消息平台接入:支持接入 QQ(OneBot)、QQ 频道、微信(Gewechat)、飞书、Telegram。后续将支持钉钉、Discord、WhatsApp、小爱音响。支持速率限制、白名单、关键词过滤、百度内容审核。
    • Agent:原生支持部分 Agent 能力,如代码执行器、自然语言待办、网页搜索。对接 Dify 平台,便捷接入 Dify 智能助手、知识库和 Dify 工作流。
    • 插件扩展:深度优化的插件机制,支持开发插件扩展功能,极简开发。已支持安装多个插件。
    • 可视化管理面板:支持可视化修改配置、插件管理、日志查看等功能,降低配置难度。集成 WebChat,可在面板上与大模型对话。
    • 高稳定性、高模块化:基于事件总线和流水线的架构设计,高度模块化,低耦合。
  2. Gewechat 微信聊天机器人接口https://github.com/Devo919/Gewechat
    • 框架优势
      • 简单易用,无接入难度。区别于其他开源项目,本框架无需用户安装电脑微信,无需安装手机破解插件,只需扫码登录即可使用,操作简单,目前是大厂最稳定的主流使用方案。
    • 主要功能
      • 消息自动化:可向指定对象(好友、群组)发送文本、图片、文件、emoji 表情、小程序、语音等消息。
      • 自定义消息处理:支持自动回复、自定义关键词回复、AI 回复、各种自定义类型、RPA 自动化业务交互。
      • 群管理及好友管理:设置好友备注、邀请好友统计、拉好友进群等。
      • 各种业务模型接入:例如 ChatGPT、Sora、大数据及客服模型。
      • 基于框架可创造更多有趣的功能。
  3. Dify 大模型应用低代码平台https://dify.ai) Dify 是一个开源的 LLM 应用开发平台,提供从 Agent 构建到 AI 工作流编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。 由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

二、系统架构

整体架构如下所示:

三、安装步骤

三个服务均采用 Docker 进行安装。需要先从互联网上下载 Gewechat、AstrBot 和 Dify 的 Docker 镜像。


请参考三个框架的官方网站,完成私有化部署。可将它们安装在同一台服务器上。

安装方式链接:

以下主要说明 AstrBot 和 Gewechat 的安装设置,Dify 的安装和配置请参考其官方文档。

  1. AstrBot 聊天机器人框架
    • 创建目录并运行容器: mkdir astrbot sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v /data/apps/astrbot/data:/AstrBot/data --name astrbot-frogchou soulter/astrbot:latest
    • 部署完毕后,通过以下命令查看框架的启动结果,查找登录地址及账号密码: sudo docker logs astrbot-frogchou

在浏览器中输入相应的地址(例如:http://192.168.2.252:1185/)

  1. Gewechat 框架安装
    • 创建 /data/apps/gewechat/ 目录,映射容器卷 mkdir -p /data/apps/gewechat/data
    • 运行 Gewechat 容器: docker run -itd -v /data/apps/gewechat/data:/root/temp -p 2533:2531 -p 2534:2532 --privileged=true --name=gewe-frogchou gewe /usr/sbin/init
  2. 部署 Dify (略)

四、配置

  1. Dify 开发 Agent、Chat 或 workflow
    以下是我开发的一个个人助手 Agent,主要实现了对我个人信息的介绍,提供了我最近的工作安排,我喜欢的语录和我开发的一些工具,例如 IP 地址归属地查询。该 Agent 能够通过自然语言对话实现信息查询和工具调用。

我们发布这个 Agent,并记录下 API key 和 API 调用地址。

2.配置 AstrBot
主要配置消息平台适配器和服务器提供商两个部分。

  • 这里配置完消息平台适配器后,需要打开控制台找到二维码链接,扫码登录微信。如下图中的黄色字体标记的日志,将日志中的链接复制到浏览器,打开并使用微信登录。登录完成后日志中会有相关输出。

  • 服务提供商配置,这里我们选择dify平台,并将我们开发好的Agent信息填入
  1. Gewechat 无需额外配置
    晚上以上配置后就可以测试了。

五、测试
通过以上步骤我们就实现了对利用微信调用dify的Agent进行聊天的功能。以下是效果:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注