Skip to content

Commit

Permalink
多用户回答分离
Browse files Browse the repository at this point in the history
  • Loading branch information
liufufa committed Mar 22, 2023
1 parent 27678c5 commit dac8f0d
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,17 @@

os.environ['GPT_ENGINE'] = 'gpt-3.5-turbo'
api_key = os.environ.get('API_KEY')
chatbot = Chatbot(api_key=api_key)
answerList=list()
bot_list: dict = {
'': Chatbot(api_key=api_key)
}
#回答列表
a_list: dict = {
'': list()
}
#问题列表
q_list: dict = {
'': list()
}


app = Flask(__name__)
Expand Down Expand Up @@ -54,32 +63,40 @@ def wechat():
return 'no element', 200

print('req=' + str(req))
userName = req.get('FromUserName')
# 判断post过来的数据中数据类型是不是文本
if 'text' == req.get('MsgType'):
# 获取用户的信息,开始构造返回数据
try:
if req.get('Content') in ['。', '你好', 'hi']:
if len(answerList) == 0:
msg = req.get('Content')
# 新用户,新建list
if a_list.get(userName) == None:
a_list.setdefault(userName, list())
q_list.setdefault(userName, list())
bot_list.setdefault(userName, Chatbot(api_key=api_key))
if msg in ['。', '你好', 'hi']:
if len(a_list.get(userName)) == 0:
resp = {
'ToUserName':req.get('FromUserName'),
'FromUserName':req.get('ToUserName'),
'CreateTime':int(time.time()),
'MsgType':'text',
'Content': '请提问,或者回复“。”(中文句号)等待回答...'
'Content': '请提问,或回复中文句号查询上一次结果...'
}
else:
resp = {
'ToUserName':req.get('FromUserName'),
'FromUserName':req.get('ToUserName'),
'CreateTime':int(time.time()),
'MsgType':'text',
'Content': answerList.pop()
'Content': '['+str(q_list.get(userName).pop())+']\n'+str(a_list.get(userName).pop())
}
xml = xmltodict.unparse({'xml':resp})
return xml
else:
answer = chatbot.ask(req.get('Content'))
answerList.append(answer)
answer = bot_list[userName].ask(msg)
a_list.get(userName).append(answer)
q_list.get(userName).append(msg)
resp = {
'ToUserName':req.get('FromUserName'),
'FromUserName':req.get('ToUserName'),
Expand Down

0 comments on commit dac8f0d

Please sign in to comment.