#!/usr/bin/env python3
"""
π§ͺ Test Script: Verify Conversation Context Inclusion for General Questions
"""
def test_conversation_context_inclusion():
"""Test if conversation context is included for general questions"""
print("π§ͺ TESTING CONVERSATION CONTEXT INCLUSION FOR GENERAL QUESTIONS")
print("=" * 70)
try:
# Test 1: Import optimized prompt generator
print("1οΈβ£ Testing optimized prompt generator import...")
from optimized_prompt_generator import OptimizedPromptGenerator
generator = OptimizedPromptGenerator()
print("β
OptimizedPromptGenerator imported successfully")
# Test 2: Create test context with all sections
print("\n2οΈβ£ Testing context with all sections...")
from prompt_generator import PromptContext
# Create test context with all sections
test_context = PromptContext(
conversation_summary="Test conversation summary with interactions",
action_history="Test action history with recent actions",
tech_stack="Test tech stack",
project_plans="π― PROJECT PLANS & OBJECTIVES:\n1. Build powerful conversation tracking system β
\n2. Implement context-aware prompt processing β
\n3. Create intelligent memory management system β
",
user_preferences="Test user preferences",
agent_metadata="Test agent metadata",
recent_interactions=[],
project_patterns=[],
best_practices=[],
common_issues=[],
development_workflow=[],
confidence_score=0.9,
context_type="test"
)
print("β
Test context created with all sections")
# Test 3: Test context conversion
print("\n3οΈβ£ Testing context conversion...")
context_dict = generator._context_to_dict(test_context)
print(f"β
Context converted to dict")
print(f"π Available keys: {list(context_dict.keys())}")
print(f"π¬ Conversation summary: {'conversation_summary' in context_dict}")
print(f"π Action history: {'action_history' in context_dict}")
print(f"π― Project plans: {'project_plans' in context_dict}")
# Test 4: Test intent classification for general question
print("\n4οΈβ£ Testing intent classification for general question...")
if generator.intent_selector:
relevant_context, intent_analysis = generator.intent_selector.select_relevant_context(
"test to see if we now get conversation context for general questions",
context_dict
)
print(f"β
Intent classified successfully")
print(f"π― Intent: {intent_analysis.primary_intent.value}")
print(f"π Context requirements: {intent_analysis.context_requirements}")
print(f"π§ Selected context: {list(relevant_context.keys())}")
else:
print("β οΈ Intent selector not available")
# Test 5: Test conversation context formatting
print("\n5οΈβ£ Testing conversation context formatting...")
conversation_context = generator._format_phase1_conversation_context(context_dict)
print(f"β
Conversation context formatted")
print(f"π Result length: {len(conversation_context)}")
print(f"π¬ Contains context: {'π¬ CONTEXT:' in conversation_context}")
print(f"π Contains recent: {'π RECENT:' in conversation_context}")
print(f"π― Contains goals: {'π― GOALS:' in conversation_context}")
print(f"π Formatted result:\n{conversation_context}")
# Test 6: Test full prompt generation
print("\n6οΈβ£ Testing full prompt generation...")
try:
full_prompt = generator._create_phase1_optimized_prompt(
"test to see if we now get conversation context for general questions",
test_context,
"smart"
)
print(f"β
Full prompt generated")
print(f"π Prompt length: {len(full_prompt)}")
print(f"π¬ Contains context: {'π¬ CONTEXT:' in full_prompt}")
print(f"π Contains recent: {'π RECENT:' in full_prompt}")
print(f"π― Contains goals: {'π― GOALS:' in full_prompt}")
print(f"π Prompt preview:\n{full_prompt[:500]}...")
except Exception as e:
print(f"β Full prompt generation failed: {e}")
print("\n" + "=" * 70)
print("π§ͺ TEST COMPLETE")
# Final assessment
if 'π¬ CONTEXT:' in conversation_context and 'π RECENT:' in conversation_context and 'π― GOALS:' in conversation_context:
print("π SUCCESS: All conversation context sections are now included!")
else:
print("β FAILURE: Some conversation context sections are still missing!")
if 'π¬ CONTEXT:' not in conversation_context:
print(" β Missing: π¬ CONTEXT")
if 'π RECENT:' not in conversation_context:
print(" β Missing: π RECENT")
if 'π― GOALS:' not in conversation_context:
print(" β Missing: π― GOALS")
except Exception as e:
print(f"β Error during testing: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_conversation_context_inclusion()