"""显式运行的 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)