Update app.py
Browse files
app.py
CHANGED
@@ -176,28 +176,38 @@ with gr.Blocks(css="""
|
|
176 |
""") as demo:
|
177 |
gr.Markdown("## Qwen × SimSimi Hybrid Chat\n小贴士:在 Settings → Repository secrets 设置 SIMSIMI_API_KEY 后即可使用 SimSimi。")
|
178 |
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
183 |
|
184 |
chatbox = gr.Chatbot(elem_id="chatbot")
|
185 |
-
user_in = gr.Textbox(placeholder="
|
|
|
186 |
clear_btn = gr.Button("清空对话")
|
187 |
|
188 |
# 内部状态:存储 Qwen 用的 messages
|
189 |
state_msgs = gr.State([{"role": "system", "content": SYSTEM_PROMPT}])
|
190 |
|
191 |
-
async def respond(user_text, history, messages,
|
192 |
user_text = (user_text or "").strip()
|
193 |
if not user_text:
|
194 |
return gr.update(), messages, ""
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
# 更新 message 历史
|
197 |
messages = list(messages) if messages else [{"role": "system", "content": SYSTEM_PROMPT}]
|
198 |
messages.append({"role": "user", "content": user_text})
|
199 |
|
200 |
-
reply = await hybrid_reply(messages, user_text, mode=
|
201 |
|
202 |
messages.append({"role": "assistant", "content": reply})
|
203 |
history = (history or []) + [[user_text, reply]]
|
@@ -206,11 +216,13 @@ with gr.Blocks(css="""
|
|
206 |
def clear_all():
|
207 |
return [], [{"role": "system", "content": SYSTEM_PROMPT}]
|
208 |
|
209 |
-
|
|
|
210 |
respond,
|
211 |
-
inputs=[user_in, chatbox, state_msgs, mode_dd
|
212 |
outputs=[chatbox, state_msgs, user_in]
|
213 |
)
|
|
|
214 |
clear_btn.click(
|
215 |
clear_all,
|
216 |
inputs=None,
|
|
|
176 |
""") as demo:
|
177 |
gr.Markdown("## Qwen × SimSimi Hybrid Chat\n小贴士:在 Settings → Repository secrets 设置 SIMSIMI_API_KEY 后即可使用 SimSimi。")
|
178 |
|
179 |
+
# 只保留“对话模式”一个选项(映射到内部的“Auto 混合”)
|
180 |
+
mode_dd = gr.Dropdown(
|
181 |
+
choices=["对话模式"],
|
182 |
+
value="对话模式",
|
183 |
+
label="模式"
|
184 |
+
)
|
185 |
|
186 |
chatbox = gr.Chatbot(elem_id="chatbot")
|
187 |
+
user_in = gr.Textbox(placeholder="输入内容,然后点击【提交】发送…", lines=2)
|
188 |
+
submit_btn = gr.Button("提交", variant="primary")
|
189 |
clear_btn = gr.Button("清空对话")
|
190 |
|
191 |
# 内部状态:存储 Qwen 用的 messages
|
192 |
state_msgs = gr.State([{"role": "system", "content": SYSTEM_PROMPT}])
|
193 |
|
194 |
+
async def respond(user_text, history, messages, mode_label):
|
195 |
user_text = (user_text or "").strip()
|
196 |
if not user_text:
|
197 |
return gr.update(), messages, ""
|
198 |
|
199 |
+
# 将“对话模式”映射到内部“Auto 混合”
|
200 |
+
internal_mode = "Auto 混合"
|
201 |
+
|
202 |
+
# 使用环境变量/默认值作为 SimSimi 参数
|
203 |
+
lang = SIMSIMI_LANG
|
204 |
+
bad_max = SIMSIMI_BAD_MAX
|
205 |
+
|
206 |
# 更新 message 历史
|
207 |
messages = list(messages) if messages else [{"role": "system", "content": SYSTEM_PROMPT}]
|
208 |
messages.append({"role": "user", "content": user_text})
|
209 |
|
210 |
+
reply = await hybrid_reply(messages, user_text, mode=internal_mode, lang=lang, bad_max=bad_max)
|
211 |
|
212 |
messages.append({"role": "assistant", "content": reply})
|
213 |
history = (history or []) + [[user_text, reply]]
|
|
|
216 |
def clear_all():
|
217 |
return [], [{"role": "system", "content": SYSTEM_PROMPT}]
|
218 |
|
219 |
+
# 仅“提交”按钮触发发送;移除回车提交
|
220 |
+
submit_btn.click(
|
221 |
respond,
|
222 |
+
inputs=[user_in, chatbox, state_msgs, mode_dd],
|
223 |
outputs=[chatbox, state_msgs, user_in]
|
224 |
)
|
225 |
+
|
226 |
clear_btn.click(
|
227 |
clear_all,
|
228 |
inputs=None,
|