AlauStone commited on
Commit
f0fbd6b
·
verified ·
1 Parent(s): ea6d46d

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -19
app.py CHANGED
@@ -1358,7 +1358,9 @@ def _clear_chat_history_db(username):
1358
  # =========================
1359
  # 7. 侧边栏 UI & 逻辑
1360
  # =========================
1361
- model_mapping = {
 
 
1362
  "⭐ Step-3.5 (首选)": "stepfun/step-3.5-flash:free",
1363
  "🌐 OR-Auto (避堵)": "openrouter/free",
1364
  "🧠 GLM-4.5 (推理)": "z-ai/glm-4.5-air:free",
@@ -1375,16 +1377,34 @@ model_mapping = {
1375
  "🪶 Gemma-3-4B": "google/gemma-3-4b-it:free",
1376
  "🫧 Gemma-3n-e2b": "google/gemma-3n-e2b-it:free",
1377
  "📷 Nemotron-VL": "nvidia/nemotron-nano-12b-v2-vl:free",
1378
- "🛡️ DeepSeek (官方)": "deepseek-chat",
1379
- "🏢 百度文心 (官方)": "ernie-3.5-8k",
1380
  }
1381
 
1382
- # 游客式:屏蔽收费模型
1383
- _GUEST_BLOCKED_MODELS = {"🛡️ DeepSeek (官方)", "🏢 百度文心 (官方)"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1384
  if IS_GUEST:
1385
- _active_models = {k: v for k, v in model_mapping.items() if k not in _GUEST_BLOCKED_MODELS}
1386
  else:
1387
- _active_models = model_mapping
1388
 
1389
 
1390
  with st.sidebar:
@@ -1698,7 +1718,28 @@ def llm_answer(query, context_docs, selected_display_name, web_enabled, is_guest
1698
  ds_client = get_ds_client()
1699
  baidu_client = get_baidu_client()
1700
 
1701
- special_clients = {"deepseek-chat": ds_client, "ernie-3.5-8k": baidu_client}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1702
  selected_id = model_mapping[selected_display_name]
1703
 
1704
  retry_queue = []
@@ -1706,19 +1747,21 @@ def llm_answer(query, context_docs, selected_display_name, web_enabled, is_guest
1706
  (special_clients.get(selected_id, or_client), selected_id, f"首选-{selected_display_name}")
1707
  )
1708
 
1709
- if selected_id != "stepfun/step-3.5-flash:free":
1710
- retry_queue.append((or_client, "stepfun/step-3.5-flash:free", "⚡ 快速备选-Step3.5"))
 
 
1711
 
1712
- if selected_id != "openrouter/free":
1713
- retry_queue.append((or_client, "openrouter/free", "OR-Auto 免费避堵"))
1714
 
1715
- paid_backups = [
1716
- ("deepseek-chat", "🛡️ DeepSeek 官方", ds_client),
1717
- ("ernie-3.5-8k", "🏢 百度文心", baidu_client),
1718
- ]
1719
- for p_id, p_label, p_client in paid_backups:
1720
- if selected_id != p_id:
1721
- retry_queue.append((p_client, p_id, f"💰 收费兜底-{p_label}"))
1722
 
1723
  messages = [
1724
  {"role": "system", "content": system_prompt},
 
1358
  # =========================
1359
  # 7. 侧边栏 UI & 逻辑
1360
  # =========================
1361
+
1362
+ # 游客态模型(免费模型,有优先级策略)
1363
+ _guest_models = {
1364
  "⭐ Step-3.5 (首选)": "stepfun/step-3.5-flash:free",
1365
  "🌐 OR-Auto (避堵)": "openrouter/free",
1366
  "🧠 GLM-4.5 (推理)": "z-ai/glm-4.5-air:free",
 
1377
  "🪶 Gemma-3-4B": "google/gemma-3-4b-it:free",
1378
  "🫧 Gemma-3n-e2b": "google/gemma-3n-e2b-it:free",
1379
  "📷 Nemotron-VL": "nvidia/nemotron-nano-12b-v2-vl:free",
 
 
1380
  }
1381
 
1382
+ # 登录态型(付/官方模型,无优先级策略)
1383
+ _login_models = {
1384
+ # 顶级推理
1385
+ "🔥 文心5.0 (旗舰)": "ernie-5.0",
1386
+ "🧠 文心5.0思考": "ernie-5.0-thinking-latest",
1387
+ "🛡️ DeepSeek R1 (推理)": "deepseek-r1",
1388
+ "💭 DeepSeek V3.2思考": "deepseek-v3.2-think",
1389
+ "🚀 千问3.5-397B (超大)": "qwen3.5-397b-a17b",
1390
+ "✨ 智谱GLM-5": "glm-5",
1391
+ "🌙 Kimi K2.5": "kimi-k2.5",
1392
+ # 性价比
1393
+ "⚡ 文心4.5T (快速)": "ernie-4.5-turbo-latest",
1394
+ "⚖️ 千问3.5-35B (平衡)": "qwen3.5-35b-a3b",
1395
+ "💎 MiniMax M2.5": "minimax-m2.5",
1396
+ # 视觉多模态
1397
+ "📷 千问3视觉-235B": "qwen3-vl-235b-a22b-instruct",
1398
+ "🖼️ 文心4.5视觉": "ernie-4.5-turbo-vl-latest",
1399
+ # DeepSeek官方
1400
+ "🔰 DeepSeek (官方)": "deepseek-chat",
1401
+ }
1402
+
1403
+ # 根据登录状态选择模型列表
1404
  if IS_GUEST:
1405
+ _active_models = _guest_models
1406
  else:
1407
+ _active_models = _login_models
1408
 
1409
 
1410
  with st.sidebar:
 
1718
  ds_client = get_ds_client()
1719
  baidu_client = get_baidu_client()
1720
 
1721
+ # 根据模型ID选择对应的客户端(登录态模型都走百度千帆)
1722
+ special_clients = {
1723
+ # 游客兜底
1724
+ "deepseek-chat": ds_client,
1725
+ "ernie-3.5-8k": baidu_client,
1726
+ # 登录态模型(全部走百度千帆)
1727
+ "ernie-5.0": baidu_client,
1728
+ "ernie-5.0-thinking-latest": baidu_client,
1729
+ "deepseek-r1": baidu_client,
1730
+ "deepseek-v3.2-think": baidu_client,
1731
+ "qwen3.5-397b-a17b": baidu_client,
1732
+ "glm-5": baidu_client,
1733
+ "kimi-k2.5": baidu_client,
1734
+ "ernie-4.5-turbo-latest": baidu_client,
1735
+ "qwen3.5-35b-a3b": baidu_client,
1736
+ "minimax-m2.5": baidu_client,
1737
+ "qwen3-vl-235b-a22b-instruct": baidu_client,
1738
+ "ernie-4.5-turbo-vl-latest": baidu_client,
1739
+ }
1740
+
1741
+ # 根据登录状态选择模型映射
1742
+ model_mapping = _guest_models if is_guest else _login_models
1743
  selected_id = model_mapping[selected_display_name]
1744
 
1745
  retry_queue = []
 
1747
  (special_clients.get(selected_id, or_client), selected_id, f"首选-{selected_display_name}")
1748
  )
1749
 
1750
+ # 仅游客态使用优先级和兜底策略
1751
+ if is_guest:
1752
+ if selected_id != "stepfun/step-3.5-flash:free":
1753
+ retry_queue.append((or_client, "stepfun/step-3.5-flash:free", "⚡ 快速备选-Step3.5"))
1754
 
1755
+ if selected_id != "openrouter/free":
1756
+ retry_queue.append((or_client, "openrouter/free", "OR-Auto 免费避堵"))
1757
 
1758
+ paid_backups = [
1759
+ ("deepseek-chat", "🛡️ DeepSeek 官方", ds_client),
1760
+ ("ernie-3.5-8k", "🏢 百度文心", baidu_client),
1761
+ ]
1762
+ for p_id, p_label, p_client in paid_backups:
1763
+ if selected_id != p_id:
1764
+ retry_queue.append((p_client, p_id, f"💰 收费兜底-{p_label}"))
1765
 
1766
  messages = [
1767
  {"role": "system", "content": system_prompt},