test_derivative_question.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. 测试导数题目生成功能
  5. """
  6. import requests
  7. import json
  8. def test_derivative_question_generation():
  9. """测试导数题目生成"""
  10. # 服务器地址
  11. base_url = "http://localhost:8080/api"
  12. # 1. 首先创建一个包含"导数"关键词的目标
  13. goal_data = {
  14. "userId": 1,
  15. "subject": "数学",
  16. "goalType": "选择",
  17. "difficulty": "中等",
  18. "totalQuantity": 3,
  19. "goalContent": "导数的基本概念和计算方法"
  20. }
  21. print("=== 创建导数相关目标 ===")
  22. print(f"请求数据: {json.dumps(goal_data, ensure_ascii=False, indent=2)}")
  23. try:
  24. # 创建目标
  25. response = requests.post(f"{base_url}/goals", json=goal_data)
  26. print(f"响应状态码: {response.status_code}")
  27. print(f"响应内容: {response.text}")
  28. if response.status_code == 200:
  29. result = response.json()
  30. if result.get('code') == 200:
  31. goal_id = result['data']['goalId']
  32. print(f"✅ 目标创建成功,goalId: {goal_id}")
  33. # 2. 获取生成的题目
  34. print("\n=== 获取生成的题目 ===")
  35. questions_response = requests.get(f"{base_url}/ai/questions/{goal_id}")
  36. print(f"题目响应状态码: {questions_response.status_code}")
  37. if questions_response.status_code == 200:
  38. questions_result = questions_response.json()
  39. if questions_result.get('code') == 200:
  40. questions = questions_result['data']
  41. print(f"✅ 成功获取 {len(questions)} 道题目")
  42. # 检查题目内容是否包含导数相关内容
  43. derivative_related = 0
  44. for i, question in enumerate(questions, 1):
  45. print(f"\n--- 题目 {i} ---")
  46. print(f"题目: {question['content']}")
  47. print(f"选项: {question.get('options', 'N/A')}")
  48. print(f"答案: {question['answer']}")
  49. # 检查是否为导数相关题目
  50. question_text = question['content'].lower()
  51. if any(keyword in question_text for keyword in ['导数', 'derivative', 'f\'(x)', 'dy/dx', '求导']):
  52. derivative_related += 1
  53. print("✅ 这是导数相关题目")
  54. else:
  55. print("❌ 这不是导数相关题目")
  56. print(f"\n=== 测试结果 ===")
  57. print(f"总题目数: {len(questions)}")
  58. print(f"导数相关题目数: {derivative_related}")
  59. if derivative_related > 0:
  60. print("✅ 导数题目生成功能正常工作!")
  61. else:
  62. print("❌ 导数题目生成功能可能存在问题")
  63. else:
  64. print(f"❌ 获取题目失败: {questions_result.get('message')}")
  65. else:
  66. print(f"❌ 获取题目请求失败: {questions_response.text}")
  67. else:
  68. print(f"❌ 目标创建失败: {result.get('message')}")
  69. else:
  70. print(f"❌ 创建目标请求失败: {response.text}")
  71. except Exception as e:
  72. print(f"❌ 测试过程中发生错误: {str(e)}")
  73. if __name__ == "__main__":
  74. test_derivative_question_generation()