查看原文
其他

17k+ Stars 基于人工智能大模型语言搭建微信聊天机器人

小刘 爱编程爱技术 2023-12-13

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

最新开源项目 chatgpt-on-wechat 就能做到这些功能,项目基于 MIT 协议,支持 Linux、MacOS、Windows 系统,使用大模型搭建微信聊天机器人,使用 GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/LinkAI,支持个人微信、公众号、企业微信部署,能处理文本、语音和图片,访问操作系统和互联网,可根据知识库定制专属机器人。在 GitHub 上一经开源就收获大量好评,目前已获得 17.8k stars。

🎨️ 最新版本支持的功能

  •  多端部署

    有多种部署方式可选择且功能完备,目前已支持个人微信,微信公众号和企业微信应用等部署方式
  • 丰富插件

    支持个性化插件扩展,已实现多角色切换、文字冒险、敏感词过滤、聊天记录总结、文档总结和对话等插件
  • 基础对话

    私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持 GPT-3.5, GPT-4, claude, 文心一言, 讯飞星火
  • Tool工具

    与操作系统和互联网交互,支持最新信息搜索、数学计算、天气和资讯查询、网页总结,基于 chatgpt-tool-hub 实现
  • 语音识别

    可识别语音消息,通过文字或语音回复,支持 azure, baidu, google, openai(whisper/tts) 等多种语音模型
  • 知识库

    通过上传知识库文件自定义专属机器人,可作为数字分身、领域知识库、智能客服使用,基于 LinkAI 实现
  •  图片生成:支持图片生成 和 图生图(如照片修复),可选择 Dall-E, stable diffusion, replicate, midjourney模型

🐞 源码安装

前提准备

  • AI密钥准备

两种方式接入:LinkAI OpenAI

这里推荐使用 LinkAI,无需梯子。支持 文心、讯飞、GPT-3、GPT-4 等模型,支持 定制化知识库、联网搜索、MJ绘图、文档总结和对话等能力。

如果使用 OpenAI 则需自备梯子,开启全局代理。

LinkAI 注册地址:https://link-ai.tech
  • 安装 Python

版本在 3.7.1~3.9.X 之间,推荐3.8版本

1、使用Git命令克隆项目代码到本地服务器
git clone https://github.com/zhayujie/chatgpt-on-wechatcd chatgpt-on-wechat/
2、安装依赖
pip3 install -r requirements.txt
3、安装拓展依赖
如果某项依赖安装失败请注释掉对应的行再继续。

其中tiktoken要求python版本在3.8以上,它用于精确计算会话使用的tokens数量,强烈建议安装。

使用 google 或 baidu 语音识别需安装ffmpeg,默认的 OpenAI 语音识别不需要安装ffmpeg。
pip3 install -r requirements-optional.txt
4、配置文件
在根目录找到配置文件模板 config-template.json,复制该模板创建 config.json 文件:
cp config-template.json config.json
在 config.json 文件中填写配置,可根据需要进行自定义修改(一定要去掉注释),以下是对默认配置的说明:
# config.json文件内容示例{ "open_ai_api_key": "YOUR API KEY", # 填入上面创建的 OpenAI API KEY "model": "gpt-3.5-turbo", # 模型名称, 支持 gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, wenxin, xunfei "proxy": "", # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890" "single_chat_prefix": ["bot", "@bot"], # 私聊时文本需要包含该前缀才能触发机器人回复 "single_chat_reply_prefix": "[bot] ", # 私聊时自动回复的前缀,用于区分真人 "group_chat_prefix": ["@bot"], # 群聊时包含该前缀则会触发机器人回复 "group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表 "group_chat_in_one_session": ["ChatGPT测试群"], # 支持会话上下文共享的群名称 "image_create_prefix": ["画", "看", "找"], # 开启图片回复的前缀 "conversation_max_tokens": 1000, # 支持上下文记忆的最多字符数 "speech_recognition": false, # 是否开启语音识别 "group_speech_recognition": false, # 是否开启群组语音识别 "use_azure_chatgpt": false, # 是否使用Azure ChatGPT service代替openai ChatGPT service. 当设置为true时需要设置 open_ai_api_base,如 https://xxx.openai.azure.com/ "azure_deployment_id": "", # 采用Azure ChatGPT时,模型部署名称 "azure_api_version": "", # 采用Azure ChatGPT时,API版本 "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", # 人格描述 # 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{trigger_prefix},在程序中它会自动替换成bot的触发词。 "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。", "use_linkai": false, # 是否使用LinkAI接口,默认关闭,开启后可国内访问,使用知识库和MJ "linkai_api_key": "", # LinkAI Api Key "linkai_app_code": "" # LinkAI 应用code}
5、运行

方式1:本地运行

如果是开发机本地运行,直接在项目根目录下执行:

# windows环境下该命令通常为 python app.pypython3 app.py
终端输出二维码后,使用微信进行扫码,当输出 "Start auto replying" 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。扫码登录后你的账号就成为机器人了,可以在微信手机端通过配置的关键词触发自动回复 (任意好友发送消息给你,或是自己发消息给好友)
方式2:服务器部署运行
使用nohup命令在后台运行程序:
# 首次运行需要新建日志文件 touch nohup.out
# 在后台运行程序并通过日志输出二维码nohup python3 app.py & tail -f nohup.out
扫码登录后程序即可运行于服务器后台,此时可通过 ctrl+c 关闭日志,不会影响后台程序的运行。使用 ps -ef | grep app.py | grep -v grep 命令可查看运行于后台的进程,如果想要重新启动程序可以先 kill 掉对应的进程。日志关闭后如果想要再次打开只需输入 tail -f nohup.out。此外,scripts 目录下有一键运行、关闭程序的脚本供使用。
  • 多账号支持:将项目复制多份,分别启动程序,用不同账号扫码登录即可实现同时运行。

  • 特殊指令:用户向机器人发送 #reset 即可清空该用户的上下文记忆。

🧰 Docker部署

小编建议使用Docker部署,无需下载源码和安装依赖,只需要使用 docker-compose.yml 配置文件模板,修改为我们自己的配置,然后启动容器,非常快捷方便。
1、下载 docker-compose.yml 文件
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml
docker-compose.yml 内容如下:
根据需要进行自定义修改,如 OPEN_AI_API_KEY 和 GROUP_NAME_WHITE_LIST、LINKAI_API_KEY、LINKAI_APP_CODE等。
version: '2.0'services: chatgpt-on-wechat: image: zhayujie/chatgpt-on-wechat container_name: chatgpt-on-wechat security_opt: - seccomp:unconfined environment: OPEN_AI_API_KEY: 'YOUR API KEY' MODEL: 'gpt-3.5-turbo' PROXY: '' SINGLE_CHAT_PREFIX: '["bot", "@bot"]' SINGLE_CHAT_REPLY_PREFIX: '"[bot] "' GROUP_CHAT_PREFIX: '["@bot"]' GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]' IMAGE_CREATE_PREFIX: '["画", "看", "找"]' CONVERSATION_MAX_TOKENS: 1000 SPEECH_RECOGNITION: 'False' CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。' EXPIRES_IN_SECONDS: 3600 USE_GLOBAL_PLUGIN_CONFIG: 'True' USE_LINKAI: 'False' LINKAI_API_KEY: '' LINKAI_APP_CODE: ''
2、启动容器
在 docker-compose.yml 所在目录下执行以下命令启动容器:
注意:如果修改了 docker-compose.yml 中的配置,需要关闭容器后再重新启动才能生效,只执行 docker restart 是不起作用的。
docker compose up -d
运行 sudo docker ps 能查看到 NAMES 为 chatgpt-on-wechat 的容器即表示运行成功。如果 docker-compose 是 1.X 版本 则需要执行 sudo  docker-compose up -d 来启动容器,该命令会自动拉取 latest 版本的镜像,最后运行以下命令可查看容器运行日志,扫描日志中的微信二维码完成登录:
sudo docker logs -f chatgpt-on-wechat
3、插件使用
如果需要在docker容器中修改插件配置,可通过挂载的方式完成,将 插件配置文件 重命名为 config.json,放置于 docker-compose.yml 相同目录下,并在 docker-compose.yml 中的 chatgpt-on-wechat 部分下添加 volumes 映射:
volumes: - ./config.json:/app/plugins/config.json

4、完整的 config.json 配置文件

小编这里使用 LinkAI,模型使用 LinkAI-3.5,填写申请的 api_key,code
{ "model": "LinkAI-3.5", "single_chat_prefix": [ "@bot" ], "single_chat_reply_prefix": "[bot] ", "group_chat_prefix": [ "@bot" ], "group_name_white_list": [ "哈哈" ], "group_chat_in_one_session": [ "哈哈" ], "image_create_prefix": [ "画", "看", "找" ], "conversation_max_tokens": 1000, "speech_recognition": false, "group_speech_recognition": false, "use_azure_chatgpt": false, "azure_deployment_id": "", "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。", "use_linkai": true, "linkai_api_key": "<你的api_key>", "linkai_app_code": "<你的code>", "linkai_api_base": "https://api.link-ai.chat"}

🔥 视频演示

更多功能宝子们可以继续挖掘~

附项目的链接:

开源地址:

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

LinkAI官网:

https://link-ai.tech

LinkAI使用文档:
https://docs.link-ai.tech/platform
点点关注不迷路
本文发表于公众号【爱编程爱技术
关注我们,阅读更多精彩内容

点击上方关注我们,谢谢支持

往期推荐:

frp:70k+ Stars!简单、高效的内网穿透工具
KMS:开源、免费、全自动激活 Windows、Office!
帮小忙:在线工具箱网站,130多款免费工具!
PDF24:人人都能用的免费PDF软件,所有你需要的功能全都有!
13k+ Stars 开源免费的 Github 加速器,突破地域限制!
tabler:36k+ stars 免费开源的仪表盘工具包!
13K+ Stars 开源、高颜值的影视软件发布更新!
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存