feat(api): DeepSeek V4 Flash 默认、HTTP 错讯与多供应商分层

- 主链路默认 deepseek-v4-flash,DEEPSEEK_THINKING_ENABLED 对齐旧非思考 chat
- 评测台评审装配迁入 adapters/llm(deepseek_eval_judge、zhipu_eval_judge)与 eval_judge_spec
- 拆分 llm_http_openai_chat_errors 与 llm_errors(DeepSeek/智谱品牌与文档链),llm_call 支持 http_error_vendor
- EvalJudgeService 按 spec.provider 传入 allm_json_call;评测台前端文案改为 V4 Flash
- 更新 .env 示例与 staging/production 的 DEEPSEEK_MODEL;补充 openai/供应商错讯测试

Made-with: Cursor
This commit is contained in:
Kevin
2026-04-27 14:34:30 +08:00
parent 3121d1384d
commit 80833f7033
25 changed files with 521 additions and 81 deletions

View File

@@ -0,0 +1,37 @@
"""智谱 GLM 评测台评审OpenAI 兼容端点 + ChatOpenAI 装配。"""
from __future__ import annotations
from langchain_openai import ChatOpenAI
from app.adapters.llm.openai_base_url import normalize_openai_compatible_base_url
from app.core.config import settings
from app.core.eval_judge_spec import EvalJudgeLlmSpec
def build_zhipu_eval_judge_spec(
judge_model: str | None,
) -> EvalJudgeLlmSpec | None:
"""密钥缺失时返回 None。"""
api_key = (settings.eval_judge_api_key or settings.zhipu_api_key or "").strip()
if not api_key:
return None
want = (judge_model or "").strip()
base = normalize_openai_compatible_base_url(
settings.eval_judge_base_url,
fallback="https://open.bigmodel.cn/api/paas/v4",
)
model = want or (settings.eval_judge_model or "glm-5")
ctx = int(settings.eval_judge_context_window_tokens)
llm_kw: dict = {
"api_key": api_key,
"base_url": base,
"model": model,
"temperature": settings.eval_judge_temperature,
}
return EvalJudgeLlmSpec(
llm=ChatOpenAI(**llm_kw),
provider="zhipu",
resolved_model=model,
context_window_tokens=ctx,
)