跳到主内容Loading...
chatgpt-on-wechat - 开源项目详情ChatGPT 应用机器人类开源技术
CowAgent是基于大模型的超级AI助理,能主动思考和任务规划、访问操作系统和外部资源、创造和执行Skills、拥有长期记忆并不断成长,比OpenClaw更轻量和便捷。同时支持微信、飞书、钉钉、企微、QQ、公众号、网页等接入,可选择OpenAI/Claude/Gemini/DeepSeek/ Qwen/GLM/Kimi/LinkAI,能处理文本、语音、图片和文件,可快速搭建个人AI助理和企业数字员工。
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。
AutoGPT
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
#agentic-ai#agents#ai
LibreChat
Enhanced ChatGPT Clone: Features Agents, MCP, Skills, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active
交流群
更新日志
2023.06.12: 接入 LinkAI 平台,可在线创建 个人知识库,并接入微信、公众号及企业微信中。使用参考 接入文档。
2023.04.26: 支持企业微信应用号部署,兼容插件,并支持语音图片交互,私人助理理想选择,使用文档。(contributed by @lanvent in #944)
2023.03.25: 支持插件化开发,目前已实现 多角色切换、文字冒险游戏、管理员指令、Stable Diffusion等插件,使用参考 #578。(contributed by @lanvent in #565)
2023.03.09: 基于 whisper API(后续已接入更多的语音API服务) 实现对微信语音消息的解析和回复,添加配置项 "speech_recognition":true 即可启用,使用参考 #415。(contributed by wanggang1987 in #385)
2023.03.02: 接入ChatGPT API (gpt-3.5-turbo),默认使用该模型进行对话,需升级openai依赖 (pip3 install --upgrade openai)。网络问题参考 #351
2023.02.09: 扫码登录存在账号限制风险,请谨慎使用,参考#58
快速开始
准备
1. OpenAI账号注册
前往 OpenAI注册页面 创建账号,参考这篇 教程 可以通过虚拟手机号来接收验证码。创建完账号则前往 API管理页面 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。
项目中默认使用的对话模型是 gpt3.5 turbo,计费方式是约每 500 汉字 (包含请求和回复) 消耗 $0.002,图片生成是每张消耗 $0.016。
2.运行环境
支持 Linux、MacOS、Windows 系统(可在Linux服务器上长期运行),同时需安装 Python。
建议Python版本在 3.7.1~3.9.X 之间,推荐3.8版本,3.10及以上版本在 MacOS 可用,其他系统上不确定能否正常运行。
注意:Docker 或 Railway 部署无需安装python环境和下载源码,可直接快进到下一节。
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
能够使用itchat创建机器人,并具有文字交流功能所需的最小依赖集合。
pip3 install -r requirements.txt
pip3 install -r requirements-optional.txt
其中tiktoken要求python版本在3.8以上,它用于精确计算会话使用的tokens数量,强烈建议安装。
使用google或baidu语音识别需安装ffmpeg,
默认的openai语音识别不需要安装ffmpeg。
使用azure语音功能需安装依赖,并参考文档的环境要求。
:
pip3 install azure-cognitiveservices-speech
配置
配置文件的模板在根目录的config-template.json中,需复制该模板创建最终生效的 config.json 文件:
cp config-template.json config.json
然后在config.json中填入配置,以下是对默认配置的说明,可根据需要进行自定义修改(请去掉注释):
{
"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"],
"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_deployment_id": "",
"azure_api_version": "",
"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
"subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。"
}
- 个人聊天中,需要以 "bot"或"@bot" 为开头的内容触发机器人,对应配置项
single_chat_prefix (如果不需要以前缀触发可以填写 "single_chat_prefix": [""])
- 机器人回复的内容会以 "[bot] " 作为前缀, 以区分真人,对应的配置项为
single_chat_reply_prefix (如果不需要前缀可以填写 "single_chat_reply_prefix": "")
- 群组聊天中,群名称需配置在
group_name_white_list 中才能开启群聊自动回复。如果想对所有群聊生效,可以直接填写 "group_name_white_list": ["ALL_GROUP"]
- 默认只要被人 @ 就会触发机器人自动回复;另外群聊天中只要检测到以 "@bot" 开头的内容,同样会自动回复(方便自己触发),这对应配置项
group_chat_prefix
- 可选配置:
group_name_keyword_white_list配置项支持模糊匹配群名称,group_chat_keyword配置项则支持模糊匹配群消息内容,用法与上述两个配置项相同。(Contributed by evolay)
group_chat_in_one_session:使群聊共享一个会话上下文,配置 ["ALL_GROUP"] 则作用于所有群聊
- 添加
"speech_recognition": true 将开启语音识别,默认使用openai的whisper模型识别为文字,同时以文字回复,该参数仅支持私聊 (注意由于语音消息无法匹配前缀,一旦开启将对所有语音自动回复,支持语音触发画图);
- 添加
"group_speech_recognition": true 将开启群组语音识别,默认使用openai的whisper模型识别为文字,同时以文字回复,参数仅支持群聊 (会匹配group_chat_prefix和group_chat_keyword, 支持语音触发画图);
- 添加
"voice_reply_voice": true 将开启语音回复语音(同时作用于私聊和群聊),但是需要配置对应语音合成平台的key,由于itchat协议的限制,只能发送语音mp3文件,若使用wechaty则回复的是微信语音。
model: 模型名称,目前支持 gpt-3.5-turbo, text-davinci-003, gpt-4, gpt-4-32k (其中gpt-4 api暂未完全开放,申请通过后可使用)
temperature,frequency_penalty,presence_penalty: Chat API接口参数,详情参考OpenAI官方文档。
proxy:由于目前 openai 接口国内无法访问,需配置代理客户端的地址,详情参考 #351
- 对于图像生成,在满足个人或群组触发条件外,还需要额外的关键词前缀来触发,对应配置
image_create_prefix
- 关于OpenAI对话及图片接口的参数配置(内容自由度、回复字数限制、图片大小等),可以参考 对话接口 和 图像接口 文档,在
config.py中检查哪些参数在本项目中是可配置的。
conversation_max_tokens:表示能够记忆的上下文最大字数(一问一答为一组对话,如果累积的对话字数超出限制,就会优先移除最早的一组对话)
rate_limit_chatgpt,rate_limit_dalle:每分钟最高问答速率、画图速率,超速后排队按序处理。
clear_memory_commands: 对话内指令,主动清空前文记忆,字符串数组可自定义指令别名。
hot_reload: 程序退出后,暂存微信扫码状态,默认关闭。
character_desc 配置中保存着你对机器人说的一段话,他会记住这段话并作为他的设定,你可以为他定制任何人格 (关于会话上下文的更多内容参考该 issue)
subscribe_msg:订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复, 可使用特殊占位符。目前支持的占位符有{trigger_prefix},在程序中它会自动替换成bot的触发词。
运行
1.本地运行
终端输出二维码后,使用微信进行扫码,当输出 "Start auto replying" 时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。扫码登录后你的账号就成为机器人了,可以在微信手机端通过配置的关键词触发自动回复 (任意好友发送消息给你,或是自己发消息给好友),参考#142。
2.服务器部署
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 即可清空该用户的上下文记忆。
3.Docker部署
使用docker部署无需下载源码和安装依赖,只需要获取 docker-compose.yml 配置文件并启动容器即可。
前提是需要安装好 docker 及 docker-compose,安装成功的表现是执行 docker -v 和 docker-compose version (或 docker compose version) 可以查看到版本号,可前往 docker官网 进行下载。
(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 等。
(2) 启动容器
在 docker-compose.yml 所在目录下执行以下命令启动容器:
sudo docker compose up -d
运行 sudo docker ps 能查看到 NAMES 为 chatgpt-on-wechat 的容器即表示运行成功。
- 如果
docker-compose 是 1.X 版本 则需要执行 sudo docker-compose up -d 来启动容器
- 该命令会自动去 docker hub 拉取 latest 版本的镜像,latest 镜像会在每次项目 release 新的版本时生成
最后运行以下命令可查看容器运行日志,扫描日志中的二维码即可完成登录:
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. Railway部署
Railway 每月提供5刀和最多500小时的免费额度。 (07.11更新: 目前大部分账号已无法免费部署)
- 进入 Railway
- 点击
Deploy Now 按钮。
- 设置环境变量来重载程序运行的参数,例如
open_ai_api_key, character_desc。
常见问题
或直接在线咨询 项目小助手 (beta版本,语料完善中,回复仅供参考)
联系
欢迎提交PR、Issues,以及Star支持一下。程序运行遇到问题可以查看 常见问题列表 ,其次前往 Issues 中搜索。
如果你想了解更多项目细节,与开发者们交流更多关于AI技术的实践,欢迎加入星球:
#ai#ai-agent#chatgpt#claude#deepseek#dingtalk#feishu-bot#gemini#kimi#linkai#llm#mcp#multi-agent#openai#openclaw#python3#qwen#skills#wechat#weixin
#ai
#anthropic
#artifacts
#ai#ai-agent#chatgpt#claude#deepseek#dingtalk#feishu-bot#gemini#kimi#linkai#llm#mcp#multi-agent#openai#openclaw#python3#qwen#skills#wechat#weixin