From 230ed15024581a5072e3e7a42b992abd14d824a6 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Thu, 16 Feb 2023 01:55:20 +0800 Subject: [PATCH] feat: add wechat company service account --- README.md | 152 ++++++++++++++++++-- app.py | 2 +- bridge/bridge.py | 2 +- channel/channel_factory.py | 8 +- channel/wechat/wechat_channel.py | 23 +-- channel/wechat/wechat_mp_channel.py | 11 +- channel/wechat/wechat_mp_service_channel.py | 36 +++++ common/const.py | 1 + config-template.json | 33 +++-- config.py | 24 +++- docs/images/wx_mp_config.png | Bin 0 -> 129124 bytes model/openai/open_ai_model.py | 8 +- 12 files changed, 249 insertions(+), 51 deletions(-) create mode 100644 channel/wechat/wechat_mp_service_channel.py create mode 100644 docs/images/wx_mp_config.png diff --git a/README.md b/README.md index 702d996d..c21117ff 100644 --- a/README.md +++ b/README.md @@ -5,21 +5,18 @@ **模型:** - [x] ChatGPT - - ... **应用:** - [ ] 终端 - [ ] Web - [x] 个人微信 - - [x] 公众号 + - [x] 公众号 (个人/企业) - [ ] 企业微信 - [ ] Telegram - [ ] QQ - [ ] 钉钉 - - ... - - + - [ ] 飞书 # 快速开始 @@ -39,24 +36,159 @@ cd bot-on-anything/ ### 2.配置说明 -核心配置文件为 `config.json`, +核心配置文件为 `config.json`,项目中提供了模板文件 `config-template.json` ,可以从模板复制生成最终生效的 `config.json` 文件: +```bash +cp config-template.json config.json +``` + +配置文件结构如下: + +```bash +{ + "model": { + "type" : "openai", # 选用的算法模型 + "openai": { + # openAI配置 + } + }, + "channel": { + "type": "wechat_mp", # 需要接入的应用 + "wechat": { + # 个人微信配置 + }, + "wechat_mp": { + # 公众号配置 + } + } +} +``` +配置文件在最外层分成 `model` 和 `channel` 两部分,model 部分为模型配置,其中的 `type` 指定了选用哪个模型;`channel` 部分包含了应用渠道的配置,`type` 字段指定了接入哪个应用,同时下方对应的配置块也会生效。 + +在使用时只需要更改 `model` 和 `channel` 配置块下的 `type` 字段,即可在任意模型和应用间完成切换,连接不同的通路。下面将依次介绍各个 模型 及 应用 的配置和运行过程。 ## 二、选择模型 ### 1.ChatGPT +#### 1.1 注册 OpenAI 账号 + +前往 [OpenAI注册页面](https://beta.openai.com/signup) 创建账号,参考这篇 [教程](https://www.cnblogs.com/damugua/p/16969508.html) 可以通过虚拟手机号来接收验证码。创建完账号则前往 [API管理页面](https://beta.openai.com/account/api-keys) 创建一个 API Key 并保存下来,后面需要在项目中配置这个key。 + +> 项目中使用的对话模型是 davinci,计费方式是约每 750 字 (包含请求和回复) 消耗 $0.02,图片生成是每张消耗 $0.016,账号创建有免费的 $18 额度,使用完可以更换邮箱重新注册。 + +#### 1.2 配置项说明 + +```bash +{ + "model": { + "type" : "openai", + + "openai": { + "api_key": "YOUR API KEY", + "conversation_max_tokens": 1000, + "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。" + } +} +``` ++ `api_key`:填入上面注册账号时创建的 `OpenAI API KEY` ++ `conversation_max_tokens`:表示能够记忆的上下文最大字数(一问一答为一组对话,如果累积的对话字数超出限制,就会优先移除最早的一组对话) ++ `character_desc` 配置中保存着你对机器人说的一段话,他会记住这段话并作为他的设定,你可以为他定制任何人格 + + +## 三、运行应用 + +### 1.个人微信 + +与项目 [chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat) 的使用方式相同,目前接入个人微信可能导致账号被限制,暂时不建议使用。 + +配置项说明: + +```bash +"channel": { + "type": "wechat", + + "single_chat_prefix": ["bot", "@bot"], + "single_chat_reply_prefix": "[bot] ", + "group_chat_prefix": ["@bot"], + "group_name_white_list": ["ChatGPT测试群"], + "image_create_prefix": ["画", "看", "找一张"], + + "wechat": { + } +} +``` +个人微信的配置项放在和 `type` 同级的层次,表示这些为公共配置,会复用于其他应用。配置加载时会优先使用模块内的配置,如果未找到便使用公共配置。 + +在项目根目录下执行 `python3 app.py` 即可启动程序,用手机扫码后完成登录,使用详情参考 [chatgpt-on-wechat](https://github.com/zhayujie/chatgpt-on-wechat)。 + +### 2.个人订阅号 + +#### 2.1 依赖安装 + +安装 [werobot](https://github.com/offu/WeRoBot) 依赖: + +```bash +pip3 install werobot +``` + +#### 2.2 配置 + +```bash +"channel": { + "type": "wechat_mp", + + "wechat_mp": { + "token": "YOUR TOKEN", # token值 + "port": "8088" # 程序启动监听的端口 + } +} +``` + +#### 2.1 运行程序 + +在项目目录下运行 `python3 app.py`,终端显示如下则表示已成功运行: -## 三、选择应用 +``` +[INFO][2023-02-16 01:39:53][app.py:12] - [INIT] load config: ... +[INFO][2023-02-16 01:39:53][wechat_mp_channel.py:25] - [WX_Public] Wechat Public account service start! +Bottle v0.12.23 server starting up (using AutoServer())... +Listening on http://127.0.0.1:8088/ +Hit Ctrl-C to quit. +``` -### 1.微信 +#### 2.2 设置公众号回调地址 +在 [微信公众平台](https://mp.weixin.qq.com/) 中进入个人订阅号,启用服务器配置: -### 2.公众号 +![wx_mp_config.png](docs/images/wx_mp_config.png) +- 服务器地址 (URL):在浏览器访问该URL需要能访问到服务器上运行的python程序 (默认为8088端口) +- 令牌 (Token):需和配置中的token一致 +#### 2.3 使用 +用户关注订阅号后,发送消息即可。 -## 四、运行 +> 注:用户发送消息后,微信后台会向配置的URL地址推送,但如果5s内未回复就会断开连接,同时重试3次,但往往请求openai接口不止5s。本项目中通过异步和缓存将5s超时限制优化至15s,但超出该时间仍无法正常回复。 同时每次5s连接断开时web框架会报错,待后续优化。 + +### 3.企业服务号 + +在企业服务号中,通过先异步访问openai接口,再通过客服接口主动推送用户的方式,解决了个人订阅号的15s超时问题。 + +企业服务号配置只需修改type为`wechat_mp_service`,配置块仍复用 `wechat_mp`,在基础上增加了 `app_id` 和 `app_secret` 两个配置项。 + +```bash +"channel": { + "type": "wechat_mp_service", + + "wechat_mp": { + "token": "YOUR TOKEN", # token值 + "port": "8088", # 程序启动监听的端口 + "app_id": "YOUR APP ID", # appID + "app_secret": "YOUR APP SECRET" # app secret + } +} +``` diff --git a/app.py b/app.py index fa41023b..d5e03280 100644 --- a/app.py +++ b/app.py @@ -12,7 +12,7 @@ logger.info("[INIT] load config: {}".format(config.conf())) # create channel - channel = channel_factory.create_channel(config.conf().get("channel")) + channel = channel_factory.create_channel(config.conf().get("channel").get("type")) # startup channel channel.startup() diff --git a/bridge/bridge.py b/bridge/bridge.py index bc5b2f3b..9e19251c 100644 --- a/bridge/bridge.py +++ b/bridge/bridge.py @@ -6,4 +6,4 @@ def __init__(self): pass def fetch_reply_content(self, query, context): - return model_factory.create_bot(config.conf().get("model")).reply(query, context) + return model_factory.create_bot(config.conf().get("model").get("type")).reply(query, context) diff --git a/channel/channel_factory.py b/channel/channel_factory.py index ad60c4be..0758a7a2 100644 --- a/channel/channel_factory.py +++ b/channel/channel_factory.py @@ -14,8 +14,12 @@ def create_channel(channel_type): return WechatChannel() elif channel_type == const.WECHAT_MP: - from channel.wechat.wechat_mp_channel import WechatPublicAccount - return WechatPublicAccount() + from channel.wechat.wechat_mp_channel import WechatSubsribeAccount + return WechatSubsribeAccount() + + elif channel_type == const.WECHAT_MP_SERVICE: + from channel.wechat.wechat_mp_service_channel import WechatServiceAccount + return WechatServiceAccount() else: raise RuntimeError diff --git a/channel/wechat/wechat_channel.py b/channel/wechat/wechat_channel.py index 75c3c687..ea3f3ff9 100644 --- a/channel/wechat/wechat_channel.py +++ b/channel/wechat/wechat_channel.py @@ -9,7 +9,8 @@ from channel.channel import Channel from concurrent.futures import ThreadPoolExecutor from common.log import logger -from config import conf +from common import const +from config import channel_conf_val, channel_conf import requests import io @@ -45,7 +46,7 @@ def handle(self, msg): to_user_id = msg['ToUserName'] # 接收人id other_user_id = msg['User']['UserName'] # 对手方id content = msg['Text'] - match_prefix = self.check_prefix(content, conf().get('single_chat_prefix')) + match_prefix = self.check_prefix(content, channel_conf_val(const.WECHAT, 'single_chat_prefix')) if from_user_id == other_user_id and match_prefix is not None: # 好友向自己发送消息 if match_prefix != '': @@ -53,7 +54,7 @@ def handle(self, msg): if len(str_list) == 2: content = str_list[1].strip() - img_match_prefix = self.check_prefix(content, conf().get('image_create_prefix')) + img_match_prefix = self.check_prefix(content, channel_conf_val(const.WECHAT, 'image_create_prefix')) if img_match_prefix: content = content.split(img_match_prefix, 1)[1].strip() thread_pool.submit(self._do_send_img, content, from_user_id) @@ -65,7 +66,7 @@ def handle(self, msg): str_list = content.split(match_prefix, 1) if len(str_list) == 2: content = str_list[1].strip() - img_match_prefix = self.check_prefix(content, conf().get('image_create_prefix')) + img_match_prefix = self.check_prefix(content, channel_conf_val(const.WECHAT, 'image_create_prefix')) if img_match_prefix: content = content.split(img_match_prefix, 1)[1].strip() thread_pool.submit(self._do_send_img, content, to_user_id) @@ -88,11 +89,11 @@ def handle_group(self, msg): elif len(content_list) == 2: content = content_list[1] - config = conf() - match_prefix = (msg['IsAt'] and not config.get("group_at_off", False)) or self.check_prefix(origin_content, config.get('group_chat_prefix')) \ - or self.check_contain(origin_content, config.get('group_chat_keyword')) - if ('ALL_GROUP' in config.get('group_name_white_list') or group_name in config.get('group_name_white_list') or self.check_contain(group_name, config.get('group_name_keyword_white_list'))) and match_prefix: - img_match_prefix = self.check_prefix(content, conf().get('image_create_prefix')) + match_prefix = (msg['IsAt'] and not channel_conf_val(const.WECHAT, "group_at_off", False)) or self.check_prefix(origin_content, channel_conf_val(const.WECHAT, 'group_chat_prefix')) \ + or self.check_contain(origin_content, channel_conf_val(const.WECHAT, 'group_chat_keyword')) + group_white_list = channel_conf_val(const.WECHAT, 'group_name_white_list') + if ('ALL_GROUP' in group_white_list or group_name in group_white_list or self.check_contain(group_name, channel_conf_val(const.WECHAT, 'group_name_keyword_white_list'))) and match_prefix: + img_match_prefix = self.check_prefix(content, channel_conf_val(const.WECHAT, 'image_create_prefix')) if img_match_prefix: content = content.split(img_match_prefix, 1)[1].strip() thread_pool.submit(self._do_send_img, content, group_id) @@ -111,7 +112,7 @@ def _do_send(self, query, reply_user_id): context['from_user_id'] = reply_user_id reply_text = super().build_reply_content(query, context) if reply_text: - self.send(conf().get("single_chat_reply_prefix") + reply_text, reply_user_id) + self.send(channel_conf_val(const.WECHAT, "single_chat_reply_prefix") + reply_text, reply_user_id) except Exception as e: logger.exception(e) @@ -146,7 +147,7 @@ def _do_send_group(self, query, msg): reply_text = super().build_reply_content(query, context) if reply_text: reply_text = '@' + msg['ActualNickName'] + ' ' + reply_text.strip() - self.send(conf().get("group_chat_reply_prefix", "") + reply_text, msg['User']['UserName']) + self.send(channel_conf_val(const.WECHAT, "group_chat_reply_prefix", "") + reply_text, msg['User']['UserName']) def check_prefix(self, content, prefix_list): diff --git a/channel/wechat/wechat_mp_channel.py b/channel/wechat/wechat_mp_channel.py index 6a4fac63..79a4efdb 100644 --- a/channel/wechat/wechat_mp_channel.py +++ b/channel/wechat/wechat_mp_channel.py @@ -1,12 +1,12 @@ import werobot import time -import config +from config import channel_conf from common import const from common.log import logger from channel.channel import Channel from concurrent.futures import ThreadPoolExecutor -robot = werobot.WeRoBot(token=config.fetch(const.WECHAT_MP).get('token')) +robot = werobot.WeRoBot(token=channel_conf(const.WECHAT_MP).get('token')) thread_pool = ThreadPoolExecutor(max_workers=8) cache = {} @@ -15,14 +15,15 @@ def hello_world(msg): logger.info('[WX_Public] receive public msg: {}, userId: {}'.format(msg.content, msg.source)) key = msg.content + '|' + msg.source if cache.get(key): + # request time cache.get(key)['req_times'] += 1 - return WechatPublicAccount().handle(msg) + return WechatSubsribeAccount().handle(msg) -class WechatPublicAccount(Channel): +class WechatSubsribeAccount(Channel): def startup(self): logger.info('[WX_Public] Wechat Public account service start!') - robot.config['PORT'] = config.fetch(const.WECHAT_MP).get('port') + robot.config['PORT'] = channel_conf(const.WECHAT_MP).get('port') robot.run() def handle(self, msg, count=0): diff --git a/channel/wechat/wechat_mp_service_channel.py b/channel/wechat/wechat_mp_service_channel.py new file mode 100644 index 00000000..14677246 --- /dev/null +++ b/channel/wechat/wechat_mp_service_channel.py @@ -0,0 +1,36 @@ +import werobot +from config import channel_conf +from common import const +from common.log import logger +from channel.channel import Channel +from concurrent.futures import ThreadPoolExecutor + +robot = werobot.WeRoBot(token=channel_conf(const.WECHAT_MP).get('token')) +thread_pool = ThreadPoolExecutor(max_workers=8) + +@robot.text +def hello_world(msg): + logger.info('[WX_Public] receive public msg: {}, userId: {}'.format(msg.content, msg.source)) + return WechatServiceAccount().handle(msg) + + +class WechatServiceAccount(Channel): + def startup(self): + logger.info('[WX_Public] Wechat Public account service start!') + robot.config['PORT'] = channel_conf(const.WECHAT_MP).get('port') + robot.config["APP_ID"] = "YOUR APP ID" + robot.config["APP_SECRET"] = "YOUR APP SECRET" + robot.run() + + def handle(self, msg, count=0): + context = {} + context['from_user_id'] = msg.source + thread_pool.submit(self._do_send, msg.content, context) + return "正在思考中..." + + + def _do_send(self, query, context): + reply_text = super().build_reply_content(query, context) + logger.info('[WX_Public] reply content: {}'.format(reply_text)) + client = robot.client + client.send_text_message(context['from_user_id'], reply_text) diff --git a/common/const.py b/common/const.py index 1f525c40..1ae175fc 100644 --- a/common/const.py +++ b/common/const.py @@ -1,6 +1,7 @@ # channel WECHAT = "wechat" WECHAT_MP = "wechat_mp" +WECHAT_MP_SERVICE = "wechat_mp_service" # model OPEN_AI = "openai" diff --git a/config-template.json b/config-template.json index d524472d..f6c2991e 100644 --- a/config-template.json +++ b/config-template.json @@ -1,23 +1,26 @@ { - "channel": "wechat", - "bot": "openai", - - "openai": { - "api_key": "YOUR API KEY", - "conversation_max_tokens": 1000, - "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。" + "model": { + "type" : "openai", + "openai": { + "api_key": "YOUR API KEY", + "conversation_max_tokens": 1000, + "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。" + } }, - - "wechat": { + "channel": { + "type": "wechat_mp", "single_chat_prefix": ["bot", "@bot"], "single_chat_reply_prefix": "[bot] ", "group_chat_prefix": ["@bot"], - "group_name_white_list": ["ALL_GROUP"], - "image_create_prefix": ["画", "看", "找一张"] - }, + "group_name_white_list": ["ChatGPT测试群"], + "image_create_prefix": ["画", "看", "找一张"], + + "wechat": { + }, - "wechat_mp": { - "token": "YOUR TOKEN", - "port": "8088" + "wechat_mp": { + "token": "YOUR TOKEN", + "port": "8088" + } } } diff --git a/config.py b/config.py index e203b8da..755421a5 100644 --- a/config.py +++ b/config.py @@ -28,5 +28,25 @@ def read_file(path): def conf(): return config -def fetch(model): - return config.get(model) + +def model_conf(model_type): + return config.get('model').get(model_type) + +def model_conf_val(model_type, key): + val = config.get('model').get(model_type).get(key) + if not val: + # common default config + return config.get('model').get(key) + return val + + +def channel_conf(channel_type): + return config.get('channel').get(channel_type) + + +def channel_conf_val(channel_type, key, default=None): + val = config.get('channel').get(channel_type).get(key) + if not val: + # common default config + return config.get('channel').get(key, default) + return val diff --git a/docs/images/wx_mp_config.png b/docs/images/wx_mp_config.png new file mode 100644 index 0000000000000000000000000000000000000000..a84beaddf7d2cb480d6b23534de689742ef3bd8e GIT binary patch literal 129124 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 z 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®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 XZRc9i9L1G0;7{VdtZ0Vtqo@A^*A3zX literal 0 HcmV?d00001 diff --git a/model/openai/open_ai_model.py b/model/openai/open_ai_model.py index 8fbd4bf3..dd75ca2b 100644 --- a/model/openai/open_ai_model.py +++ b/model/openai/open_ai_model.py @@ -1,7 +1,7 @@ # encoding:utf-8 from model.model import Model -from config import fetch +from config import model_conf from common import const from common.log import logger import openai @@ -12,7 +12,7 @@ # OpenAI对话模型API (可用) class OpenAIModel(Model): def __init__(self): - openai.api_key = fetch(const.OPEN_AI).get('api_key') + openai.api_key = model_conf(const.OPEN_AI).get('api_key') def reply(self, query, context=None): @@ -103,7 +103,7 @@ def build_session_query(query, user_id): :param user_id: from user id :return: query content with conversaction ''' - prompt = fetch(const.OPEN_AI).get("character_desc", "") + prompt = model_conf(const.OPEN_AI).get("character_desc", "") if prompt: prompt += "<|endoftext|>\n\n\n" session = user_session.get(user_id, None) @@ -117,7 +117,7 @@ def build_session_query(query, user_id): @staticmethod def save_session(query, answer, user_id): - max_tokens = fetch(const.OPEN_AI).get("conversation_max_tokens") + max_tokens = model_conf(const.OPEN_AI).get("conversation_max_tokens") if not max_tokens: # default 3000 max_tokens = 1000