介绍:本项目是基于大模型的智能对话机器人,支持企业微信、微信公众号、飞书、钉钉接入,可选择GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/通义千问/Gemini/LinkAI/ZhipuAI,能处理文本、语音和图片,通过插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业AI应用
文章底部可查看演示效果和体验方式
项目地址:https://github.com/zhayujie/chatgpt-on-wechat
功能:
- 个人聊天中,支持使用关键字触发回复,也可以直接触发
- 群组聊天中,支持在允许的群聊天中使用,艾特回复
- 群组聊天中,支持自己艾特回复自己
- 支持配置新人进群固定欢迎语,不配置则使用随机风格欢迎
- 支持语音识别,文字回复
- 支持语音识别,语音回复(需要配置 wechaty)
- 自定义关键词,触发可画图
- 用户昵称黑名单
- 更多功能可看下面的 docker-compose.yml 配置文件
服务器部署 docker 部署
- 如果没有 key 需要前往 https://api.spoony.pro 登录创建key也就是令牌(点击查看创建教程)
- 使用 SSH 连接服务器
-
下载docker-compose.yml文件
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml - 配置文件说明
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: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxx' # 填入在 Chat Key 上面创建的 令牌 MODEL: 'gpt-3.5-turbo' # 这个模型就可以了 open_ai_api_base: 'https://api.spoony.pro/v1' # 固定地址 PROXY: '' # 不用填 SINGLE_CHAT_PREFIX: '["bot", "@bot"]' # 私聊时 触发机器人的关键字 为空则不用触发即可自动回复 SINGLE_CHAT_REPLY_PREFIX: '"[bot] "' # 机器人 回复的前缀 可用于区分真人,可为空 single_chat_reply_suffix: "" # 私聊时自动回复的后缀,\n 可以换行 GROUP_CHAT_PREFIX: '["@bot"]' # 群聊时包含该前缀则会触发机器人回复 艾特也会触发 group_chat_reply_prefix: "" # 群聊时自动回复的前缀 group_chat_reply_suffix: "" # 群聊时自动回复的后缀,\n 可以换行 group_chat_keyword: '[]' # 群聊时包含该关键词则会触发机器人回复 group_at_off: 'False' # 是否关闭群聊时@bot的触发 GROUP_NAME_WHITE_LIST: '["OpenAI"]' # 开启自动回复的群名称列表 group_name_keyword_white_list: '[]' # 开启自动回复的群名称关键词列表 group_chat_in_one_session: '["ChatGPT测试群"]' # 支持会话上下文共享的群名称 nick_name_black_list: '[]' # 用户昵称黑名单 group_welcome_msg: "欢迎进入XXXXXXXXXXX" # 配置新人进群固定欢迎语,不配置则使用随机风格欢迎 trigger_by_self: 'False' # 是否允许机器人触发 IMAGE_CREATE_PREFIX: '["画", "看", "找"]' # 开启图片回复的前缀 text_to_image: "dall-e-2" # 图片生成模型,可选 dall-e-2, dall-e-3 image_proxy: 'True' # 是否需要图片代理,国内访问LinkAI时需要 concurrency_in_session: '1' # 同一会话最多有多少条消息在处理中,大于1可能乱序 image_create_size: "256x256" # 图片大小,可选有 256x256, 512x512, 1024x1024 (dall-e-3默认为1024x1024) group_chat_exit_group: 'False' # chatgpt会话参数 EXPIRES_IN_SECONDS: 3600 # 无操作会话的过期时间 CONVERSATION_MAX_TOKENS: 1000 # 支持上下文记忆的最多字符数 # 人格描述 character_desc: "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。" # chatgpt限流配置 rate_limit_chatgpt: 20 # chatgpt的调用频率限制 rate_limit_dalle: 50 # openai dalle的调用频率限制 # chatgpt api参数 参考https://platform.openai.com/docs/api-reference/chat/create temperature: 0.9 top_p: 1 frequency_penalty: 0 presence_penalty: 0 timeout: 120 # chatgpt重试超时时间,在这个时间内,将会自动重试 # wework的通用配置 wework_smart: 'True' # 配置wework是否使用已登录的企业微信,False为多开 # 语音设置 SPEECH_RECOGNITION: 'False' # 是否开启语音识别 group_speech_recognition: 'False' # 是否开启群组语音识别 voice_reply_voice: 'False' # 是否使用语音回复语音,需要设置对应语音合成引擎的api key always_reply_voice: 'False' # 是否一直使用语音回复 voice_to_text: "openai" # 语音识别引擎,支持openai,baidu,google,azure text_to_voice: "openai" # 语音合成引擎,支持openai,baidu,google,pytts(offline),azure,elevenlabs,edge(online) text_to_voice_model: "tts-1" tts_voice_id: "alloy" # baidu 语音api配置, 使用百度语音识别和语音合成时需要 baidu_app_id: "" baidu_api_key: "" baidu_secret_key: "" # 1536普通话(支持简单的英文识别) 1737英语 1637粤语 1837四川话 1936普通话远场 baidu_dev_pid: "1536" # azure 语音api配置, 使用azure语音识别和语音合成时需要 azure_voice_api_key: "" azure_voice_region: "japaneast" # elevenlabs 语音api配置 xi_api_key: "" #获取ap的方法可以参考https://docs.elevenlabs.io/api-reference/quick-start/authentication xi_voice_id: "" #ElevenLabs提供了9种英式、美式等英语发音id,分别是“Adam/Antoni/Arnold/Bella/Domi/Elli/Josh/Rachel/Sam” # 服务时间限制,目前支持itchat chat_time_module: 'False' # 是否开启服务时间限制 chat_start_time: "00:00" # 服务开始时间 chat_stop_time: "24:00" # 服务结束时间 # 翻译api translate: "baidu" # 翻译api,支持baidu # baidu翻译api的配置 baidu_translate_app_id: "" # 百度翻译api的appid baidu_translate_app_key: "" # 百度翻译api的秘钥 # itchat的配置 hot_reload: 'False' # 是否开启热重载 # wechaty的配置 wechaty_puppet_service_token: "" # wechaty的token # wechatmp的配置 wechatmp_token: "" # 微信公众平台的Token wechatmp_port: 8080 # 微信公众平台的端口,需要端口转发到80或443 wechatmp_app_id: "" # 微信公众平台的appID wechatmp_app_secret: "" # 微信公众平台的appsecret wechatmp_aes_key: "" # 微信公众平台的EncodingAESKey,加密模式需要 # wechatcom的通用配置 wechatcom_corp_id: "" # 企业微信公司的corpID # wechatcomapp的配置 wechatcomapp_token: "" # 企业微信app的token wechatcomapp_port: 9898 # 企业微信app的服务端口,不需要端口转发 wechatcomapp_secret: "" # 企业微信app的secret wechatcomapp_agent_id: "" # 企业微信app的agent_id wechatcomapp_aes_key: "" # 企业微信app的aes_key # 飞书配置 feishu_port: 80 # 飞书bot监听端口 feishu_app_id: "" # 飞书机器人应用APP Id feishu_app_secret: "" # 飞书机器人APP secret feishu_token: "" # 飞书 verification token feishu_bot_name: "" # 飞书机器人的名字 # 钉钉配置 dingtalk_client_id: "" # 钉钉机器人Client ID dingtalk_client_secret: "" # 钉钉机器人Client Secret # chatgpt指令自定义触发词 clear_memory_commands: '["#清除记忆"]' # 重置会话指令,必须以#开头 # channel配置 channel_type: "wx" # 通道类型,支持:{wx,wxy,terminal,wechatmp,wechatmp_service,wechatcom_app} subscribe_msg: "" # 订阅消息, 支持: wechatmp, wechatmp_service, wechatcom_app debug: 'False' # 是否开启debug模式,开启后会打印更多日志 appdata_dir: "" # 数据目录 # 插件配置 plugin_trigger_prefix: "$" # 规范插件提供聊天相关指令的前缀,建议不要和管理员指令前缀"#"冲突 # 是否使用全局插件配置 USE_GLOBAL_PLUGIN_CONFIG: 'True' max_media_send_count: 3 # 单次最大发送媒体资源的个数 media_send_interval: 1 # 发送图片的事件间隔,单位秒 # 智谱AI 平台配置 zhipu_ai_api_key: "" zhipu_ai_api_base: "https://open.bigmodel.cn/api/paas/v4" # LinkAI平台配置 use_linkai: 'False' linkai_api_key: "" linkai_app_code: "" linkai_api_base: "https://api.link-ai.chat" # linkAI服务地址,若国内无法访问或延迟较高可改为 https://api.link-ai.tech - 启动容器:在
docker-compose.yml所在目录下执行以下命令启动容器sudo docker compose up -d - 扫码登录即可完成(遇到问题可以联系QQ:785311186 免费指导)
- 如果修改了配置文件 需要关闭服务,重新启动才可以,分别执行以下命令
sudo docker ps # 查看容器是否运行 sudo docker compose down # 停止当前容器服务 sudo docker compose up -d # 启动服务 sudo docker logs -f chatgpt-on-wechat # 获取二维码 扫码登录
windows 部署
(1) 克隆项目代码:
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
(2) 安装核心依赖 (必选):
能够使用
itchat创建机器人,并具有文字交流功能所需的最小依赖集合。
pip3 install -r requirements.txt
(3) 拓展依赖(任选,建议安装):
pip3 install -r requirements-optional.txt
(4) 运行:
如果是开发机本地运行,直接在项目根目录下执行:
python3 app.py # windows环境下该命令通常为 python app.py
终端输出二维码后,使用微信进行扫码,当输出“开始自动回复”时表示自动回复程序已经成功运行了(注意:用于登录的微信需要在支付处已完成实名认证)。之后你的账号就成为机器人了,可以在手机端通过配置的关键词触发自动回复(任意好友发送消息给你,或者自己发消息给好友)
如果某项依赖安装失败可注释掉对应的行再继续
![图片[1]-部署 微信 AI 机器人 chatgpt-on-wechat](http://blog.spoony.pro/wp-content/uploads/2024/04/20240420165816260-httpsweixin.qq_.comgAQYAAMkeXnB5oLCAjPgnR9IBOiJLrtEhy0rfPQT8qm1auBUVGaw1vpkTezSOIUCz.png)
演示
© 版权声明
文章版权归作者所有,未经允许请勿转载。




暂无评论内容