@@ -1,7 +1,10 @@ | |||
from flask_restful import Resource, reqparse | |||
from flask import jsonify,request,json | |||
from common import redis_helper,utils | |||
from wechat import gewe_chat | |||
from wechat import gewe_chat,biz | |||
from common.log import logger, log_exception | |||
import time | |||
class GetLoginInfoResource(Resource): | |||
@@ -39,12 +42,45 @@ class GetLoginWxQRCodeResource(Resource): | |||
tel= req.get("tel") | |||
region_id= req.get("regionId") | |||
agent_token_id= req.get("agentTokenId") | |||
loginfo=gewe_chat.wxchat.get_login_info_from_cache(tel) | |||
status=loginfo.get('status','0') | |||
if status=='1': | |||
msg=f'手机号{tel},wx_token{token_id} 已经微信登录,终止登录流程' | |||
logger.info(msg) | |||
response=jsonify({'code': 501, 'message': msg}) | |||
response.status_code = 501 | |||
return response | |||
expried_time=int(time.time())+800 | |||
flag=gewe_chat.wxchat.acquire_login_lock(token_id,800) | |||
if not flag: | |||
msg=f'手机号{tel}, wx_token{token_id} 登录进行中,稍后再试' | |||
logger.info(msg) | |||
response=jsonify({'code': 501, 'message': msg}) | |||
response.status_code = 501 | |||
return response | |||
app_id=loginfo.get('app_id','') | |||
qr_code = gewe_chat.wxchat.get_login_qr_code(token_id, app_id,region_id) | |||
base64_string = qr_code.get('qrImgBase64') | |||
uuid = qr_code.get('uuid') | |||
if not uuid: | |||
msg=f"uuid获取二维码失败,uuid: {uuid}" | |||
gewe_chat.wxchat.release_login_lock(token_id) | |||
logger.info(msg) | |||
response=jsonify({'code': 501, 'message': msg}) | |||
response.status_code = 501 | |||
return response | |||
data={ | |||
"tokenId": token_id, | |||
"tel": tel, | |||
"base64Img": "data:image/png;base64,"+"aaaaaa", | |||
"expiredTime": "12345678901", | |||
"base64Img": base64_string, | |||
"expiredTime": expried_time, | |||
} | |||
return jsonify(data) | |||
@@ -319,7 +319,7 @@ def ai_chat_text(token_id,app_id,wxid,msg_data,msg_content): | |||
if isinstance(reply_content, list) : | |||
reply_content=reply_content[0].get('text').get("content") | |||
reply_content=remove_markdown_symbol(reply_content[0].get('text').get("content")) | |||
else: | |||
reply_content=text | |||
@@ -327,8 +327,8 @@ def ai_chat_text(token_id,app_id,wxid,msg_data,msg_content): | |||
memory.USER_INTERACTIVE_CACHE[wxid] = { | |||
"interactive":False | |||
} | |||
reply_content=res["choices"][0]["message"]["content"] | |||
reply_content=remove_markdown_symbol(res["choices"][0]["message"]["content"]) | |||
gewe_chat.wxchat.post_text(token_id,app_id,callback_to_user,reply_content) | |||
gewe_chat.wxchat.save_session_messages_to_cache(hash_key, {"role": "assistant", "content": reply_content}) | |||
# 回复的对话 | |||
@@ -873,8 +873,31 @@ def check_chatroom(userName): | |||
return True | |||
return False | |||
# def remove_markdown_symbol(text: str): | |||
# # 移除markdown格式,目前先移除** | |||
# if not text or not isinstance(text, str): | |||
# return text | |||
# return re.sub(r'\*\*(.*?)\*\*', r'\1', text) | |||
def remove_markdown_symbol(text: str): | |||
# 移除markdown格式,目前先移除** | |||
if not text or not isinstance(text, str): | |||
return text | |||
return re.sub(r'\*\*(.*?)\*\*', r'\1', text) | |||
# 去除加粗、斜体等格式 | |||
#text = re.sub(r'\*\*([^*]+)\*\*', r'\1', text) # 去除加粗 | |||
text=re.sub(r'\*\*(.*?)\*\*', r'\1', text) | |||
text = re.sub(r'\*([^*]+)\*', r'\1', text) # 去除斜体 | |||
text = re.sub(r'__([^_]+)__', r'\1', text) # 去除加粗(下划线) | |||
text = re.sub(r'_(.*?)_', r'\1', text) # 去除斜体(下划线) | |||
# 去除行内代码块 | |||
text = re.sub(r'`([^`]+)`', r'\1', text) | |||
# 去除换行符\n,或者多余的空格 | |||
#text = re.sub(r'\n+', ' ', text) | |||
# 去除列表编号等 | |||
#text = re.sub(r'^\d+\.\s*', '', text, flags=re.MULTILINE) | |||
print(text) | |||
return text |