#!/usr/bin/env python3 """ Test the RAG endpoint logic without starting the full API server """ from knowledge_extractor import extract_knowledge_for_aspects, get_aspect_summary # Sample aspects data (same format as API returns) test_aspects = [ {"planet1": "Sun", "planet2": "Moon", "aspect": "trine", "orb": 2.5}, {"planet1": "Venus", "planet2": "Mars", "aspect": "square", "orb": 3.1}, {"planet1": "Moon", "planet2": "Mercury", "aspect": "conjunction", "orb": 1.2}, {"planet1": "Sun", "planet2": "Jupiter", "aspect": "sextile", "orb": 4.0}, {"planet1": "Mars", "planet2": "Saturn", "aspect": "opposition", "orb": 5.5} ] print("=" * 70) print("šŸ”® Testing RAG Endpoint Logic") print("=" * 70) # Test knowledge extraction print(f"\nšŸ“Š Testing with {len(test_aspects)} aspects...") knowledge_context = extract_knowledge_for_aspects(test_aspects) # Test aspect summary aspect_summary = get_aspect_summary(test_aspects, limit=5) # Count knowledge found/missing knowledge_found = knowledge_context.count("## ") knowledge_missing = knowledge_context.count("*Knowledge base entry not yet available*") # Display results (same as API endpoint would return) result = { "knowledge_context": knowledge_context, "aspect_summary": aspect_summary, "aspects_count": len(test_aspects), "knowledge_found": knowledge_found, "knowledge_missing": knowledge_missing } print(f"\nāœ… Results:") print(f" - Total aspects: {result['aspects_count']}") print(f" - Knowledge found: {result['knowledge_found']}") print(f" - Knowledge missing: {result['knowledge_missing']}") print(f" - Context length: {len(result['knowledge_context'])} characters") print(f"\nšŸ“ Aspect Summary:") print(result['aspect_summary']) print(f"\nšŸ“š Knowledge Context Preview (first 800 chars):") print("-" * 70) print(result['knowledge_context'][:800] + "...") print("\n" + "=" * 70) print("āœ… RAG endpoint logic test PASSED!") print("=" * 70)