Spaces:
Sleeping
Sleeping
Upload app.py
Browse files
app.py
CHANGED
|
@@ -1358,7 +1358,9 @@ def _clear_chat_history_db(username):
|
|
| 1358 |
# =========================
|
| 1359 |
# 7. 侧边栏 UI & 逻辑
|
| 1360 |
# =========================
|
| 1361 |
-
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1384 |
if IS_GUEST:
|
| 1385 |
-
_active_models =
|
| 1386 |
else:
|
| 1387 |
-
_active_models =
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 1710 |
-
|
|
|
|
|
|
|
| 1711 |
|
| 1712 |
-
|
| 1713 |
-
|
| 1714 |
|
| 1715 |
-
|
| 1716 |
-
|
| 1717 |
-
|
| 1718 |
-
|
| 1719 |
-
|
| 1720 |
-
|
| 1721 |
-
|
| 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},
|