Gilvaa commited on
Commit
c559f51
·
verified ·
1 Parent(s): a55beaf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -18
app.py CHANGED
@@ -10,8 +10,6 @@
10
 
11
  import os
12
  import re
13
- import json
14
- import time
15
  import asyncio
16
  import httpx
17
  import gradio as gr
@@ -31,7 +29,11 @@ SIMSIMI_BAD_MAX = float(os.getenv("SIMSIMI_BAD_MAX", "0.30"))
31
  # ---------------------------
32
  # Load Qwen
33
  # ---------------------------
34
- dtype = torch.float16 if torch.cuda.is_available() else torch.bfloat16 if torch.backends.mps.is_available() else torch.float32
 
 
 
 
35
  tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
36
  model = AutoModelForCausalLM.from_pretrained(
37
  MODEL_ID,
@@ -174,13 +176,13 @@ async def hybrid_reply(history_messages, user_text, mode: str, lang: str, bad_ma
174
  with gr.Blocks(css="""
175
  #chatbot {height: 560px}
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")
@@ -191,23 +193,18 @@ with gr.Blocks(css="""
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,13 +213,12 @@ with gr.Blocks(css="""
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,
 
10
 
11
  import os
12
  import re
 
 
13
  import asyncio
14
  import httpx
15
  import gradio as gr
 
29
  # ---------------------------
30
  # Load Qwen
31
  # ---------------------------
32
+ dtype = (
33
+ torch.float16 if torch.cuda.is_available()
34
+ else torch.bfloat16 if torch.backends.mps.is_available()
35
+ else torch.float32
36
+ )
37
  tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
38
  model = AutoModelForCausalLM.from_pretrained(
39
  MODEL_ID,
 
176
  with gr.Blocks(css="""
177
  #chatbot {height: 560px}
178
  """) as demo:
179
+ gr.Markdown("## Qwen × SimSimi Hybrid Chat\n")
180
 
181
+ # 页面只保留一个下拉框(含三种模式),以及提交/清空按钮
182
  mode_dd = gr.Dropdown(
183
+ choices=["Auto 混合", "只用 Qwen", "只用 SimSimi"],
184
+ value="Auto 混合",
185
+ label="对话模式"
186
  )
187
 
188
  chatbox = gr.Chatbot(elem_id="chatbot")
 
193
  # 内部状态:存储 Qwen 用的 messages
194
  state_msgs = gr.State([{"role": "system", "content": SYSTEM_PROMPT}])
195
 
196
+ async def respond(user_text, history, messages, mode):
197
  user_text = (user_text or "").strip()
198
  if not user_text:
199
  return gr.update(), messages, ""
200
+ # 使用环境变量作为 SimSimi 参数(不在页面暴露)
 
 
 
 
201
  lang = SIMSIMI_LANG
202
  bad_max = SIMSIMI_BAD_MAX
203
 
 
204
  messages = list(messages) if messages else [{"role": "system", "content": SYSTEM_PROMPT}]
205
  messages.append({"role": "user", "content": user_text})
206
 
207
+ reply = await hybrid_reply(messages, user_text, mode=mode, lang=lang, bad_max=bad_max)
208
 
209
  messages.append({"role": "assistant", "content": reply})
210
  history = (history or []) + [[user_text, reply]]
 
213
  def clear_all():
214
  return [], [{"role": "system", "content": SYSTEM_PROMPT}]
215
 
216
+ # 仅“提交”按钮触发发送;如需回车发送,可再加 user_in.submit(...)
217
  submit_btn.click(
218
  respond,
219
  inputs=[user_in, chatbox, state_msgs, mode_dd],
220
  outputs=[chatbox, state_msgs, user_in]
221
  )
 
222
  clear_btn.click(
223
  clear_all,
224
  inputs=None,