ChatGPT 接入微信实践
安装方法
参考:https://github.com/zhayujie/chatgpt-on-wechat
1 2 3 4 5
| git clone https://github.com/zhayujie/chatgpt-on-wechat cd chatgpt-on-wechat/
pip3 install -r requirements.txt pip3 install -r requirements-optional.txt
|
修改配置文件:
1 2
| cp config-template.json config.json vim 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 35 36
| { "open_ai_api_key": "sk-", "model": "gpt-3.5-turbo", "channel_type": "wx", "open_ai_api_base": "https://api.aiproxy.io/v1", "proxy": "", "hot_reload": false, "single_chat_prefix": [ "bot", "@bot" ], "single_chat_reply_prefix": "[bot] ", "group_chat_prefix": [ "@bot" ], "group_name_white_list": ["ALL_GROUP"], "group_chat_in_one_session": [ "ChatGPT测试群" ], "image_create_prefix": [ "画" ], "speech_recognition": false, "group_speech_recognition": false, "voice_reply_voice": false, "conversation_max_tokens": 1000, "expires_in_seconds": 3600, "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", "temperature": 0.7, "top_p": 1, "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。", "use_linkai": true, "linkai_api_base": "https://api.link-ai.tech", "linkai_api_key": "Link_", "linkai_app_code": "" }
|
API获取
项目默认使用OpenAI接口,需前往 OpenAI注册页面 创建账号,创建完账号则前往 API管理页面 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。接口需要海外网络访问及绑定信用卡支付。
或者使用第三方API。
比如:https://aiproxy.io/。(消费很多)
或者:https://chat.link-ai.tech (推荐,便宜)
注意,配置第三方linkai_api之后,无需再配置open_ai_api_key.
配置文件如下:
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
| { "model": "gpt-3.5-turbo", "channel_type": "wx", "proxy": "", "hot_reload": false, "single_chat_prefix": [ "bot", "@bot" ], "single_chat_reply_prefix": "[bot] ", "group_chat_prefix": [ "@bot" ], "group_name_white_list": ["ALL_GROUP"], "group_chat_in_one_session": [ "ChatGPT测试群" ], "image_create_prefix": [ "画" ], "speech_recognition": false, "group_speech_recognition": false, "voice_reply_voice": false, "conversation_max_tokens": 1000, "expires_in_seconds": 3600, "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。", "temperature": 0.7, "top_p": 1, "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。", "use_linkai": true, "linkai_api_base": "https://api.link-ai.tech", "linkai_api_key": "Link_", "linkai_app_code": "" }
|
常用命令
启动程序
直接启动:python3 app.py
后台运行:nohup python3 app.py & tail -f nohup.out
日志输出到nohup.out
关闭进程
搜索进程并kill
1 2 3
| ps -ef | grep app.py | grep -v grep
kill -9 加进程号
|
介绍
https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md
Tool工具: 与操作系统和互联网交互,支持最新信息搜索、数学计算、天气和资讯查询、网页总结,基于 chatgpt-tool-hub 实现
相关API申请方法如下:
https://github.com/goldfishh/chatgpt-tool-hub/blob/master/docs/apply_optional_tool.md
进入目录配置:plugins/tool
cp config.json.template config.json
配置需要开启的插件,有些需要API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 1 { 2 "tools": [ 3 "news", 4 "morning-news", 5 "wikipedia", 6 "python", 7 "url-get", 8 "terminal", 9 "bing-search", 10 "meteo-weather"], 11 "kwargs": { 12 "llm_api_key": "", 13 "proxy": "", 14 "debug": false, 15 "top_k_results": 2, 16 "no_default": false, 17 "model_name": "gpt-3.5-turbo", 18 "news_api_key": "", 19 "bing_subscription_key": "", 20 "morning_news_api_key": "" 21 } 22 }
|
#help tool: 查看tool帮助信息,可查看已加载工具列表
$tool 命令: 根据给出的{命令}使用一些可用工具尽力为你得到结果。
$tool reset: 重置工具。
插件未启用bug
使用一段时间后,提供插件未启用,排查发现是配置文件自动改为了false.
重新修改为true即可。
chatgpt-on-wechat/plugins/plugins.json
1 2 3 4
| 19 "tool": { 20 "enabled": true, 21 "priority": 0 22 },
|
知识库平台配置
参考
https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/linkai
https://link-ai.tech/platform/link-app/wechat
获取API
进入控制台:
https://chat.link-ai.tech/console/factory
新用户有免费的600积分。
我充值了1w积分,生成一张图片需要150积分。
配置插件
将 plugins/linkai
目录下的 config.json.template
配置模板复制为最终生效的 config.json
。
配置项中 group_app_map
部分是用于映射群聊与LinkAI平台上的应用, midjourney
部分是 mj 画图的配置,summary
部分是文档总结及对话功能的配置。三部分的配置相互独立,可按需开启。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| { "group_app_map": { # 群聊 和 应用编码 的映射关系 "测试群名称1": "default", # 表示在名称为 "测试群名称1" 的群聊中将使用app_code 为 default 的应用 "测试群名称2": "Kv2fXJcH" }, "midjourney": { "enabled": true, # midjourney 绘画开关 "auto_translate": true, # 是否自动将提示词翻译为英文 "img_proxy": true, # 是否对生成的图片使用代理,如果你是国外服务器,将这一项设置为false会获得更快的生成速度 "max_tasks": 3, # 支持同时提交的总任务个数 "max_tasks_per_user": 1, # 支持单个用户同时提交的任务个数 "use_image_create_prefix": true # 是否使用全局的绘画触发词,如果开启将同时支持由`config.json`中的 image_create_prefix 配置触发 }, "summary": { "enabled": true, # 文档总结和对话功能开关 "group_enabled": true, # 是否支持群聊开启 "max_file_size": 5000 # 文件的大小限制,单位KB,默认为5M,超过该大小直接忽略 } }
|
主配置文件
添加下面几行。
1 2 3 4
| "use_linkai": true, "linkai_api_key": "", "linkai_app_code": "", #选填 "linkai_api_base": "https://api.link-ai.chat", # linkAI服务地址,若国内无法访问或延迟较高可改为 https:
|
刚开始没有写linkai_api_base,会报错。加入这个参数之后可以正常使用。
Midjourney绘图功能
开启之后,艾特机器人,并输入提示词”画”,就会根据要求输出图片。
文档总结功能
该功能依赖 LinkAI的知识库及对话功能,需要在项目根目录的config.json中设置 linkai_api_key
, 同时根据上述插件配置说明,在插件config.json添加 summary
部分的配置,设置 enabled
为 true。
如果不想创建 plugins/linkai/config.json
配置,可以直接通过 $linkai sum open
指令开启该功能。
功能开启后,向机器人发送 文件 或 分享链接卡片 即可生成摘要,进一步可以与文件或链接的内容进行多轮对话。
- 文件目前 支持
txt
, docx
, pdf
, md
, csv
格式,文件大小由 max_file_size
限制,最大不超过15M,文件字数最多可支持百万字的文件。但不建议上传字数过多的文件,一是token消耗过大,二是摘要很难覆盖到全部内容,只能通过多轮对话来了解细节。
- 分享链接 目前仅支持 公众号文章,后续会支持更多文章类型及视频链接等
- 总结及对话的 费用与 LinkAI 3.5-4K 模型的计费方式相同,按文档内容的tokens进行计算
语音功能
暂时报错,未解决。
提示缺少ffmpeg ,安装后发现后台运行会报错,且未解决问题。
于是直接关闭语音识别和回复语音的功能。
1 2 3
| 23 "speech_recognition": false, 24 "group_speech_recognition": false, 25 "voice_reply_voice": false,
|
效果演示
工具列表
今日新闻
操作电脑终端
Midjourney画图
Url-Get
生成摘要
总结
花了一整天时间,成功接入微信。效果还是很不错,可以当作群助手,配置tool插件后提供了更强大了功能。
比如:
1 2
| 已加载工具列表: python, url-get, python, summary, terminal, browser, url-get, wikipedia, arxiv, hello-tool, google-search, wolfram-alpha, debug, answer-user, news-api, finance-news, morning-news, news, bing-search, searxng-search, meteo-weather, morning-news, wikipedia, meteo-weather, terminal
|
需要服务器资源,GPT API资源,以及linkai资源以接入Midjourney.使用人数多的话,也是一笔不小的支出。
参考
https://www.wangpc.cc/aigc/wechat_com-chatgpt/
https://www.zsanjin.de/posts-gpt4api.html