mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-06-02 00:57:41 +08:00
feat: use logging
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
from bot.bot import Bot
|
from bot.bot import Bot
|
||||||
from revChatGPT.revChatGPT import Chatbot
|
from revChatGPT.revChatGPT import Chatbot
|
||||||
|
from common.log import logger
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
"Authorization": "<Your Bearer Token Here>", # This is optional
|
"Authorization": "<Your Bearer Token Here>", # This is optional
|
||||||
@@ -15,12 +16,12 @@ class ChatGPTBot(Bot):
|
|||||||
def reply(self, query, context=None):
|
def reply(self, query, context=None):
|
||||||
|
|
||||||
from_user_id = context['from_user_id']
|
from_user_id = context['from_user_id']
|
||||||
print("[GPT]query={}, user_id={}, session={}".format(query, from_user_id, user_session))
|
logger.info("[GPT]query={}, user_id={}, session={}".format(query, from_user_id, user_session))
|
||||||
|
|
||||||
now = time.time()
|
now = time.time()
|
||||||
global last_session_refresh
|
global last_session_refresh
|
||||||
if now - last_session_refresh > 60 * 8:
|
if now - last_session_refresh > 60 * 8:
|
||||||
print('[GPT]session refresh, now={}, last={}'.format(now, last_session_refresh))
|
logger.info('[GPT]session refresh, now={}, last={}'.format(now, last_session_refresh))
|
||||||
chatbot.refresh_session()
|
chatbot.refresh_session()
|
||||||
last_session_refresh = now
|
last_session_refresh = now
|
||||||
|
|
||||||
@@ -33,13 +34,11 @@ class ChatGPTBot(Bot):
|
|||||||
else:
|
else:
|
||||||
chatbot.reset_chat()
|
chatbot.reset_chat()
|
||||||
|
|
||||||
print("[GPT]convId={}, parentId={}".format(chatbot.conversation_id, chatbot.parent_id))
|
logger.info("[GPT]convId={}, parentId={}".format(chatbot.conversation_id, chatbot.parent_id))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
res = chatbot.get_chat_response(query, output="text")
|
res = chatbot.get_chat_response(query, output="text")
|
||||||
print("[GPT]userId={}, res={}".format(from_user_id, res))
|
logger.info("[GPT]userId={}, res={}".format(from_user_id, res))
|
||||||
|
|
||||||
user_cache = dict()
|
user_cache = dict()
|
||||||
user_cache['last_reply_time'] = time.time()
|
user_cache['last_reply_time'] = time.time()
|
||||||
@@ -48,5 +47,5 @@ class ChatGPTBot(Bot):
|
|||||||
user_session[from_user_id] = user_cache
|
user_session[from_user_id] = user_cache
|
||||||
return res['message']
|
return res['message']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
logger.error(e)
|
||||||
return None
|
return None
|
||||||
|
|||||||
@@ -7,4 +7,3 @@ class Bridge(object):
|
|||||||
|
|
||||||
def fetch_reply_content(self, query, context):
|
def fetch_reply_content(self, query, context):
|
||||||
return bot_factory.create_bot("chatGPT").reply(query, context)
|
return bot_factory.create_bot("chatGPT").reply(query, context)
|
||||||
# return bot_factory.create_bot("baidu").reply(query, context)
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import json
|
|||||||
from itchat.content import *
|
from itchat.content import *
|
||||||
from channel.channel import Channel
|
from channel.channel import Channel
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
|
from common.log import logger
|
||||||
|
|
||||||
thead_pool = ThreadPoolExecutor(max_workers=8)
|
thead_pool = ThreadPoolExecutor(max_workers=8)
|
||||||
|
|
||||||
@@ -20,6 +21,10 @@ def handler_group_msg(msg):
|
|||||||
WechatChannel().handle_group(msg)
|
WechatChannel().handle_group(msg)
|
||||||
|
|
||||||
|
|
||||||
|
group_white_list = ['学就完事了', '小宝群', '全天乱斗模式', '戒赌吧', '命苦还要快乐', '攒钱让姐妹当小三的组织',
|
||||||
|
'快乐家人', '技术沙龙', '流动性混子', '计算机学习交流', '如何评价']
|
||||||
|
|
||||||
|
|
||||||
class WechatChannel(Channel):
|
class WechatChannel(Channel):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
@@ -32,7 +37,7 @@ class WechatChannel(Channel):
|
|||||||
itchat.run()
|
itchat.run()
|
||||||
|
|
||||||
def handle(self, msg):
|
def handle(self, msg):
|
||||||
print("[WX]receive msg: " + json.dumps(msg, ensure_ascii=False))
|
logger.info("[WX]receive msg: " + json.dumps(msg, ensure_ascii=False))
|
||||||
from_user_id = msg['FromUserName']
|
from_user_id = msg['FromUserName']
|
||||||
other_user_id = msg['User']['UserName']
|
other_user_id = msg['User']['UserName']
|
||||||
content = msg['Text']
|
content = msg['Text']
|
||||||
@@ -43,8 +48,7 @@ class WechatChannel(Channel):
|
|||||||
thead_pool.submit(self._do_send, content, from_user_id)
|
thead_pool.submit(self._do_send, content, from_user_id)
|
||||||
|
|
||||||
def handle_group(self, msg):
|
def handle_group(self, msg):
|
||||||
group_white_list = ['学就完事了', '小宝群', '全天乱斗模式', '戒赌吧', '命苦还要快乐','攒钱让姐妹当小三的组织']
|
logger.info("[WX]receive group msg: " + json.dumps(msg, ensure_ascii=False))
|
||||||
print("[WX]receive group msg: " + json.dumps(msg, ensure_ascii=False))
|
|
||||||
group_id = msg['User']['UserName']
|
group_id = msg['User']['UserName']
|
||||||
group_name = msg['User'].get('NickName', None)
|
group_name = msg['User'].get('NickName', None)
|
||||||
if not group_name:
|
if not group_name:
|
||||||
@@ -63,7 +67,7 @@ class WechatChannel(Channel):
|
|||||||
|
|
||||||
def send(self, msg, receiver):
|
def send(self, msg, receiver):
|
||||||
# time.sleep(random.randint(1, 3))
|
# time.sleep(random.randint(1, 3))
|
||||||
print('[WX] sendMsg={}, receiver={}'.format(msg, receiver))
|
logger.info('[WX] sendMsg={}, receiver={}'.format(msg, receiver))
|
||||||
itchat.send(msg, toUserName=receiver)
|
itchat.send(msg, toUserName=receiver)
|
||||||
|
|
||||||
def _do_send(self, send_msg, reply_user_id):
|
def _do_send(self, send_msg, reply_user_id):
|
||||||
|
|||||||
16
common/log.py
Normal file
16
common/log.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def _get_logger():
|
||||||
|
log = logging.getLogger('log')
|
||||||
|
log.setLevel(logging.DEBUG)
|
||||||
|
console_handle = logging.StreamHandler(sys.stdout)
|
||||||
|
console_handle.setFormatter(logging.Formatter('[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d] - %(message)s',
|
||||||
|
datefmt='%Y-%m-%d %H:%M:%S'))
|
||||||
|
log.addHandler(console_handle)
|
||||||
|
return log
|
||||||
|
|
||||||
|
|
||||||
|
# 日志句柄
|
||||||
|
logger = _get_logger()
|
||||||
Reference in New Issue
Block a user