123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import requests
- import json
- def check_database_difficulty():
- """检查数据库中题目的difficulty字段"""
- base_url = "http://localhost:8080"
-
- print("=== 检查数据库中题目的difficulty字段 ===\n")
-
- try:
- # 1. 先创建一个新目标并生成题目
- print("1. 创建新目标...")
- goal_data = {
- "userId": 1,
- "subject": "数学",
- "goalType": "选择",
- "goalContent": "代数练习",
- "difficulty": "中等",
- "totalQuantity": 5,
- "estimatedTime": 30,
- "startTime": [2024, 1, 15, 10, 0]
- }
-
- response = requests.post(f"{base_url}/api/goals", json=goal_data)
- if response.status_code == 200:
- goal_result = response.json()
- goal_id = goal_result['data']['goalId']
- print(f"✅ 目标创建成功,ID: {goal_id}")
-
- # 2. 生成题目
- print("\n2. 生成题目...")
- generate_data = {
- "goalId": goal_id,
- "subject": "数学",
- "contentType": "选择题",
- "difficulty": "中等",
- "questionCount": 3,
- "knowledgePoint": "代数",
- "goalContent": "代数练习"
- }
-
- gen_response = requests.post(f"{base_url}/api/ai/generate-questions", json=generate_data)
- if gen_response.status_code == 200:
- gen_result = gen_response.json()
- print(f"✅ 题目生成成功")
-
- # 3. 分析生成的题目数据
- print("\n3. 分析生成的题目数据:")
- if 'data' in gen_result and isinstance(gen_result['data'], list):
- questions = gen_result['data']
- print(f"共生成 {len(questions)} 道题目\n")
-
- for i, question in enumerate(questions, 1):
- detail_id = question.get('detailId', 'N/A')
- content = question.get('content', 'N/A')[:50] + '...' if len(question.get('content', '')) > 50 else question.get('content', 'N/A')
- difficulty = question.get('difficulty')
- knowledge_point = question.get('knowledgePoint', 'N/A')
- content_type = question.get('contentType', 'N/A')
-
- print(f"题目 {i} (ID: {detail_id}):")
- print(f" 内容: {content}")
- print(f" difficulty: '{difficulty}'")
- print(f" knowledgePoint: '{knowledge_point}'")
- print(f" contentType: '{content_type}'")
-
- # 检查difficulty字段状态
- if difficulty is None:
- print(f" ❌ difficulty字段为null")
- elif difficulty == '':
- print(f" ❌ difficulty字段为空字符串")
- else:
- print(f" ✅ difficulty字段正常: {difficulty}")
- print()
-
- # 4. 总结
- null_count = sum(1 for q in questions if q.get('difficulty') is None)
- empty_count = sum(1 for q in questions if q.get('difficulty') == '')
- valid_count = sum(1 for q in questions if q.get('difficulty') and q.get('difficulty') != '')
-
- print("=== 总结 ===")
- print(f"总题目数: {len(questions)}")
- print(f"difficulty为null: {null_count}")
- print(f"difficulty为空字符串: {empty_count}")
- print(f"difficulty有效值: {valid_count}")
-
- if valid_count == len(questions):
- print("\n🎉 所有题目的difficulty字段都已正确设置!")
- print("✅ CozeWorkflowService.parseQuestion方法的修复已生效")
- else:
- print(f"\n⚠️ 还有 {null_count + empty_count} 道题目的difficulty字段有问题")
-
- else:
- print("❌ 生成题目响应格式异常")
- else:
- print(f"❌ 生成题目失败: {gen_response.text}")
- else:
- print(f"❌ 创建目标失败: {response.text}")
-
- except Exception as e:
- print(f"❌ 检查过程中发生错误: {e}")
- if __name__ == "__main__":
- check_database_difficulty()
|