Files
ALwrity/backend/debug_step8_ai_response.py

119 lines
3.8 KiB
Python

#!/usr/bin/env python3
"""
Debug script to test AI response parsing in Step 8.
"""
import asyncio
import logging
import sys
import os
# Add the project root to the Python path
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from services.calendar_generation_datasource_framework.prompt_chaining.steps.phase3.step8_daily_content_planning.daily_schedule_generator import DailyScheduleGenerator
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s | %(levelname)-8s | %(name)s:%(funcName)s:%(lineno)d - %(message)s',
datefmt='%H:%M:%S'
)
logger = logging.getLogger(__name__)
async def debug_ai_response_parsing():
"""Debug AI response parsing in Step 8."""
logger.info("🔍 Starting AI Response Parsing Debug")
# Create test data
test_posting_day = {
"day_number": 1,
"date": "2025-09-01",
"day_name": "monday",
"posting_times": ["09:00", "12:00"],
"content_count": 2,
"week_number": 1
}
test_weekly_theme = {
"title": "Week 1 Theme: AI Implementation",
"description": "Focus on AI tools and implementation",
"content_angles": ["AI tools", "Implementation guide", "Best practices"]
}
test_platform_strategies = {
"LinkedIn": {"approach": "professional"},
"Blog": {"approach": "educational"}
}
# Test different AI response formats
test_responses = [
# Format 1: List of recommendations (correct format)
[
{
"type": "Content Creation Opportunity",
"title": "AI Implementation Guide",
"description": "A comprehensive guide to AI implementation"
},
{
"type": "Content Creation Opportunity",
"title": "AI Tools Overview",
"description": "Overview of AI tools for business"
}
],
# Format 2: Dictionary with recommendations key
{
"recommendations": [
{
"type": "Content Creation Opportunity",
"title": "AI Implementation Guide",
"description": "A comprehensive guide to AI implementation"
},
{
"type": "Content Creation Opportunity",
"title": "AI Tools Overview",
"description": "Overview of AI tools for business"
}
]
},
# Format 3: Float (the problematic case)
0.95,
# Format 4: String
"AI Implementation Guide",
# Format 5: None
None
]
generator = DailyScheduleGenerator()
for i, test_response in enumerate(test_responses):
logger.info(f"🔍 Testing AI response format {i+1}: {type(test_response)} = {test_response}")
try:
content_pieces = generator._parse_content_response(
ai_response=test_response,
posting_day=test_posting_day,
weekly_theme=test_weekly_theme,
platform_strategies=test_platform_strategies
)
logger.info(f"✅ Format {i+1} parsed successfully: {len(content_pieces)} content pieces")
for j, piece in enumerate(content_pieces):
logger.info(f" Piece {j+1}: {piece.get('title', 'No title')}")
except Exception as e:
logger.error(f"❌ Format {i+1} failed: {str(e)}")
logger.error(f"📋 Error type: {type(e)}")
import traceback
logger.error(f"📋 Traceback: {traceback.format_exc()}")
logger.info("🎉 AI Response Parsing Debug completed!")
if __name__ == "__main__":
asyncio.run(debug_ai_response_parsing())