"""
DashScope API 调用封装(本项目唯一联网层)。
"""
from __future__ import annotations
from dashscope import Generation
from config import API_KEY, MODEL_NAME, SEED, TEMPERATURE
_call_count = 0
def get_call_count() -> int:
return _call_count
def call_llm(messages: list[dict[str, str]]) -> str:
global _call_count
_call_count += 1
if not API_KEY:
raise RuntimeError(
"未读取到系统环境变量 DASHSCOPE_API_KEY,"
"请先在 Windows 系统环境变量中配置后重新打开终端。"
)
response = Generation.call(
api_key=API_KEY,
model=MODEL_NAME,
messages=messages,
temperature=TEMPERATURE,
seed=SEED,
result_format="message",
)
if response.status_code != 200:
raise RuntimeError(
f"模型调用失败:code={response.status_code}, message={response.message}"
)
return response.output.choices[0].message.content.strip()