Spaces:
Runtime error
Runtime error
mkw18
commited on
Commit
·
c4b44ab
1
Parent(s):
62011ea
fix bug
Browse files
app.py
CHANGED
@@ -70,7 +70,7 @@ def predict(input, chatbot, messages, idx, answer, story_key, answer_key, known,
|
|
70 |
messages1 += [{"role": 'user', "content": f"{' '.join(known)}\n请回答是或否或无关。"}, {"role": "assistant", "content": '是。'}, {"role": 'user', "content": f"{input}\n请回答是或否或无关。"}]
|
71 |
else:
|
72 |
messages1 += [{"role": 'user', "content": f"{input}\n请回答是或否或无关。"}]
|
73 |
-
messages.append({"role": 'user', "content":
|
74 |
llm = True
|
75 |
finished = False
|
76 |
response = ''
|
@@ -95,100 +95,121 @@ def predict(input, chatbot, messages, idx, answer, story_key, answer_key, known,
|
|
95 |
break
|
96 |
if llm:
|
97 |
history.append(input.replace('?', '。'))
|
98 |
-
data = {'predict':
|
99 |
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
100 |
if response.status_code == 200:
|
101 |
-
|
102 |
-
response = data['response']
|
103 |
-
known = data['known']
|
104 |
-
history = data['history']
|
105 |
-
reasoning = data['reasoning']
|
106 |
-
answer_key = data['answer_key']
|
107 |
-
bingo = data['bingo']
|
108 |
-
chatbot[-1] = (parse_text(input), parse_text(response))
|
109 |
-
messages.append({"role": "assistant", "content": response})
|
110 |
else:
|
111 |
completion = openai.ChatCompletion.create(
|
112 |
model="gpt-3.5-turbo",
|
113 |
messages=messages1,
|
114 |
)
|
115 |
response=completion.choices[0].message.content.strip()
|
116 |
-
|
117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
summary = openai.ChatCompletion.create(
|
119 |
model="gpt-3.5-turbo",
|
120 |
-
messages=
|
121 |
)
|
122 |
summary = summary.choices[0].message.content.strip()
|
123 |
-
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
summary = openai.ChatCompletion.create(
|
126 |
model="gpt-3.5-turbo",
|
127 |
-
messages=
|
128 |
)
|
129 |
summary = summary.choices[0].message.content.strip()
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
merge = openai.ChatCompletion.create(
|
137 |
model="gpt-3.5-turbo",
|
138 |
-
messages=
|
139 |
)
|
140 |
merge = merge.choices[0].message.content.strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
else:
|
142 |
-
merge = summary
|
143 |
-
for key in answer_key:
|
144 |
-
key = key.strip()
|
145 |
-
if ' ' in key:
|
146 |
-
key1 = key.split(' ')[1]
|
147 |
-
else:
|
148 |
-
key1 = key
|
149 |
-
if len(input.replace('?', '')) < len(key1):
|
150 |
-
continue
|
151 |
compare = openai.ChatCompletion.create(
|
152 |
model="gpt-3.5-turbo",
|
153 |
-
messages=
|
154 |
)
|
155 |
compare = compare.choices[0].message.content.strip()
|
156 |
-
|
157 |
-
|
158 |
-
|
|
|
|
|
|
|
|
|
|
|
159 |
compare = openai.ChatCompletion.create(
|
160 |
model="gpt-3.5-turbo",
|
161 |
messages=comp_msg,
|
162 |
)
|
163 |
compare = compare.choices[0].message.content.strip()
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
167 |
compare = openai.ChatCompletion.create(
|
168 |
model="gpt-3.5-turbo",
|
169 |
messages=comp_msg,
|
170 |
)
|
171 |
compare = compare.choices[0].message.content.strip()
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
else:
|
188 |
-
messages.append({"role": "assistant", "content": response})
|
189 |
-
data = {'predict': messages, 'idx': idx, 'isfinished': finished, 'answer': answer}
|
190 |
-
requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
191 |
-
chatbot[-1] = (parse_text(input), parse_text(response))
|
192 |
return chatbot, messages, known, bingo, reasoning, history
|
193 |
|
194 |
|
|
|
70 |
messages1 += [{"role": 'user', "content": f"{' '.join(known)}\n请回答是或否或无关。"}, {"role": "assistant", "content": '是。'}, {"role": 'user', "content": f"{input}\n请回答是或否或无关。"}]
|
71 |
else:
|
72 |
messages1 += [{"role": 'user', "content": f"{input}\n请回答是或否或无关。"}]
|
73 |
+
messages.append({"role": 'user', "content": input})
|
74 |
llm = True
|
75 |
finished = False
|
76 |
response = ''
|
|
|
95 |
break
|
96 |
if llm:
|
97 |
history.append(input.replace('?', '。'))
|
98 |
+
data = {'predict': messages1, 'idx': idx, 'isfinished': False, 'answer': answer}
|
99 |
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
100 |
if response.status_code == 200:
|
101 |
+
response = str(response.content, encoding="utf-8")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
else:
|
103 |
completion = openai.ChatCompletion.create(
|
104 |
model="gpt-3.5-turbo",
|
105 |
messages=messages1,
|
106 |
)
|
107 |
response=completion.choices[0].message.content.strip()
|
108 |
+
relevant = False
|
109 |
+
if response.startswith("是"):
|
110 |
+
decl_msg = [{"role": "user", "content": f"请将以下内容转述为陈述句,并简化为一句话:\n{input}"}]
|
111 |
+
data = {'predict': decl_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
112 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
113 |
+
if response.status_code == 200:
|
114 |
+
summary = str(response.content, encoding="utf-8")
|
115 |
+
else:
|
116 |
summary = openai.ChatCompletion.create(
|
117 |
model="gpt-3.5-turbo",
|
118 |
+
messages=decl_msg,
|
119 |
)
|
120 |
summary = summary.choices[0].message.content.strip()
|
121 |
+
relevant = True
|
122 |
+
elif response.startswith("不是") or response.startswith("否"):
|
123 |
+
decl_msg = [{"role": "user", "content": f"请将以下内容取反义然后转述为陈述句,并简化为一句话:\n{input}"}]
|
124 |
+
data = {'predict': decl_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
125 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
126 |
+
if response.status_code == 200:
|
127 |
+
summary = str(response.content, encoding="utf-8")
|
128 |
+
else:
|
129 |
summary = openai.ChatCompletion.create(
|
130 |
model="gpt-3.5-turbo",
|
131 |
+
messages=decl_msg
|
132 |
)
|
133 |
summary = summary.choices[0].message.content.strip()
|
134 |
+
relevant = True
|
135 |
+
if relevant:
|
136 |
+
history.append(summary)
|
137 |
+
known.append(summary)
|
138 |
+
reasoning.append(summary)
|
139 |
+
if len(reasoning) >= 2:
|
140 |
+
simp_msg = [{"role": "user", "content": f"请将以下内容简化为一句话:\n{' '.join(reasoning)}"}]
|
141 |
+
data = {'predict': simp_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
142 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
143 |
+
if response.status_code == 200:
|
144 |
+
merge = str(response.content, encoding="utf-8")
|
145 |
+
else:
|
146 |
merge = openai.ChatCompletion.create(
|
147 |
model="gpt-3.5-turbo",
|
148 |
+
messages=simp_msg,
|
149 |
)
|
150 |
merge = merge.choices[0].message.content.strip()
|
151 |
+
else:
|
152 |
+
merge = summary
|
153 |
+
for key in answer_key:
|
154 |
+
key = key.strip()
|
155 |
+
if ' ' in key:
|
156 |
+
key1 = key.split(' ')[1]
|
157 |
+
else:
|
158 |
+
key1 = key
|
159 |
+
if len(input.replace('?', '')) < len(key1):
|
160 |
+
continue
|
161 |
+
comp_msg = [{"role": "user", "content": f"请对比第一句话和第二句话之间的信息,判断第二句话是否完整地概括了第一句话的全部信息,包括关键细节和描述。请用是或否回答。\n第一句话:{key1}\n第二句话:{merge}"}]
|
162 |
+
data = {'predict': comp_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
163 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
164 |
+
if response.status_code == 200:
|
165 |
+
compare = str(response.content, encoding="utf-8")
|
166 |
else:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
compare = openai.ChatCompletion.create(
|
168 |
model="gpt-3.5-turbo",
|
169 |
+
messages=comp_msg
|
170 |
)
|
171 |
compare = compare.choices[0].message.content.strip()
|
172 |
+
if compare.startswith('是'):
|
173 |
+
vote = 1
|
174 |
+
comp_msg += [{"role": "assistant", "content": "是"},{"role": "user", "content": f"请对比第一句话和第二句话之间的信息,判断第二句话是否完整地概括了第一句话的全部信息,包括关键细节和描述。请用是或否回答。\n第一句话:{key1}\n第二句话:{merge}"}]
|
175 |
+
data = {'predict': comp_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
176 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
177 |
+
if response.status_code == 200:
|
178 |
+
compare = str(response.content, encoding="utf-8")
|
179 |
+
else:
|
180 |
compare = openai.ChatCompletion.create(
|
181 |
model="gpt-3.5-turbo",
|
182 |
messages=comp_msg,
|
183 |
)
|
184 |
compare = compare.choices[0].message.content.strip()
|
185 |
+
if compare.startswith('是'):
|
186 |
+
vote += 1
|
187 |
+
comp_msg += [{"role": "assistant", "content": compare},{"role": "user", "content": f"请对比第一句话和第二句话之间的信息,判断第二句话是否完整地概括了第一句话的全部信息,包括关键细节和描述。请用是或否回答。\n第一句话:{key1}\n第二句话:{merge}"}]
|
188 |
+
data = {'predict': comp_msg, 'idx': idx, 'isfinished': False, 'answer': answer}
|
189 |
+
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
190 |
+
if response.status_code == 200:
|
191 |
+
compare = str(response.content, encoding="utf-8")
|
192 |
+
else:
|
193 |
compare = openai.ChatCompletion.create(
|
194 |
model="gpt-3.5-turbo",
|
195 |
messages=comp_msg,
|
196 |
)
|
197 |
compare = compare.choices[0].message.content.strip()
|
198 |
+
if compare.startswith('是'):
|
199 |
+
vote += 1
|
200 |
+
if vote >= 2:
|
201 |
+
bingo += 1
|
202 |
+
answer_key.remove(key)
|
203 |
+
print(key)
|
204 |
+
reasoning = []
|
205 |
+
break
|
206 |
+
if bingo >= len(answer_key):
|
207 |
+
finished = True
|
208 |
+
response += f'恭喜你猜到了汤底,汤底是:{answer}\n点击"再来一局"按钮开始下一局游戏。'
|
209 |
+
messages.append({"role": "assistant", "content": response})
|
210 |
+
data = {'predict': messages, 'idx': idx, 'isfinished': finished, 'answer': answer}
|
211 |
+
requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
|
212 |
+
chatbot[-1] = (parse_text(input), parse_text(response))
|
|
|
|
|
|
|
|
|
|
|
213 |
return chatbot, messages, known, bingo, reasoning, history
|
214 |
|
215 |
|