test_difficulty_generation.py 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import requests
  2. import json
  3. import time
  4. # 测试生成题目并检查difficulty字段
  5. def test_difficulty_generation():
  6. base_url = "http://localhost:8080"
  7. print("=== 测试题目生成和difficulty字段 ===")
  8. # 1. 创建一个新目标
  9. create_goal_data = {
  10. "userId": 1,
  11. "subject": "数学",
  12. "goalType": "选择",
  13. "goalContent": "代数练习",
  14. "difficulty": "中等",
  15. "totalQuantity": 10,
  16. "estimatedTime": 60,
  17. "startTime": "2024-01-15T10:00:00"
  18. }
  19. try:
  20. print("\n1. 创建新目标...")
  21. response = requests.post(f"{base_url}/api/goals", json=create_goal_data)
  22. print(f"创建目标响应状态: {response.status_code}")
  23. if response.status_code == 200:
  24. goal_data = response.json()
  25. print(f"创建目标成功: {goal_data}")
  26. if 'data' in goal_data and 'goalId' in goal_data['data']:
  27. goal_id = goal_data['data']['goalId']
  28. print(f"目标ID: {goal_id}")
  29. # 2. 调用生成题目API
  30. print(f"\n2. 为目标 {goal_id} 生成题目...")
  31. generate_data = {
  32. "goalId": goal_id,
  33. "subject": "数学",
  34. "contentType": "选择题",
  35. "difficulty": "中等",
  36. "questionCount": 3,
  37. "knowledgePoint": "代数",
  38. "goalContent": "代数练习"
  39. }
  40. generate_response = requests.post(f"{base_url}/api/ai/generate-questions", json=generate_data)
  41. print(f"生成题目响应状态: {generate_response.status_code}")
  42. if generate_response.status_code == 200:
  43. generate_data = generate_response.json()
  44. print(f"生成题目成功: {generate_data}")
  45. # 等待一下让数据库操作完成
  46. time.sleep(2)
  47. # 3. 检查生成的题目详情
  48. print(f"\n3. 检查生成的题目详情...")
  49. details_response = requests.get(f"{base_url}/api/goal-details/goal/{goal_id}")
  50. print(f"获取题目详情响应状态: {details_response.status_code}")
  51. if details_response.status_code == 200:
  52. details_data = details_response.json()
  53. print(f"题目详情: {json.dumps(details_data, indent=2, ensure_ascii=False)}")
  54. # 检查difficulty字段
  55. if 'data' in details_data and isinstance(details_data['data'], list):
  56. questions = details_data['data']
  57. print(f"\n4. 检查difficulty字段:")
  58. print(f"共找到 {len(questions)} 道题目")
  59. for i, question in enumerate(questions):
  60. difficulty = question.get('difficulty', 'NULL')
  61. print(f"题目 {i+1}: difficulty = {difficulty}")
  62. if difficulty is None or difficulty == 'NULL':
  63. print(f"❌ 题目 {i+1} 的difficulty字段为空!")
  64. else:
  65. print(f"✅ 题目 {i+1} 的difficulty字段正常: {difficulty}")
  66. else:
  67. print("❌ 未找到题目数据")
  68. else:
  69. print(f"❌ 获取题目详情失败: {details_response.text}")
  70. else:
  71. print(f"❌ 生成题目失败: {generate_response.text}")
  72. else:
  73. print("❌ 创建目标响应中未找到目标ID")
  74. else:
  75. print(f"❌ 创建目标失败: {response.text}")
  76. except Exception as e:
  77. print(f"❌ 测试过程中发生错误: {e}")
  78. if __name__ == "__main__":
  79. test_difficulty_generation()