#!/usr/bin/env python3 """ Simple script to run the Agentic AI API server without Docker. Just run: python run_api.py """ import sys import os from pathlib import Path # Add src to path sys.path.insert(0, str(Path(__file__).parent / "src")) def check_dependencies(): """Check if we have the required packages.""" missing = [] try: import fastapi print("āœ… FastAPI available") except ImportError: missing.append("fastapi") try: import uvicorn print("āœ… Uvicorn available") except ImportError: missing.append("uvicorn") try: import spacy nlp = spacy.load("en_core_web_sm") print("āœ… spaCy model available") except (ImportError, OSError): missing.append("spacy model") if missing: print(f"\\nāŒ Missing: {', '.join(missing)}") print("\\nšŸ“¦ Install missing packages:") if "fastapi" in missing or "uvicorn" in missing: print(" pip install fastapi uvicorn python-multipart") if "spacy model" in missing: print(" python -m spacy download en_core_web_sm") return False return True def main(): """Run the API server.""" print("šŸ¤– Agentic AI System - Simple API Server") print("=" * 50) # Check dependencies if not check_dependencies(): print("\\nšŸ’” Install dependencies first, then run again.") return print("\\nšŸš€ Starting API server...") print("šŸ“ Server: http://localhost:8000") print("šŸ“š Docs: http://localhost:8000/docs") print("ā¤ļø Health: http://localhost:8000/health") print("\\nšŸ”‘ API Keys for testing:") print(" Demo: demo-key-12345") print(" Admin: admin-key-67890") print("\\nšŸ“ API Key Configuration:") print(" šŸ“„ Primary: config/api_keys.json") print(" šŸ”„ Fallback: api_server.py") print(" šŸ”§ Reload: POST /api-keys/reload (admin only)") print("\\n" + "=" * 50) # Import and run try: import uvicorn from api_server import app uvicorn.run( app, host="0.0.0.0", port=8000, log_level="info" ) except KeyboardInterrupt: print("\\nšŸ›‘ Server stopped") except Exception as e: print(f"\\nāŒ Error: {e}") if __name__ == "__main__": main()