diff --git a/main.py b/main.py index 8ad719e..3ae912a 100644 --- a/main.py +++ b/main.py @@ -44,6 +44,55 @@ def is_chinese(char): return '\u4e00' <= char <= '\u9fff' +def chatglmApi(msg, data, group, account_wxid, wxid, wx_name): + # 不是自己发的消息 + if data.get('isSender') != 1: + # chaglm api在本地8000端口 + # winHookUrl='http://192.168.31.184:8000/img' + winHookUrl = 'http://chatbot.hackrobot.cn/img' + payload = {'query': msg} + print("msg=====>",msg) + newPayload = json.loads(json.dumps(payload)) + res = requests.post(winHookUrl, json=newPayload) + r = res.json() + answer = r.get("answer", "No answer provided") + # 收到群聊消息 + if group: + # 异度世界交流群2 48357370389@chatroom | 小号群18507867712@chatroom + if group == "18507867712@chatroom" or group == "48357370389@chatroom": + # 群聊被@ + if "@异度世界" in msg: + groupanswer = f'@{wx_name} ,{answer} \n [本消息是机器人bot自动回复]' + if "/img" in msg: + newanswer = re.sub(r'#web_img\s+', '', answer) + WXBotService.send_image_message( + robot_wxid=account_wxid, + from_wxid=wxid, + msg=newanswer) + else: + # 发送 @ 消息 + WXBotService.send_at_message(robot_wxid=account_wxid, + from_wxid=group, + msg=groupanswer, + wx_list=wxid) + else: + # 其他群组消息,不做响应 + pass + else: + # newanswer="@"+wx_name+", "+answer + if "/img" in msg: + newanswer = re.sub(r'#web_img\s+', '', answer) + WXBotService.send_image_message(robot_wxid=account_wxid, + from_wxid=wxid, + msg=newanswer) + else: + newanswer = f'@{wx_name} ,{answer} \n [本消息是机器人bot自动回复]' + print(newanswer) + WXBotService.send_text_message(robot_wxid=account_wxid, + from_wxid=wxid, + msg=newanswer) + + def convert_special_chars_to_emoji(input_string): output = [] for char in input_string: @@ -431,18 +480,19 @@ def kp(event_data): if msg_type == 1: # 1 文本消息/自带表情 kp_log = f'{type_str} 文本消息 内容:{msg}' - + # 收到群聊消息 if group: # 异度世界交流群2 48357370389@chatroom | 小号群18507867712@chatroom - if group=="18507867712@chatroom" or group=="48357370389@chatroom": + if group == "18507867712@chatroom" or group == "48357370389@chatroom": # 群聊被@ if "@异度世界" in msg: # 发送 @ 消息 - WXBotService.send_at_message(robot_wxid=account_wxid, - from_wxid=group, - msg=f'@{wx_name} testgroup', - wx_list=wxid) + WXBotService.send_at_message( + robot_wxid=account_wxid, + from_wxid=group, + msg=f'@{wx_name} testgroup', + wx_list=wxid) else: # 其他群组消息,不做响应 pass @@ -485,32 +535,8 @@ def kp(event_data): "https://www.hackrobot.cn/wp-content/uploads/2023/05/cropped-cropped-Screenshot-2023-05-22-at-17.26.38.png" ) else: - pass - # # 判断私聊还是群聊 - # # 指定群聊房间 - - # # 不是自己发的消息 - # if data.get('isSender') != 1: - # # chaglm api在本地8000端口 - # # winHookUrl='http://192.168.31.184:8000/img' - # winHookUrl = 'http://chatbot.hackrobot.cn/img' - # payload = {'query': msg} - # newPayload=json.loads(json.dumps(payload)) - # res = requests.post(winHookUrl, json=newPayload) - # r = res.json() - # answer = r.get("answer", "No answer provided") - # # newanswer="@"+wx_name+", "+answer - # if "/img" in msg: - # newanswer = re.sub(r'#web_img\s+', '', answer) - # WXBotService.send_image_message(robot_wxid=account_wxid, - # from_wxid=wxid, - # msg=newanswer) - # else: - # newanswer=f'@{wx_name} ,{answer} \n [本消息是机器人bot自动回复]' - # print(newanswer) - # WXBotService.send_text_message(robot_wxid=account_wxid, - # from_wxid=wxid, - # msg=newanswer) + # 回复ai消息 + chatglmApi(msg, data, group, account_wxid, wxid, wx_name) # if msg in ['腾讯云']: # # 发送小程序