From 27678c5dd2d82e0a590e252ba1cecf4f5b68c063 Mon Sep 17 00:00:00 2001 From: collapsarl <719258920@qq.com> Date: Wed, 22 Mar 2023 02:43:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chatbotv3.py | 4 ++-- main.py | 40 ++++++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/chatbotv3.py b/chatbotv3.py index ddab3a2..918e038 100644 --- a/chatbotv3.py +++ b/chatbotv3.py @@ -148,12 +148,12 @@ def ask_stream( full_response += content yield content self.add_to_conversation(full_response, response_role, convo_id=convo_id) - print("[ask_stream]", full_response) def ask(self, prompt: str, role: str = "user", convo_id: str = "default", **kwargs): """ Non-streaming ask """ + print("[ask]", prompt) response = self.ask_stream( prompt=prompt, role=role, @@ -161,7 +161,7 @@ def ask(self, prompt: str, role: str = "user", convo_id: str = "default", **kwar **kwargs, ) full_response: str = "".join(response) - print("[ask]", full_response) + print("[bot]", full_response) return full_response def rollback(self, n: int = 1, convo_id: str = "default"): diff --git a/main.py b/main.py index fd08271..ffa090a 100644 --- a/main.py +++ b/main.py @@ -9,8 +9,7 @@ os.environ['GPT_ENGINE'] = 'gpt-3.5-turbo' api_key = os.environ.get('API_KEY') chatbot = Chatbot(api_key=api_key) -last_answer = "" -isQuerying = False +answerList=list() app = Flask(__name__) @@ -59,30 +58,35 @@ def wechat(): if 'text' == req.get('MsgType'): # 获取用户的信息,开始构造返回数据 try: - global isQuerying - global last_answer - if not isQuerying and len(last_answer) != 0 and (req.get('Content') == '。'): - resp = { - 'ToUserName':req.get('FromUserName'), - 'FromUserName':req.get('ToUserName'), - 'CreateTime':int(time.time()), - 'MsgType':'text', - 'Content': last_answer - } + if req.get('Content') in ['。', '你好', 'hi']: + if len(answerList) == 0: + resp = { + 'ToUserName':req.get('FromUserName'), + 'FromUserName':req.get('ToUserName'), + 'CreateTime':int(time.time()), + 'MsgType':'text', + 'Content': '请提问,或者回复“。”(中文句号)等待回答...' + } + else: + resp = { + 'ToUserName':req.get('FromUserName'), + 'FromUserName':req.get('ToUserName'), + 'CreateTime':int(time.time()), + 'MsgType':'text', + 'Content': answerList.pop() + } xml = xmltodict.unparse({'xml':resp}) return xml else: + answer = chatbot.ask(req.get('Content')) + answerList.append(answer) resp = { 'ToUserName':req.get('FromUserName'), 'FromUserName':req.get('ToUserName'), 'CreateTime':int(time.time()), 'MsgType':'text', - 'Content': "正在请求,稍后回复中文句号查询结果" + 'Content': answer } - if not isQuerying: - isQuerying = True - last_answer = chatbot.ask(req.get('Content')) - isQuerying = False # 把构造的字典转换成xml格式 xml = xmltodict.unparse({'xml':resp}) return xml @@ -92,7 +96,7 @@ def wechat(): 'FromUserName':req.get('ToUserName'), 'CreateTime':int(time.time()), 'MsgType':'text', - 'Content':'好像发生了点问题,请稍后再重新提问~'+str(e) + 'Content':'好像发生了点问题,请稍后再重新提问:'+str(e) } xml = xmltodict.unparse({'xml':resp}) return xml