ai fixes
This commit is contained in:
174
backend/test_generate_content_docker.py
Normal file
174
backend/test_generate_content_docker.py
Normal file
@@ -0,0 +1,174 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Test script to run inside Docker container to diagnose generate_content issues
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import django
|
||||
|
||||
# Setup Django
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'igny8_core.settings')
|
||||
django.setup()
|
||||
|
||||
import logging
|
||||
from django.contrib.auth import get_user_model
|
||||
from igny8_core.auth.models import Account
|
||||
from igny8_core.business.site_building.models import PageBlueprint, SiteBlueprint
|
||||
from igny8_core.business.site_building.services.page_generation_service import PageGenerationService
|
||||
from igny8_core.modules.system.models import IntegrationSettings
|
||||
from igny8_core.ai.settings import get_model_config
|
||||
|
||||
# Set up logging
|
||||
logging.basicConfig(
|
||||
level=logging.DEBUG,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def main():
|
||||
print("=" * 80)
|
||||
print("GENERATE_CONTENT DIAGNOSTIC TEST")
|
||||
print("=" * 80)
|
||||
|
||||
# 1. Test User Authentication and get Account
|
||||
print("\n1. Testing User Authentication...")
|
||||
User = get_user_model()
|
||||
user = User.objects.filter(email='dev@igny8.com').first()
|
||||
|
||||
if not user:
|
||||
print("❌ ERROR: User 'dev@igny8.com' not found!")
|
||||
return
|
||||
|
||||
print(f"✓ User found: {user.email} (ID: {user.id})")
|
||||
|
||||
# Get the associated account
|
||||
account = user.account if hasattr(user, 'account') else None
|
||||
if not account:
|
||||
print("❌ ERROR: User has no associated Account!")
|
||||
return
|
||||
|
||||
print(f"✓ Account found: {account.id}")
|
||||
|
||||
# 2. Check Integration Settings
|
||||
print("\n2. Checking Integration Settings...")
|
||||
try:
|
||||
integration = IntegrationSettings.objects.filter(account=account, is_active=True).first()
|
||||
if integration:
|
||||
print(f"✓ Integration found: {integration.integration_type}")
|
||||
print(f" - Config keys: {list(integration.config.keys()) if integration.config else 'None'}")
|
||||
print(f" - Active: {integration.is_active}")
|
||||
else:
|
||||
print("❌ WARNING: No active IntegrationSettings found!")
|
||||
print(" This will cause AI requests to fail!")
|
||||
except Exception as e:
|
||||
print(f"❌ ERROR checking integration: {e}")
|
||||
|
||||
# 3. Test Model Configuration
|
||||
print("\n3. Testing Model Configuration...")
|
||||
try:
|
||||
model_config = get_model_config('generate_page_content', account=account)
|
||||
print(f"✓ Model config loaded:")
|
||||
print(f" - Model: {model_config.get('model')}")
|
||||
print(f" - Max tokens: {model_config.get('max_tokens')}")
|
||||
print(f" - Temperature: {model_config.get('temperature')}")
|
||||
except Exception as e:
|
||||
print(f"❌ ERROR: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
# 4. Check for Site Blueprints
|
||||
print("\n4. Checking for Site Blueprints...")
|
||||
site_blueprints = SiteBlueprint.objects.filter(account=account)
|
||||
print(f" - Found {site_blueprints.count()} site blueprints")
|
||||
|
||||
if site_blueprints.exists():
|
||||
sb = site_blueprints.first()
|
||||
print(f" - First blueprint: {sb.name} (ID: {sb.id})")
|
||||
print(f" - Pages: {sb.pages.count()}")
|
||||
|
||||
# 5. Check for Page Blueprints
|
||||
print("\n5. Checking for Page Blueprints...")
|
||||
pages = PageBlueprint.objects.filter(account=account)
|
||||
print(f" - Found {pages.count()} page blueprints")
|
||||
|
||||
if not pages.exists():
|
||||
print("❌ WARNING: No page blueprints found! Creating a test page...")
|
||||
|
||||
# Create a test site blueprint if needed
|
||||
if not site_blueprints.exists():
|
||||
from igny8_core.modules.planner.models import Sector
|
||||
sector = Sector.objects.filter(account=account).first()
|
||||
|
||||
if not sector:
|
||||
print("❌ ERROR: No sector found for account. Cannot create test blueprint.")
|
||||
return
|
||||
|
||||
sb = SiteBlueprint.objects.create(
|
||||
account=account,
|
||||
sector=sector,
|
||||
name="Test Site Blueprint",
|
||||
site_type="business",
|
||||
status="draft"
|
||||
)
|
||||
print(f"✓ Created test site blueprint: {sb.id}")
|
||||
else:
|
||||
sb = site_blueprints.first()
|
||||
|
||||
# Create a test page
|
||||
page = PageBlueprint.objects.create(
|
||||
account=account,
|
||||
site_blueprint=sb,
|
||||
sector=sb.sector,
|
||||
title="Test Home Page",
|
||||
slug="home",
|
||||
type="home",
|
||||
status="draft",
|
||||
blocks_json=[
|
||||
{
|
||||
"type": "hero",
|
||||
"heading": "Welcome to Our Test Site",
|
||||
"subheading": "This is a test page for content generation"
|
||||
},
|
||||
{
|
||||
"type": "features",
|
||||
"heading": "Our Features"
|
||||
}
|
||||
]
|
||||
)
|
||||
print(f"✓ Created test page blueprint: {page.id}")
|
||||
else:
|
||||
page = pages.first()
|
||||
print(f" - Using existing page: {page.title} (ID: {page.id})")
|
||||
|
||||
# 6. Test generate_page_content
|
||||
print("\n6. Testing generate_page_content...")
|
||||
print(f" - Page ID: {page.id}")
|
||||
print(f" - Page title: {page.title}")
|
||||
print(f" - Page type: {page.type}")
|
||||
print(f" - Page status: {page.status}")
|
||||
print(f" - Blocks count: {len(page.blocks_json) if page.blocks_json else 0}")
|
||||
|
||||
try:
|
||||
service = PageGenerationService()
|
||||
print("\n Calling service.generate_page_content()...")
|
||||
result = service.generate_page_content(page, force_regenerate=False)
|
||||
|
||||
print(f"\n✓ SUCCESS!")
|
||||
print(f" Result: {result}")
|
||||
|
||||
except ValueError as e:
|
||||
print(f"\n❌ ValueError: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n❌ Exception: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print("TEST COMPLETE")
|
||||
print("=" * 80)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user