38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
|
"""智谱 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,
|
|||
|
|
)
|