手把手搭建微信机器人,帮你雇一个24小时在线的个人 AI 助理(上)

上一篇,带领大家薅了一台腾讯云服务器:玩转云服务:手把手带你薅一台腾讯云服务器,公网 IP。

基于这台服务器,今天我们一起动手捏一个基于 LLM 的微信机器人。

0. 前置准备

除了自己常用的微信账号以外,还需要准备一个微信小号(强烈建议用小号,否则有封号的风险,且小号须实名认证!)。

如何实名认证:在手机端微信中,依次点击:我 -> 服务 -> 钱包 -> 底部的身份信息。

最终我们会把这个小号改造成一个基于 LLM 的微信机器人,它可以在你的微信聊天窗口中,回答你的一切问题,就像你用 GPT/Kimi 的聊天窗口一样,不过它嵌入在你的微信 APP 中,随时唤起,使用更加方便。

此外,我们还可以通过加入其他插件,赋予它更多智能,将其打造成一个个性化的 AI 助理,帮你完成更多复杂任务。

1. 准备 LLM 模型

如果你有 OpenAI 的账号,能够使用 GPT 自然是再好不过的。

如果没有,也没关系,国内也有很多 GPT 平替。

本文,将以 智谱的 GLM 为例,带大家走完整个流程,后续你想换用任意 LLM 都一样的~

智谱 GLM 传送门:https://open.bigmodel.cn/

进入后,注册一个账号,认证成功后,新用户会赠送 18 元额度,后续使用过程中注意账户余额哦,不过体验是绰绰有余了~

接下来,需要拿到 GLM 的 API Key。

如果之前注册过,直接在这里取用:

如果没有,点击这里,新生成一个:

2. 配置环境

在上一篇手把手带你薅一台云服务器,我们已经新建了一个名叫 ai 的 Python 虚拟环境。

如果你也参照上一篇配置好了 VS Code 远程登陆,那么进来后默认就是 ai 的虚拟环境,后面在这里进行配置文件的修改将会非常方便:

接下来,我们直接在这个环境中进行项目安装。

2.1 chatgpt-on-wechat 安装

本次应用,将主要基于 chatgpt-on-wechat 这个开源项目。

先通过 git 将这个项目下载下来:

git clone https://github.com/zhayujie/chatgpt-on-wechat

然后安装必要的包:

# 进入项目目录
cd chatgpt-on-wechat/
# 更换 pypi 源,加速库的安装(强烈推荐)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
pip install -r requirements-optional.txt
pip install zhipuai

2.2 修改配置文件

首先在项目根目录下,将模板配置文件复制一份:

# 复制一份配置文件,方便修改
cp config-template.json config.json

如果你已经实现了 VS Code 远程登陆,在 VS Code 编辑器中修改非常方便,如下图所示:右侧栏是模板配置,左侧是我们复制的配置文件,因为我们的 LLM 采用的是 GLM,所以这里修改为zhipu_ai 的api key 和 url。

config.json 还有几个参数需要注意一下:

  • “single_chat_prefix”: [“bot”,“@bot”]:代表私聊时,你召唤机器人时要加的前缀,如果不需要任何前缀,也可以置空;
  • “single_chat_reply_prefix”: "[bot] ":代表私聊时,机器人回复你时,要加的前缀,同样可以置空
  • “group_chat_prefix”: [“@bot”]:代表群聊时,你召唤机器人时要加的前缀
  • “group_name_white_list”: [“ALL_GROUP”]:代表哪些群里可以使用机器人
  • “character_desc”: 你给机器人的人设提示词

此外,除了在 VS Code 编辑器中修改以外,宝塔面板中也支持文件修改,左侧菜单栏找到 文件,找到项目文件所在目录,双击config.json进行修改,修改后记得手动保存:

3. 开始部署

3.1 服务启动

回到项目根目录,采用如下命令:

# 启动服务,需要回到项目根目录
cd ../..
# 新建日志文件
touch nohup.out
# 后台挂起启动命令,即使终端被kill,服务也不会中断;
# tail -f nohup.out 代表实时打印日志最后几行
nohup python app.py & tail -f nohup.out

3.2 服务测试

服务启动成功后,你会在终端看到如下输出:

用你的微信小号扫码登录,本质上是在这台服务器上启动一个你的微信客户端。

一旦出现 Start auto replying ,代表启动成功了,此时你可以用你的微信大号,给小号私聊发一条信息,稍等片刻,会收到已经被机器人托管的小号给你的回复。

同时在终端,也会看到如下日志信息。

至此,你扫码的微信已经变成一个机器人了,需要注意的是:必须保证小号的手机微信在线,否则远端也会下线。

3.3 报错解决

如果启动失败,需要找到并解决 bug 后再重新启动,为此可以通过如下命令找到服务对应的进程ID,然后 kill 掉。

ps aux |grep python
kill -9 91548

写在最后

至此,我们一起走完了 “搭建一个微信机器人” 的完整流程。

也许看到这里的你,会有个疑问:拿到这个微信机器人,有什么用?

上述步骤只是带大家快速走完整个流程,并不代表微信机器人只能简单地完成对话任务~

chatgpt-on-wechat 项目中还支持多种插件,从而实现查天气、查快递、设置定时提醒等。。。

先放两张图给大家直观感受下~

敬请期待(下篇预告): chatgpt-on-wechat插件安装和使用,给微信机器人装上三头六臂。

如果本文对你有帮助,欢迎点赞收藏备用!

我是猴哥,一直在做 AI 领域的研发和探索,会陆续跟大家分享路上的思考和心得,以及干货教程。

新朋友欢迎关注 “猴哥的AI知识库” 公众号,下次更新不迷路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盘点8款国内顶尖局域网监控软件(2024年国产局域网监控软件排名)

局域网监控软件对于企业网络管理至关重要,它们可以帮助IT部门维护网络安全,优化网络性能,同时监控和控制内部员工的网络使用行为。以下是八款备受推崇的局域网监控软件,每一款都有其独特的优势和适用场景。 1.安企神软件 试用版领…

VSCode远程服务器如何上传下载文件(超方便!)

方法一: 1、在VSCode应用商店安装SFTP插件 2、然后就可以直接把文件拖进VSCode即可,如下图所示: 这里的目录是我远程服务器上的目录,可以直接将要上传的文件直接拖进需要的文件夹 3、如果要从远程服务器上下载文件到本地&#x…

安装Gradle

官网文档 https://gradle.org/ 腾讯下载镜像:https://mirrors.cloud.tencent.com/gradle/ 文档:https://docs.gradle.org/current/userguide/userguide.html 命令行文档:https://docs.gradle.org/current/userguide/command_line_interface.…

Java高级重点知识点-21-IO、字节流、字符流、IO异常处理、Properties中的load()方法

文章目录 IOIO的分类 字节流字节输出流【OutputStream】字节输入流【InputStream】图片复制 字符流字符输入流【FileReader】字符输出流【FileWriter】 IO异常的处理(扩展知识)Properties属性集(java.util) IO Java中I/O操作主要是指使用 java.io 包下的…

《侃侃而谈 · 关于接外单的一些事》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

期末成绩发布方式

期末考试结束后,成绩单的发放总是让老师们头疼不已。想象一下,每个学生的成绩都需要老师一个个私信给家长,不仅耗时耗力,而且极易出错。 在传统的成绩单发放方式中,老师往往需要通过电子邮件、短信或者微信等方式&…

【Rust基础入门】Hello Cargo

文章目录 前言Cargo是什么?Cargo的作用查看cargo版本使用cargo创建项目Cargo.toml文件cargo build命令cargo runcargo check为发布构建 总结 前言 在Rust编程中,Cargo扮演着至关重要的角色。它是Rust的包管理器,负责处理许多任务&#xff0c…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告:基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统,该系统可以通过按键进行手动控制,并能根据环境光强度自动调节台灯亮度。此外,系统还具备倒计时关灯功能。 器件连接 51单片…

软件运维服务方案(Word原件2024)

软件运维服务方案(Word原件) 1. 服务简述 我们提供全面的软件运维服务,确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务,灵活响应客户需求。 1.3 服务要求 高效响应&am…

双向DFS——AcWing 171. 送礼物

双向DFS 定义 双向深度优先搜索(Bi-directional Depth First Search, BD-DFS)是一种在图或树中寻找两点间路径的算法。与传统的单向DFS不同,BD-DFS同时从起始节点和目标节点出发进行搜索,使用两个DFS过程。一个向前探索从起点到…

从一个(模型设计的)想法到完成模型验证的步骤

从有一个大型语言模型(LLM)设计的想法到完成该想法的验证,可以遵循以下实践步骤: 需求分析: 明确模型的目的和应用场景。确定所需的语言类型、模型大小和性能要求。分析目标用户群体和使用环境。 文献调研&#xff1a…

swiftui中常用组件picker的使用,以及它的可选样式

一个可选项列表就是一个picker组件搞出来的,它有多个样式可以选择,并且可以传递进去一些可选数据,有点像前端页面里面的seleted组件,但是picker组件的样式可以更多。可以看官方英文文档:PickerStyle | Apple Developer…

【对接支付宝支付详细流程】

下面示例使用的是支付宝的网页支付,最终的效果如图: 1.前置条件 对接支付宝你需要了解的知识点 1.加密算法 对称加密和非对称加密,RSA2加密算法,签名验证 2.支付宝平台openid unionId的概念 https://opendocs.alipay.com/pre…

文件管理下:文件函数的学习

前言 Hello,小伙伴们你们的作者君又来了,上次我们简单介绍了文件的坐拥并简单提到了数据的读取,和C语言的默认流的作用,今天我将继续带领大家探索文件的奥秘,大家准别好了吗? 在内容开始之前还是按照惯例&#xff0c…

初识java—jdk17的一些新增特性

文章目录 前言一 : yield关键字二 :var关键字三 :密封类四 :空指针异常:五:接口中的私有方法:六:instanceof关键字 前言 这里介绍jdk17相对于jdk1.8的部分新增特性。 一 &#xff…

QT使用QGraphicsView绘图 重写QGraphicsObject类实现点在QPainterPath路径上移动动画效果

闲谈:眨眼间,2024年就过去了一半了,年前定下的计划一个都没完成,乘着有空,把之前学习的内容和示例先总结了。 目录 导读SVG 转QPainterPath 路径获取QPainterPath指定长度时的坐标。重写QGraphicsObject类 实现点图元Q…

stm32精密控制步进电机(基础篇)

众所周知,步进电机由于使用脉冲控制,会比直流电机的控制稍难一些,但开环控制时也更加稳定。 落到做项目的时候,目前来说我都会先考虑步进电机,再去考虑直流,无刷这样的电机。包括毕设时所用的机械臂也是用…

并发处理 优先图和多重图

优先图(Precedence Graph)视图可串性多重图(Polygraph) 优先图(Precedence Graph) 优先图用于冲突可串性的判断。 优先图结构&#xff1a; 结点 (Node)&#xff1a;事务&#xff1b;有向边 (Arc): Ti → Tj &#xff0c;满足 Ti <s Tj&#xff1b; 存在Ti中的操作A1和Tj…

开源全新H5充值系统源码/自定义首页+充值页面/灵活对接上游渠道接口

开源全新H5充值系统源码&#xff0c;系统基于thinkphp框架开发&#xff0c;功能已全完善&#xff0c;可灵活对接其他上游渠道接口&#xff0c;默认对接了大猿人接口&#xff0c;另外可无限制自定义创建充值页面&#xff0c;首页支持后台自定义修改&#xff0c;支持三级分销&…

史上最全的自抗扰控制(ADRC)学习资料

史上最全的自抗扰控制&#xff08;ADRC&#xff09;学习资料 需要的私信我~ 需要的私信我~ 需要的私信我~ ​ 本文将作者近些年来学习ADRC算法的学习资料进行汇总&#xff0c;整理了这一版相对较全的学习资料&#xff0c;包含参考文献以及仿真案例&#xff0c;适合初学者入门&…