Files
------/tests/check_live_ai.py

28 lines
1.5 KiB
Python

"""显式运行的 DeepSeek 联调:会发送查询问题和结果,默认不随单元测试执行。"""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from service.ai_service import ask_ai
cases = {
"students": "查询当前有效学生总数,并列出前3名学生的姓名和学号。",
"classes": "查询有效班级总数,并列出有效班级名称。",
"teachers": "查询有效教师总数,列出前3名教师姓名和科目。",
"advisors": "查询有效顾问总数,列出前3名顾问姓名。",
"scores": "查询每个班级每次考试的有效成绩平均分。",
"employment": "查询有效就业记录中薪资最高的前3名学生,列出姓名、公司和薪资。",
"teacher_classes": "查询教师ID为1的老师实际绑定了哪些班级。",
}
artifacts = Path(__file__).resolve().parents[1] / "artifacts"
artifacts.mkdir(exist_ok=True)
for module, question in cases.items():
result = ask_ai(question)
queries = (result.get("data") or {}).get("queries", [])
assert result.get("answer"), module + ': empty answer'
assert 'DSML' not in result['answer'], module + ': tool syntax leaked into answer'
assert any(q.get("query", {}).get("module") == module for q in queries), module + ': wrong query module'
assert not any(q.get("error") for q in queries), module + ': invalid query'
(artifacts / f"ai-{module}.json").write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
print(module, "PASS", flush=True)