将AI Bot接入微信,做AI对话机器人
大家好,我是Edison。
之前学习了Coze这个AI Agent智能体开发台创建了一些Agent,除了可以将其发布到微信公众号做对话机器人之外,我看到了许多直接将其集成到微信对话或群聊中的案例。
刚好我对这个话题比较感兴趣,因此也尝试将Coze AI Bot接入到了微信,今天就和你分享下如何弄的吧。
前提条件
为了实现今天的实践,你需要以下基本条件:
- 一台轻量级的云服务器(1C2G 或 2C2G都可以),安装了docker和docker compose这两个基础服务
- 有Coze的账号,且创建了一个Bot
- 一个微信小号(不建议使用个人大号防止被封,而且小号需要绑定手机认证过)
接下来就开始正式的步骤吧。Coze中发布你的AI Bot
这里假设我们在Coze中创建了一个MES系统运维助手,我们为其设置了人设和回复逻辑,还给它添加了一个小知识库(基于csv格式的过往系统Ticket记录),同时还添加了一个数据库来记录用户提出的新Ticket。它的作用就是,当用户向它报告遇到的MES系统问题或报错信息时,它会从过往的Ticket记录中找到类似的处理记录和解决方案快速告知用户,如果没有找到 或者 找到的没有满足 用户的需求,会引导用户快速创建一个Ticket并存入数据库供IT工程师后续处理。
具体内容,我这里就不赘述了,有兴趣的童鞋可以好好阅读下《基于Coze创建AI Agent》来了解如何基于Coze创建AI助手。
为了能够用到这个AI助手,我们需要发布一下它:这里我们选择发布为API

如果是第一次发布,你还需要进行以下配置,点击“配置”按钮进入令牌管理界面,创建一个新令牌。

创建完成后,请将生成的Token(pat- 开头的一串字符)记录下来,因为后面就看不到了。
此外,再记录一下你的AI Bot的ID号,它在你的coze AI bot的url中,如下图中圈中的部分:

综述,你现在已经完成了AI Bot的发布API操作,获取到了两个重要的参数:
Bot ID
Coze API Token
个人云服务器配置
假设我们有一台云服务器(2C2G),Linux CentOS系统,已经安装了docker 和 docker-compose 两个基础服务组件。为了更好地管理容器,这里建议安装一个宝塔Linux面板,安装方式如下:
wget -O install.sh https://download.bt.cn/install/install_lts.sh && bash install.sh ed8484bec
安装完成后获取到用户名和密码,然后就可以打开宝塔面板进行登录了,默认端口号是19302,打开浏览器访问如下图所示:

部署chatpgt-on-wechat项目chatgpt-on-wechat (cow)
项目是使用 ChatGPT 搭建的智能聊天机器人,在 GPT3.5/4.0 API 及 itchat 框架的基础上实现,支持个人微信、公众号、企业微信部署,能生成文本、语音和图片,访问操作系统和互联网。chatpgt-on-wechat支持多种部署模式,这里我们选择最简单的docker部署方式。你可以基于下面的docker-compose.yml文件进行修改:
version: "2.0"
services:
siemo-ai-bot:
image: zhayujie/chatgpt-on-wechat
container_name: siemo-ai-bot
restart: always
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: "pat_v4sqsXleDLruN7G************" # 这里改为你的Coze API Token
MODEL: "" # 留空即可
OPEN_AI_API_BASE: "http://coze2openai:3000/v1" # 请不要修改此参数值
PROXY: "" # 留空即可
SINGLE_CHAT_PREFIX: '[""]'
SINGLE_CHAT_REPLY_PREFIX: '"[AI回复] "' # 建议不修改
GROUP_CHAT_PREFIX: '["@西小莫AI助手"]' # 这里改为你的微信小号的昵称
GROUP_NAME_WHITE_LIST: '["西小莫GPT测试群", "EdisonTalk交流群"]' # 这里改为你想要AI对话的群组名称
IMAGE_CREATE_PREFIX: '["Drawing"]' # 请不要修改此参数值
CONVERSATION_MAX_TOKENS: 1000 # 请不要修改此参数值
SPEECH_RECOGNITION: "False" # 请不要修改此参数值
CHARACTER_DESC: "你是基于大语言模型的AI机器人,旨在回答并解决用户在使用MES系统时遇到的问题,并且可以使用多种语言与人交流。" # 按需修改
EXPIRES_IN_SECONDS: 3600 # 请不要修改此参数值
USE_GLOBAL_PLUGIN_CONFIG: "True" # 请不要修改此参数值
USE_LINKAI: "False" # 请不要修改此参数值
LINKAI_API_KEY: "" # 请不要修改此参数值
LINKAI_APP_CODE: "" # 请不要修改此参数值
coze2openai:
image: andywuwu/coze2openai
container_name: coze2openai
restart: always
ports:
- "3000:3000"
environment:
- BOT_ID=744455************ # 这里改为你额Bot ID
- COZE_API_BASE=api.coze.cn # 请不要修改此参数值
这里解释下上面的文件:
这里定义了两个要运行的服务,一个是chatgpt-on-wechat,另一个是coze2openai,这是因为coze api并不是严格按照openai标准格式来定义的,所以我们需要运行一个coze2openai的服务来进行适配转发。因此,请不需要修改OPEN_AI_API_BASE 这个变量值。
在设置 PREFIX 这类变量时,建议跟微信小号的昵称保持一致,等到完全跑通之后再慢慢修改,否则会阻碍你的实践过程。
有了上面的理解,我们就可以将其部署到服务器中了。这里我们借助宝塔面板来操作,下面是详细的操作步骤:
第一步,添加一个编排模板。

第二步,将内容复制进去并添加备注。

第三步,添加容器编排 并 启动该容器编排。

然后,你就可以看到两个服务的启动状态了:

在ai-bot的日志中找到二维码,使用你的微信小号进行登录:

愉快测试
私聊:

群聊:

小结
本文介绍了如何将Coze AI Bot接入微信实现AI对话机器人的过程,相信你的微信群里 有了这样一位AI助手之后,会有不一样的对话体验。
需要注意的是:这不是目前微信官方推荐或认可的方式,所以尽量不要使用自己的大号,而且也别让小号一直挂着,玩玩就行了,不要太认真。真要将其用到自己的业务中,建议走企业微信 或 微信客服 等官方认可的方式。
参考资料
胡辣汤淹水煎包,《ChatGPT on WeChat:技术介绍与部署指南》
程序员安仔,《Coze AI机器人接入我的微信群了》

将AI Bot接入微信,做AI对话机器人的更多相关文章
- 为什么很多国内公司在做 AI 芯片?
据网上搜到的新闻报道,截止2019年,已经有20家企业投入到 AI 芯片的研发中,其中有很多厂商的芯片已经流片甚至商用了.为何有这么多公司在做AI芯片呢?简单来讲就是四个字:有利可图.具体来说有以下三 ...
- 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转
线程安全使用(四) 这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...
- 在Web应用中接入微信支付的流程之极简清晰版
在Web应用中接入微信支付的流程之极简清晰版 背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可. 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布 ...
- 在Web应用中接入微信支付的流程之极简清晰版 (转)
在Web应用中接入微信支付的流程之极简清晰版 背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可. 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布 ...
- 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发
第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...
- Android 第三方应用接入微信平台(2)
微信平台开放后倒是挺火的,许多第三方应用都想试下,毕竟可以利用微信 建立起来的关系链来拓展自己的应用还是挺不错的,可以节约很多在社交方 面的开销,我最近由于实习需要也在研究这个东西,不过发现网上的相关 ...
- Android 第三方应用接入微信平台(1)
关键字:微信开放平台 Android第三方应用接入微信 微信平台开放后倒是挺火的,许多第三方应用都想试下接入微信这个平台, 毕竟可以利用微信建立起来的关系链来拓展自己的应用还是挺不错的,可 以节约 ...
- ios应用接入微信开放平台
前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应 ...
- 1.Node.js 接入微信公众平台开发
一.写在前面的话 Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程 ...
- 前后端分离djangorestframework—— 接入微信模板消息推送
微信 什么是微信也不多说,跟前面的支付宝一样的 微信支付 微信支付也有个沙箱环境,沙箱环境官方文档 由文档中那句很显眼的话所得,即使是测试环境也需要真实的商户号,所以这个就没法想支付宝那样用沙箱账号来 ...
随机推荐
- 【Java】关键字的使用
java中有很多的关键字,他们的使用让Java语言变得更加灵活.易用,下面将介绍Java中最常用的几个关键字并说明其用法. 一.关键字:return--跳出 使用在方法体中,用于:① 结束方法② 针对 ...
- C#元数据的概念,以及一个使用了lambda表达式的简单例子
先看一个例子 假设你写了一个 C# 类库 MathUtils.dll: public class Calculator { public int Add(int a, int b) => a + ...
- kettle安装文件下载(含多版本)
kettle是一款基于java开发的洗数工具,可以通过图像化的操作界面,拖拉拽的操作方式,实现数据导入导出清洗等功能,还支持编写脚本进行数据处理,功能十分强大. 本文主要记录一下kettle各版本下载 ...
- kettle介绍-Step之Return steps metrics
Return steps metrics转换步骤信息统计介绍 转换步骤信息统计步骤可以用于统计当前转换中的其它步骤信息,包括步骤执行后的输入行数.输入行数.读入行数.更新行数等.此步骤可以直接拖入转换 ...
- php 根据时间设置多少小时 ,前天,昨天,多少月,多少年
public static function formatTime($time){ if (is_int($time)) { $time = intval($time); } elseif ($tim ...
- GUI development with Rust and GTK4 阅读笔记
简记 这是我第二次从头开始阅读,有第一次的印象要容易不少. 如果只关心具体的做法,而不思考为什么这样做,以及整体的框架,阅读的过程将会举步维艰. 简略记录 gtk-rs 的书中提到的点.对同一个问题书 ...
- 信息资源管理综合题之“H7N9禽流感-同学有无权利要求政府疫情进行信息公开 和 依据什么法律 和 相关法律的作用是什么 和 结合案例”
一.案例:网络新闻报道某省有一名疑似H7N9禽流感病毒患者就医后不治身亡,于是刘苗红同学写信给该省政府,要求公开H7N9相应时期的信息 1.刘苗红同学有无权利要求省政府对H7N9疫情进行信息公开? 2 ...
- Pandas 实现 Excel 多列 转 多行
也是最近的一个需求, 将一个 Excel 表, 多列转多行, 就把那种行的, 业务人员经常搞的那种垃圾表,给它转为咱熟悉的数据库表的形式, 多列转多行. 还要帮他们处理数据, 恶心得一批, 其实也不一 ...
- 2020年Android面试题含答案
在去年年初的P2P大浪潮中,成了失业人员之一,于是各种准备面试,发现面试题网上很多,但是都是很凌乱的,而且一个地方一点,没有一个系统的面试题库,有题库有的没有答案或者是答案很简洁,没有达到面试的要求. ...
- 8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全
转载自:https://bpsend.net/thread-99-1-1.html 启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序. Debug [[drive:][path] ...