背景
近期,DeepSeek等AI应用的爆火让我深刻意识到AI技术在各个领域中的巨大潜力。为了更好地拥抱AI,我决定在我的所有工作生活场景中尽可能地加入AI,以提升效率和体验。
作为拥抱AI的一环, 我选择了为我的微信公众号接入AI功能,使其能够智能回复用户消息,提供更丰富的交互体验。
技术栈
本次项目主要使用了以下技术栈:
- Docker和Docker Compose:用于容器化部署,确保环境一致性; 简化多容器应用的配置和管理。
- 智谱AI:提供强大的语言模型支持,确保AI回复的质量。(原因是 DeepSeek 当前服务不太稳定, 先找个临时的替代.)
- 微信公众号平台:作为AI应用的对接渠道。
- 阿里云ECS:提供稳定的虚拟机运行环境,并通过安全组配置确保安全性。
- chatgpt-on-wechat: 基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入。
具体步骤
1. 准备环境
首先,在阿里云ECS上准备运行环境,确保开放了必要的安全组规则,允许80端口的访问。
2. 配置Docker Compose
编写docker-compose.yml
文件,配置AI应用的运行参数。关键配置如下:
services:chatgpt-on-wechat:image: zhayujie/chatgpt-on-wechatcontainer_name: chatgpt-on-wechatsecurity_opt:- seccomp:unconfinedports:- 80:80environment:ZHIPU_AI_API_KEY: 'your-zhipu-ai-api-key'MODEL: 'glm-4-plus'PROXY: 'https://open.bigmodel.cn/api/paas/v4/'SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'GROUP_CHAT_PREFIX: '["@bot"]'GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]'IMAGE_CREATE_PREFIX: '["画", "看", "找"]'CONVERSATION_MAX_TOKENS: 1000SPEECH_RECOGNITION: 'False'CHARACTER_DESC: '你是基于大语言模型的AI智能助手,专业领域为监控可观察性(Observability)、云原生云计算和架构,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。你的知识技术栈包括:监控可观察性(Observability)、云计算、云原生、高可用、Kubernetes、Docker、容器、PaaS、中间件、微服务、DevOps和数据库。'EXPIRES_IN_SECONDS: 3600USE_GLOBAL_PLUGIN_CONFIG: 'True'USE_LINKAI: 'False'LINKAI_API_KEY: ''LINKAI_APP_CODE: ''CHANNEL_TYPE: "wechatmp"SINGLE_CHAT_PREFIX: '[""]'WECHATMP_APP_ID: "wx73f9******d1e48"WECHATMP_APP_SECRET: "weca******est"WECHATMP_AES_KEY: "pbVhSx******************************************6Y0"WECHATMP_TOKEN: "3f9b8**********************f6a"WECHATMP_PORT: 80SUBSCRIBE_MSG: "感谢您的关注!\n这里是AI Bot,可以自由对话。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。"
相比其原文档:
- chatgpt-on-wechat 配置说明
- chatgpt-on-wechat 公众号对接文档
调整了以下配置:
ZHIPU_AI_API_KEY
: 智谱AI的API Key,用于调用AI模型。且不配置open_ai_api_key
MODEL
: 模型名称,用于调用AI模型。PROXY
: 代理地址,用于调用AI模型。这里填写智谱AI的API地址。具体为:'https://open.bigmodel.cn/api/paas/v4/'
CHARACTER_DESC
: AI助手的描述,用于介绍AI助手的功能和能力。这里提示词: 基于 EWhisper上我的自我介绍做了微调.WECHATMP_APP_ID
、WECHATMP_APP_SECRET
、WECHATMP_AES_KEY
、WECHATMP_TOKEN
: 微信公众号的配置信息,用于对接微信公众号平台。
3. 微信公众号开发配置
在微信公众号平台上完成应用的注册和配置,获取必要的App ID、App Secret等信息,并将其填入docker-compose.yml
文件中。
4. 启动服务
使用Docker Compose启动服务:
sudo docker-compose up -d
🐾注意: 这里需要用 sudo
启动, 因为微信公众号对接只能使用 80 或 443 端口. 这里使用 80 端口.
当然, 如果是企业级部署, 那么可以通过 Nginx 代理/ALB转发到其他端口, 实现安全+高可用.
5. 微信公众号-服务器配置
具体参考: chatgpt-on-wechat 公众号对接文档
配置的流程如下:
在公众平台启用开发者密码 (对应配置 wechatmp_app_secret),并将服务器ip填入白名单中
按上图填写 config.json 中与公众号相关的配置,要与公众号后台的配置一致
启动程序,启动后会监听80端口 (若无权限监听,则在启动命令前加上sudo;若80端口已被占用,则关闭该占用进程)
在公众号后台启用服务器配置并提交,如果保存成功则表示已经成功配置。注意 "服务器地址(URL)" 这一项需要配置为http://{HOST}/wx
的格式,其中{HOST}
可以是服务器的ip或域名。
6. 测试与验证
确保服务正常运行后,通过微信公众号发送测试消息,验证AI回复功能是否正常。
效果
接入AI后,我的微信公众号具备了智能回复能力,能够根据用户的输入提供准确且富有创意的回答。特别是在监控可观察性、云原生、云计算等领域的问题上,AI助手表现尤为出色,极大提升了用户体验。
实际效果如下:
此外,AI助手还支持角色扮演和文字冒险等丰富插件,增加了互动的趣味性和多样性。
总结
通过此次尝试,我成功将AI技术融入了我的微信公众号,不仅提升了用户的交互体验,也让我更加坚定了在更多场景中引入AI的决心。欢迎各位读者关注我的公众号,亲身体验AI带来的便捷与乐趣!
后续计划
后续的计划是继续优化和扩展AI助手的功能,以适应更多场景和需求。包括:
- 关联知识库,以提供更详细的知识支持;
- 对接语音识别和语音合成,以实现更智能的交互;
- 对接 DeepSeek 等模型,以提供更智能的问答能力;
此外,近期我还会尝试探索更多的应用场景,以扩展AI助手的用途。包括不限于:
- Obsidian 知识库 AI 插件,实现:
- 基于知识库的问答;
- 笔记的智能关联;
- AI 辅助写文章
- 部署 lobe-chat, 以实现:
- 基于知识库的问答;
- 丰富的插件;
- 丰富的 AI 助手;
- 随时随地访问;
- 聊天记录保存
- 电脑桌面端/移动端 AI 助手选型
- 运维及监控告警 + AI = AIOps
- Kubernetes + AI
- 编程 + AI
- Linux Shell Terminal + AI
- 工作流 Workflow + AI
- 智能家居(小米音箱) + AI
- ...
通过实践, 进一步体会 AI 在各个领域的广泛的应用前景和价值。
📚参考文档
- GitHub repo: chatgpt-on-wechat
- chatgpt-on-wechat 公众号对接文档
- 微信公众号平台
- 阿里云ECS和安全组
- 智谱AI平台
- EWhisper上我的自我介绍
- chatgpt-on-wechat 配置说明