51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

微信公众号:Ai大模型让回复更具智能化

前言 {#前言}

前段时间逛GitHub刷到一个项目:chatgpt-on-wechat,特别有意思。使用大模型搭建微信聊天机器人,基于 GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/LinkAI,支持个人微信、公众号、企业微信、飞书部署,能处理文本、语音和图片,访问操作系统互联网 ,支持基于知识库定制专属机器人。

简单来说就是,利用这些平台的Api接口实现,微信机器人 以及公众号智能回复的功能。

正好想起之前听说星火有提供体验包,就打算接上我那个人公众号试试。效果还不错,可以多个模型切换,管理模式等等,并且带关键词回复(和配置),原本的功能也不会丢失。
使用体验方面,除了感觉有点延迟之外,也不知道是程序上的问题,还是我用的是测试机比较拉胯(服务器121配置),其他方面倒没有碰到过什么问题了。

chatgpt-on-wechat {#chatgpt-on-wechat}

ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应,而且再也不用担心女朋友影响我们 ~~打游戏~~ 工作了。

功能支持 {#功能支持}

截稿前(23.11.28),最新版本支持的功能:

  • 多端部署:有多种部署方式可选择且功能完备,目前已支持个人微信、微信公众号和、业微信、飞书等部署方式
  • 基础对话:私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持 GPT-3.5, GPT-4, claude, 文心一言, 讯飞星火
  • 语音能力:可识别语音消息,通过文字或语音回复,支持 azure, baidu, google, openai(whisper/tts) 等多种语音模型
  • 图像能力:支持图片生成、图片识别、图生图(如照片修复),可选择 Dall-E-3, stable diffusion, replicate, midjourney, vision模型
  • 丰富插件:支持个性化插件扩展,已实现多角色切换、文字冒险、敏感词过滤、聊天记录总结、文档总结和对话等插件
  • Tool工具:与操作系统和互联网交互,支持最新信息搜索、数学计算、天气和资讯查询、网页总结,基于 chatgpt-tool-hub 实现
  • 知识库:通过上传知识库文件自定义专属机器人,可作为数字分身、领域知识库、智能客服使用,基于 LinkAI 实现

部署方式 {#部署方式}

| 运行方式 | 需要的资源 | 优势 | 劣势 | |:----------|:-----------------------|:----------------|:-------------------| | Docker部署 | 服务器 + docker环境 | 不用关心python环境和依赖 | 插件配置稍麻烦 | | 本地运行 | 个人机器 + 本地代理 + python环境 | 方便本地代码调试 | 不适合长时间稳定运行 | | 服务器部署 | 服务器 + python环境 | 方便配置和源码修改、稳定运行 | 需要简单的linux基础 | | Railway部署 | 一个超过半年的github账号 | 一键部署 | 免费额度有限,插件等高级功能使用不便 |

值得注意的是,公众号目前只支持 服务器docker 环境部署,不支持railway及本地部署

效果预览 {#效果预览}


当然了,你也可以前往下方微信公众号:亦小封,进行回复体验~ 亦小封 | 微信公众号 一个不太称职的科技博主日常生活记录,专注于网络产品设计、视觉摄影艺术的层次追求。还有就是一些发疯文章啦!

部署教程 {#部署教程}

本篇教程只提供 服务器部署 方案,为实机实装步骤。更多部署方式可参考:项目文档 - 程序部署

  1. 准备一个微信公众号(订阅号/服务号),以及一台Linux的服务器

  2. 前往 讯飞星火认知大模型 注册账号,并进行实名认证。(当然了,也可以使用文心一言或者ChatGPT等等,即可。)

讯飞星火认知大模型 讯飞星火认知大模型,是由科大讯飞推出的新一代认知智能大模型,拥有跨领域的知识和语言理解能力,能够基于自然对话方式理解与执行任务,提供语言理解、知识问答、逻辑推理、数学题解答、代码理解与编写等多种能力。

  1. 星火大模型V3.0 处进行点击立刻购买,选择个人认证的免费保进行下单。回到页面后,记下APPIDAPISecretAPIKey的值,后面需要用到。(注意这些内容不可重置,所以勿轻易泄露。)

  1. 检查你的服务器Python版本是否在 3.7.1~3.9.X 之间,推荐3.8版本,如果满足条件则可跳过第5、6步骤。

  2. 根据以下内容,逐步进行。

|------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel #安装依赖包 yum install wget #安装wget wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz #下载源码包 tar -zxvf Python-3.8.1.tgz #解压压缩包 cd Python-3.8.1 #进入文件夹 ./configure prefix=/usr/local/python3 #配置安装位置 make && make install #安装make |

  1. 配置软连接。

|-----------------|---------------------------------------------------------------------------------------------------------| | 1 2 3 4 | sudo rm /usr/bin/python3 ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 #添加python3的软链接 |

  1. 进入宝塔创建站点,然后在站点设置的 反向代理 进行添加你所需要映射的端口,写法为:127.0.0.1:端口号

  1. 在FinalShell上,进入该站点的根目录处,也就是所示的:/www/wwwroot/ai。接着逐步执行下方内容。

|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 | cd /www/wwwroot/ai #进入站点根目录 git clone https://github.com/zhayujie/chatgpt-on-wechat #拉取项目源码 pip3 install --upgrade pip #更新下pip版本 |

  1. 进入后拉取项目代码,再到宝塔的站点文件处将拉取到的 chatgpt-on-wechat 文件夹内所有的文件移动到站点的根目录。

  1. 根据以下内容,逐步进行。

|---------------|------------------------------------------------------------------------------------------| | 1 2 3 | pip3 install -r requirements.txt pip3 install -r requirements-optional.txt #安装依赖 |

  1. 登录微信公众号,找到设置与开发里的 基本配置 选项,进行开通后,会得到开发者的 AppIDAppSecret,将其记下,后面需要用到。

  2. 在宝塔内,站点根目录处新建 config.json 文件,配置好下边的东西,放进去。

|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | { "open_ai_api_key": "没用,但是别删", "model": "xunfei", "xunfei_app_id": "星火APPID", "xunfei_api_secret": "星火APISecret", "xunfei_api_key": "星火APIKey", "channel_type": "wechatmp", "wechatmp_app_id": "公众号开发者AppID" , "wechatmp_app_secret": "公众号开发者AppSecret" , "wechatmp_aes_key": "", "wechatmp_token": "meuicat", "wechatmp_port": 2170, "proxy": "", "hot_reload": false, "single_chat_prefix": [""], "single_chat_reply_prefix": "🤖 MeuiCat Ai:\n\n", "image_create_prefix": [ "画", "看", "找" ], "speech_recognition": false, "group_speech_recognition": false, "voice_reply_voice": false, "conversation_max_tokens": 2500, "expires_in_seconds": 3600, "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", "temperature": 0.8, "top_p": 1, "subscribe_msg": "哈喽~你终于来啦~\n这里是小封的瞎捣鼓频道~\n本公众号已接入Ai对话功能,注意文明发言哦~\n\n谢谢你长得好看,又关注我呀~\n祝你天天开心~", "use_linkai": false, "linkai_api_key": "", "linkai_app_code": "" } |

| 类型 | 释义 | |:---------------|:-------------------------------------------------------------------------------------------| | model | 我这使用的是讯飞的星火大模型 xunfei,可配置为:gpt-3.5-turbogpt-3.5-turbo-16kgpt-4wenxinxunfei | | channel_type | 订阅号填:wechatmp;而服务号则填:wechatmp_service,但是要确保开通了客服接口 | | wechatmp_token | 设置一个你自己的秘钥,必须为英文或数字,长度为3-32字符。后面需要用到。 | | wechatmp_port | 此处填写第七步所填写的端口号,在不冲突的前提下,任意数值皆可,但注意需要在安全策略放行改端口。 |

  1. 当然,你也可以在 config.json 配置多个模型以便切换。

|---------------------|----------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | "open_ai_api_key": "", #chatgtp "baidu_wenxin_api_key": "", "baidu_wenxin_secret_key": "", #文心一言 |

  1. 在站点根目录下,逐步执行以下命令,启动运行。

|---------------|----------------------------------------------------------------------------------------| | 1 2 3 | touch nohup.out nohup python3 app.py & tail -f nohup.out #运行成功后,可以 Ctrl+C 退出日志 |

  1. 正常运行后,来到微信公众号后台的 基本配置 选项,将你的服务器公网地址填进 IP白名单 内。

  2. 接着在 服务器配置 处修改配置,依次填写URL、Token、EncodingAESKey,消息加解密方式选择明文,提交即可。

| 类型 | 释义 | |:---------------|:-------------------------------------------------------------| | URL | 如果绑定了域名,那此处就为:你的域名/wx ;如果没有绑定域名,则为:http://你的公网ip/wx。 | | Token | 此处填写第十二步 wechatmp_token 的值。 | | EncodingAESKey | 点击随机生成即可。 |

  1. 至此,大功告成!可以前往公众号里体验了~

进阶教程 {#进阶教程}

当修改了 config.json 时,也可以在公众号里进行管理身份认证直接进行重载配置、切换模型等操作。

管理认证 {#管理认证}

  1. 在公众号内进行发言,在日志处可以看到用户身份id,复制下来。

  1. 打开宝塔,进入 [站点根目录]/plugins/godcmd/config.json 文件,进行配置身份和密钥。

|-----------------|-----------------------------------------------------------| | 1 2 3 4 | { "password": "你的密钥", "admin_users": ["用户身份id"] } |

  1. 关闭进程后,重新运行。

|-------------------------|-------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 | ps -ef | grep app.py | grep -v grep #查看进程id kill -9 进程id #关闭进程 nohup python3 app.py & tail -f nohup.out #重新运行项目 |

管理命令 {#管理命令}

| 类型 | 释义 | 用法 | |:-------|:-----------------------|:----------------------------------------------| | help | 帮助文档。 | #help#help 插件名 | | auth | 管理身份验证。 | #auth 密钥 | | reconf | 重载配置,修改完配置后可以通过命令进行重载。 | #reconf | | model | 查看或切换模型 | #model 可查看当前模型和模型列表;#model 模型名称 可切换使用该模型。 |

关键词 {#关键词}

  1. 打开宝塔,进入 [站点根目录]/plugins/keyword/config.json 文件,进行配置。

|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | { "keywords": { "hello": "Hello, Welcome to iCat.", "爱吃肉的猫": "我是一款基于星火大模型3.0的智能回复助手,这是我的开发者:亦小封,以及他的博客:爱吃肉的猫(meuicat.com),你可以直接给我发送你想知道的问题,我相信能给到你满意的答复!" } } |

  1. 关闭进程后,重新运行。

参考文献 {#参考文献}

chatgpt-on-wechat | GitHub Wechat robot based on ChatGPT,which using OpenAI api and itchat library. chatgpt-on-wechat | 项目文档 Wechat chatgpt-on-wechat (cow) 项目是使用 ChatGPT 搭建的智能聊天机器人,在GPT3.5/4.0 API 及 itchat框架的基础上实现,支持个人微信、公众号、企业微信部署,能生成文本、语音和图片,访问操作系统和互联网。 LinkAI LinkAI是一站式的AI应用平台,聚合文本、语音、图像等多模态基础模型,在此基础上提供知识库定制化、Agent插件等增强能力,基于开源生态和开放接口快速完成应用接入。

赞(0)
未经允许不得转载:工具盒子 » 微信公众号:Ai大模型让回复更具智能化