AI智能体|我把Kimi接入了个人微信

大家好,我是无界生长。

最近加入AI学习交流群的小伙伴越来越多,我打算在微信群接入一个聊天机器人,让它协助管理微信群,同时也帮忙给群友解答一些问题。普通的群聊机器人肯定是不能满足需求的,得上AI大模型,不然档次太低了。经过一番调研后,发现有现成的技术方案能满足需求,直接上手进行部署测试,流程成功跑通。昨天的文章《AI智能体|手把手教你申请一个Kimi(Moonshot)的API KEY》介绍了如何申请Kimi的API KEY,今天分享一下如何把Kimi接入个人微信,充当聊天机器人。本文会出现一些技术术语,有技术基础容易上手一些,不太懂技术也不用担心,按照步骤一步步操作,完全可以学会。学会了的话,欢迎分享转发!

前提

  1. 一个微信号
  2. 一个有余额的Kimi账号
  3. 一台linux服务器/开发机

说明:

  1. 微信号建议注册一个微信小号,懂的都懂。不建议用大号测试!
  2. Kimi账号在Moonshot官网使用手机号注册,新用户有15元代金券
  3. 调用Kimi的api,对机器配置要求不高,无需GPU资源,普通配置即可

流程梳理

  1. 资源准备
    1. 账号资源
    2. 服务器资源
  2. 部署Cow项目
    1. 安装Anaconda
    2. 创建并激活python虚拟环境
    3. 安装Cow项目依赖包
    4. 修改配置
    5. 启动项目
    6. 绑定微信
    7. 效果测试

Cow开源项目

项目介绍

这里引用官方文档

chatgpt-on-wechat(简称CoW)项目是基于大模型的智能对话机器人,支持微信公众号、企业微信应用、微信、飞书、钉钉接入,可选择GPT3.5/GPT4.0/Claude/Gemini/LinkAI/ChatGLM/KIMI/文心一言/讯飞星火/通义千问/LinkAI,能处理文本、语音和图片,通过插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业AI应用。

项目地址

GitHub - zhayujie/chatgpt-on-wechat: 基于大模型搭建的聊天机器人,同时支持 微信 公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/通义千问/Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。

安装部署

Cow项目支持四种部署方式:

  1. 本地运行:一般用于功能调试,程序退出Bot就失效了,不适合长期部署;
  2. 服务器部署:操作相对麻烦一些,也是我们演示的安装部署方式,挑难的做才有挑战性
  3. Docker部署:依赖docker环境,安装部署简单
  4. Railway部署:支持一键部署,账号不充钱无法成功部署

服务器部署

我这里使用的是ModelScope提供的免费CPU实例进行演示,实例申请参考:纯福利|手把手教你如何白嫖免费的GPU资源(二)。在其他云平台提供的服务器上操作类似,不逐一演示。

启动实例

登录ModelScope账号,点击“我的NoteBook”,在“魔搭平台免费实例”标签页,选择“PAI-DSW”的CPU实例,预装镜像选择“ubuntu20.04-py38-torch2.0.1-tf2.13.0-1.9.5”,然后点击“启动实例”按钮,我这里实例已经启动了,所以截图中没有“启动实例”按钮

实例启动成功后,点击“查看Notebook”按钮,进入工作台,注意红色箭头指向的“Terminal”图标

点击“Terminal”,连接服务器,默认工作路径是在 /mnt/workspace 目录下

安装Anaconda

下载Anaconda安装脚本
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

执行Anaconda安装脚本
bash Anaconda3-2023.09-0-Linux-x86_64.sh
安装过程中,会有询问,直接“yes”回车,默认安装路径是:/root/anaconda3

更新环境变量
source ~/.bashrc

创建并激活python虚拟环境

使用anaconda创建python3.8的虚拟环境,名称为chat
/root/anaconda3/bin/conda create -n chat python=3.8

激活chat
conda activate chat

安装Cow项目依赖包

从github拉取项目代码
git clone https://github.com/zhayujie/chatgpt-on-wechat

进入项目代码目录
cd chatgpt-on-wechat

安装必要依赖
pip3 install -r requirements.txt

安装可选依赖,推荐安装
pip3 install -r requirements-optional.txt

等待依赖成功安装完成后,进入下一步

修改配置

从配置模板复制一份配置
cp config-template.json config.json

修改config.json配置
vim config.json

看不懂配置没关系,可以复制我修改好的配置,稍微替换几个地方的内容就能用

{
  "channel_type": "wx",
  "model": "moonshot-v1-8k",
  "moonshot_api_key": "API_KEY",
  "proxy": "",
  "hot_reload": false,
  "single_chat_prefix": [
    "无心",
    "@无心"
  ],
  "single_chat_reply_prefix": "[无心] ",
  "group_chat_prefix": [
    "@无心"
  ],
  "group_name_white_list": [
    "无界生长AI学习交流群"
  ],
  "speech_recognition": false,
  "group_speech_recognition": false,
  "voice_reply_voice": false,
  "conversation_max_tokens": 2500,
  "expires_in_seconds": 3600,
  "character_desc": "你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
  "temperature": 0.7,
  "subscribe_msg": "感谢您的关注!\n这里是AI智能助手,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。",
  "use_linkai": false,
  "linkai_api_key": "",
  "linkai_app_code": ""
}

需要替换的内容:

  1. API_KEY替换为你在Moonshot上申请到的API KEY的内容
  2. 无心替换为你的微信号的昵称
  3. 无界生长AI学习交流群替换为你的微信群聊名称,如果想对所有群聊生效,可以直接填写 "group_name_white_list": ["ALL_GROUP"]

官方文档与最新的可用配置有一定的gap,如果你想详细了解可用配置,可以查阅:chatgpt-on-wechat/config.py at master · zhayujie/chatgpt-on-wechat · GitHub

启动项目

执行下面指令启动项目
nohup python3 app.py & tail -f nohup.out

绑定微信

启动成功后,程序运行日志会打印4条url链接和一个二维码。

点击任意一个链接,扫描对应的二维码;或者直接扫描日志打印的二维码,都可以绑定微信,记得使用微信小号扫码。

绑定成功后,程序会打印一小段日志,如果你的打印结果和下图一致,恭喜你部署成功了

效果测试

在微信群@绑定Kimi的微信小号,发送消息“介绍一下你自己”,略微等待一会,得到回复。

与此同时,程序也会打印日志

常见问题

关键字: wxsid

Please press confirm on your phone.
[ERROR][2023-06-12 07:40:25][app.py:52] - App startup failed!
[ERROR][2023-06-12 07:40:25][app.py:53] - 'wxsid'
Traceback (most recent call last):
  File "/data/chatgpt-on-wechat-master/app.py", line 50, in run
    channel.startup()
  File "/data/chatgpt-on-wechat-master/channel/wechat/wechat_channel.py", line 115, in startup
    itchat.auto_login(
  File "/data/chatgpt-on-wechat-master/lib/itchat/components/register.py", line 38, in auto_login
    self.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,
  File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 61, in login
    status = self.check_login()
  File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 154, in check_login
    if process_login_info(self, r.text):
  File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 206, in process_login_info
    core.loginInfo['wxsid'] = core.loginInfo['BaseRequest']['Sid'] = cookies["wxsid"]
KeyError: 'wxsid'
^C[1]+  Done                    nohup python3 app.py

微信小号没有进行实名认证,功能受限,需要在微信给小号进行实名认证,再扫码绑定微信号。

总结

本文详细介绍了如何将基于大模型的智能对话机器人chatgpt-on-wechat(CoW)接入到个人微信中,以协助管理微信群并解答问题,包括资源准备、部署Cow项目、安装Anaconda、创建并激活python虚拟环境、安装项目依赖包、修改配置、启动项目、绑定微信和效果测试等步骤。如果看完还没学会的话,可以私信我。学会了的话,欢迎转发分享给你的朋友们。


我是无界生长,如果你觉得我分享的内容对你有帮助,麻烦点个关注,带你一起玩转AI!

AI学习资料在微信公众号:无界生长,个人微信:wjsz2070



在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Python 中的 TensorFlow 检测垃圾短信

前言 系列专栏:机器学习:高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

绘唐3启动器怎么启动一键追爆款3正式版

绘唐3启动器怎么启动一键追爆款3正式版 工具入口 一.文案助手: 【注意!!】如果图片无显示,一般情况下被杀毒拦截,需关闭杀毒软件或者信任文件路径。 win10设置排除文件: 1.【新建工程】使用前先新建工程…

【Flutter】极光推送配置流程(VIVO/OPPO/荣耀厂商通道) 章三

前言 很高兴大家来看小编写的文章~~ 继【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 继【Flutter】极光推送配置流程(小米厂商通道) 章二 接下配置VIVO/OPPO/华为荣耀的厂商通道 所有截图来源于公司项目,所以会有大量马赛克&am…

5.13作业

使用消息队列实现的2个终端之间的互相聊天 并使用信号控制消息队列的读取方式: 当键盘按ctrlc的时候,切换消息读取方式,一般情况为读取指定编号的消息, 按ctrlc之后,指定的编号不读取,读取其他所有编号的…

Pikachu 靶场 URL 重定向通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,…

Qt与QWebEngineView 交互-调试窗口-JS拓扑图完整示例参考

1:介绍: Qt与QWebEngineView的交互 简介之前文章解释过,链接在下面 传送门:Qt与QWebEngineView 交互完整示例参考_qt qwebview-CSDN博客 一般在使用这种方式时,可能会出现各种问题而不好调试,如果能够像…

【408精华知识】提高外部排序速度的三种方式

文章目录 一、败者树二、置换-选择排序三、最佳归并树 一、败者树 还没写完… 二、置换-选择排序 三、最佳归并树 写在后面 这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评…

基于Echarts的大数据可视化模板:服务器运营监控

目录 引言背景介绍研究现状与相关工作服务器运营监控技术综述服务器运营监控概述监控指标与数据采集可视化界面设计与实现数据存储与查询优化Echarts与大数据可视化Echarts库以及其在大数据可视化领域的应用优势开发过程和所选设计方案模板如何满足管理的特定需求模板功能与特性…

I. Integer Reaction

Problem - I - Codeforces 看到最小值最大值,二分答案。 思路:每次二分时开两个集合,分别表示 0 0 0颜色和 1 1 1颜色。如果是 c c c颜色,先将值存入 c c c颜色,之后在 ! c !c !c颜色中找大于等于 m i d − a mid - a…

.NET开源、功能强大、跨平台的图表库LiveChart2

LiveCharts2 是 从LiveCharts演变而来,它修复了其前身的主要设计问题,它专注于在任何地方运行,提高了灵活性,并继承LiveCharts原有功能。 极其灵活的数据展示图库 (效果图) 开始使用 Live charts 是 .Net 的跨平台图表库,请访问 https://livecharts.dev 并查看目标平…

括号匹配(栈)

20. 有效的括号 - 力扣(LeetCode) c有栈 但是C语言没有 到那时我们可以自己造 这里的代码是直接调用栈,然后调用 等于三个左括号的任意一个 我们就入栈 左括号(入栈) 右括号 取出栈顶数据,出栈并且进行匹配…

用Transformers实现简单的大模型文本生成

根据输入的prompt,生成一段指定长度的文字。Llama跑起来太慢了,这里用GPT-2作为列子。 from transformers import GPT2LMHeadModel, GPT2Tokenizer import torchtokenizer GPT2Tokenizer.from_pretrained("gpt2") model GPT2LMHeadModel.fr…

VC 编程开发中的 封装类 :log日志类 和SQL server 操作类 源代码

VC 编程开发中的 封装类 :日志类 和SQL server 操作类 源代码 在VC(Visual C)开发中,日志文件输出是一个至关重要的环节,它对于程序调试、问题排查以及系统监控等方面都具有不可替代的作用。以下是对日志文件输出在VC开…

4.2 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”

方法一:在程序内部设置两个字符串内容,终端返回是否匹配 运行效果: 思路: 1、先比较两个字符串的长度,如果长度不一样,则两组字符串肯定不匹配;如果长度一样,再进行内容的匹配 2、如…

CSS学习笔记之中级教程(一)

1、CSS 布局 - display 属性 1.1 display 属性 display 属性是用于控制布局的最重要的 CSS 属性。 display 属性规定是否/如何显示元素。 每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。 …

R语言数据分析案例-巴西固体燃料排放量预测与分析

1 背景 自18世纪中叶以来,由于快速城市化、人口增长和技术发展,导致一氧化二氮(N2O)、 甲烷(CH4)和二氧化碳(CO 2)等温室气体浓度急剧上升,引发了全球变暖、海平面上 升…

计算机毕业设计hadoop+spark+hive知识图谱bilibili视频数据分析可视化大屏 视频推荐系统 预测系统 实时计算 离线计算 数据仓库

研究意义 随着互联网的快速发展,人们面临着海量的视频内容,如何从这些繁杂的视频中找到自己感兴趣的内容成为一个重要的问题[1]。推荐系统作为一种解决信息过载问题的重要工具,能够根据用户的历史行为和偏好,预测用户可能感兴趣的…

基于FPGA的数字信号处理(12)--定点数的舍入模式(3)收敛取整convergent

前言 在之前的文章介绍了定点数为什么需要舍入和几种常见的舍入模式。今天我们再来看看另外一种舍入模式:收敛取整convergent。 10进制数的convergent convergent: 收敛取整。它的舍入方式和四舍五入非常类似,都是舍入到最近的整数&#x…

通过金山和微软虚拟打印机转换PDF文件,流程方法及优劣对比

文章目录 一、WPS/金山 PDF虚拟打印机1、常规流程2、PDF文件位置3、严重缺陷二、微软虚拟打印机Microsoft Print to Pdf1、安装流程2、微软虚拟打印机的优势一、WPS/金山 PDF虚拟打印机 1、常规流程 安装过WPS办公组件或金山PDF独立版的电脑,会有一个或两个WPS/金山 PDF虚拟…

leetcode-151 翻转字符串里的单词

一、题目描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 输入:s "the sky is blue" 输出:"blue is sky the"输入&#…