#!/usr/bin/env python3 """Test Gemini directly using the models endpoint.""" import requests import json def test_direct_gemini(): """Test Gemini directly through the models endpoint.""" print("šŸŽÆ Direct Gemini Test") print("=" * 40) # Simple test transcript test_transcript = """ This is a comprehensive video about artificial intelligence and machine learning. The speaker discusses the evolution of neural networks, from simple perceptrons to complex deep learning architectures. Key topics covered include convolutional neural networks for computer vision, recurrent neural networks for sequence processing, and transformer architectures that have revolutionized natural language processing. The video also explores practical applications in healthcare, autonomous vehicles, and recommendation systems. The presenter emphasizes the importance of ethical AI development and responsible deployment of machine learning systems in production environments. """.strip() request_data = { "model": "gemini-1.5-pro", # Explicitly request Gemini "transcript": test_transcript, "options": { "length": "brief", "focus_areas": ["AI", "machine learning", "neural networks"] } } try: print("šŸ“¤ Testing direct Gemini summarization...") response = requests.post( "http://localhost:8000/api/models/summarize", json=request_data, headers={"Content-Type": "application/json"}, timeout=60 ) print(f"šŸ“Ø Response status: {response.status_code}") if response.status_code == 200: result = response.json() print("āœ… SUCCESS! Gemini summarization worked!") # Display results if 'summary' in result: summary = result['summary'] print(f"\nšŸ“‹ Summary: {summary}") if 'key_points' in result: key_points = result.get('key_points', []) print(f"\nšŸ”‘ Key Points ({len(key_points)} found):") for i, point in enumerate(key_points, 1): print(f" {i}. {point}") if 'cost_data' in result: cost_data = result['cost_data'] cost = cost_data.get('total_cost_usd', 0) input_tokens = cost_data.get('input_tokens', 0) output_tokens = cost_data.get('output_tokens', 0) print(f"\nšŸ’° Cost: ${cost:.4f}") print(f"šŸ“„ Input tokens: {input_tokens:,}") print(f"šŸ“ Output tokens: {output_tokens:,}") if 'processing_metadata' in result: metadata = result['processing_metadata'] model_used = metadata.get('model_used', 'N/A') processing_time = metadata.get('processing_time_seconds', 0) print(f"\nšŸ¤– Model: {model_used}") print(f"⚔ Time: {processing_time:.2f}s") if 'large_context_advantage' in metadata: advantage = metadata['large_context_advantage'] print(f"šŸš€ Context advantage: {advantage}") return True else: print(f"āŒ Failed with status {response.status_code}") try: error = response.json() print(f"Error: {error}") except: print(f"Error text: {response.text}") return False except Exception as e: print(f"āŒ Exception: {e}") return False def test_health_check(): """Quick health check.""" print("\n=== Health Check ===") try: response = requests.get("http://localhost:8000/health") if response.status_code == 200: print("āœ… Backend is healthy") return True else: print(f"āŒ Health check failed: {response.status_code}") return False except Exception as e: print(f"āŒ Health check error: {e}") return False if __name__ == "__main__": if test_health_check(): success = test_direct_gemini() if success: print("\nšŸŽ‰ āœ… GEMINI DIRECT TEST PASSED!") print("āœ… Gemini 1.5 Pro is working correctly") print("āœ… Ready for YouTube video processing") else: print("\nāŒ Direct Gemini test failed") else: print("āŒ Backend not available") print("\n" + "=" * 40)