#!/usr/bin/env python3 """ Simple BeastBullet + TinyLlama Integration Test Uses existing Ollama TinyLlama installation """ import sys import os # Add code directory to path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'code')) from integration_example import ExpertLoader, TinyLlamaIntegration import json def main(): print("=" * 70) print("🧠 BeastBullet + TinyLlama Integration") print("=" * 70) # Step 1: Load BeastBullet experts print("\nšŸ“¦ Loading BeastBullet experts...") loader = ExpertLoader("experts/") try: # Load encoder (if available) if os.path.exists("experts/shared_encoder_v1.0.pt"): loader.load_encoder() else: print("āš ļø Shared encoder not found, using placeholder") loader.encoder = None except Exception as e: print(f"āš ļø Could not load encoder: {e}") loader.encoder = None # Load all expert models print("\nšŸ”§ Loading expert models...") loader.load_all_experts() # Step 2: Create TinyLlama integration print("\nšŸ”— Creating TinyLlama integration...") integration = TinyLlamaIntegration( experts=loader.experts, encoder=loader.encoder ) # Step 3: Load Sonnet-quality configuration print("\nāš™ļø Loading configuration...") try: with open("configs/config_sonnet_quality.json", "r") as f: config = json.load(f) synthesis_config = config.get("synthesis", {}) except Exception as e: print(f"āš ļø Could not load config: {e}, using defaults") synthesis_config = {"temperature": 0.3, "max_tokens": 512} # Step 4: Test queries print("\n" + "=" * 70) print("šŸ“ Running Test Queries") print("=" * 70) test_queries = [ "What is 15% of 240?", "If all cats are mammals, and Fluffy is a cat, what is Fluffy?", "Explain what is machine learning in simple terms", ] for i, query in enumerate(test_queries, 1): print(f"\n{'─' * 70}") print(f"Query {i}: {query}") print('─' * 70) try: result = integration.query(query, synthesis_config) print(f"\nšŸ’” Answer:") print(f" {result['answer']}") print(f"\nšŸ“Š Details:") print(f" • Confidence: {result['confidence']:.2%}") print(f" • Experts used: {', '.join(result['experts_used'])}") print(f"\nšŸ” Reasoning trace:") for step in result['reasoning_trace']: print(f" - {step}") except Exception as e: print(f"āŒ Error processing query: {e}") import traceback traceback.print_exc() print("\n" + "=" * 70) print("āœ… Integration test complete!") print("=" * 70) if __name__ == "__main__": main()