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()