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 runchannel.startup()File "/data/chatgpt-on-wechat-master/channel/wechat/wechat_channel.py", line 115, in startupitchat.auto_login(File "/data/chatgpt-on-wechat-master/lib/itchat/components/register.py", line 38, in auto_loginself.login(enableCmdQR=enableCmdQR, picDir=picDir, qrCallback=qrCallback,File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 61, in loginstatus = self.check_login()File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 154, in check_loginif process_login_info(self, r.text):File "/data/chatgpt-on-wechat-master/lib/itchat/components/login.py", line 206, in process_login_infocore.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



在这里插入图片描述

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

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

相关文章

HFSS学习-day5-边界条件

边界条件 概述边界条件类型1、理想导体边界条件(Perfect E)2、理想磁边界条件(Perfect H)3、有限导体边界条件(Finite Conductivity)4、辐射边界条件(Radiation)5、对称边界条件&…

Java入门基础学习笔记22——程序流程控制

程序流程控制:控制程序的执行顺序。 程序有哪些执行顺序? 顺序、分支和循环。 分支结构: if、switch 循环: for、while、do-while 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码…

Django开发实战之定制管理后台界面及知识梳理(下)

接上一篇:Django开发实战之定制管理后台界面及知识梳理(中) 1、前台设置 1、隐藏路由 当你输入一个错误地址时,可以看到这样的报错: 从这样的报错中,我们可以看到,这个报错页面暴漏了路由&a…

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

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

cookie、session、token、表单、json、jsonp、websocket、ajax都是什么

前后端数据交互的几种方式 1.cookie Cookie是服务器保存在客户端的一小段数据,(使用Cookie的前提是客户端浏览器允许使用Cookie并对此做出相应的设置。) cookie是一种存储在用户计算机上的小型数据文件,常用于在web应用程序中跟…

Prompt Engineering ,Fine-tuning , RAG ?

Prompt Engineering ,Fine-tuning , RAG 总结:1 prompt engineering2 RAG (Retrieval Augmented Generation)**RAG特点****RAG优势****RAG劣势** 3 微调(Fine-tuning)**微调特点****微调优势****微调劣势** 4 三者共性和区别5 RAG和微调的适应…

泽众一站式性能测试平台P-One,产品菜单和功能优化升级预告,用户操作更便捷

泽众一站式性能测试平台P-One为了进一步提升用户的使用体验,本轮将对P-One的产品菜单和功能进行优化升级。 首先给大家简单介绍一下P-One产品: P-One 是泽众软件自主研发的一套一站式性能测试平台软件产品。实现了集管理、设计、压测、监控以及分析于一体…

每日OJ题_贪心算法四⑧_力扣767. 重构字符串

目录 力扣767. 重构字符串 解析代码 力扣767. 重构字符串 767. 重构字符串 难度 中等 给定一个字符串 s ,检查是否能重新排布其中的字母,使得两相邻的字符不同。 返回 s 的任意可能的重新排列。若不可行,返回空字符串 "" 。 …

Docker-compose部署TRX节点

1、编写Dockerfile rootubuntu:~# mkdir /data/docker-compose/trx -p rootubuntu:~# cd /data/docker-compose/trx/ rootubuntu:/data/docker-compose/trx# ls rootubuntu:/data/docker-compose/trx# vim Dockerfile rootubuntu:/data/docker-compose/trx# cat Dockerfile FR…

数据结构(Java实现):顺序表

目录 1. 线性表2.顺序表2.1自己实现一个List接口2.2 IList接口的实现2.3 测试代码 1. 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、…

《云原生安全攻防》-- 构建云原生攻防场景

在本节课程中,我们将学习云原生攻防场景的构建。为了研究云原生安全攻击案例,我们需要搭建一个云原生攻击测试环境,以便进行攻防研究和攻击手法的复现。 在这个课程中,我们将学习以下内容: 构建云原生攻防场景&#xf…

求两个数的差值

描述 根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。 接口信号图如下: 使用Verilog HDL实现以上功能并编写testbench验证。 …