28 lines
1.5 KiB
Python
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)
|