demo_ai_tools.py•2.78 kB
#!/usr/bin/env python3
"""
Demo script showing AI capabilities of DP-MCP server.
"""
import sys
import os
import asyncio
sys.path.append('src')
from dp_mcp.ai.ai_tools import initialize_ai_tools, get_ai_tools
from dp_mcp.tools.postgres_tools import execute_query
async def demo_ai_capabilities():
"""Demonstrate AI capabilities."""
print("🤖 DP-MCP AI Capabilities Demo")
print("="*40)
# Initialize AI tools
ai_tools = initialize_ai_tools("demo")
if not ai_tools:
print("❌ AI tools not available")
return
print("✅ AI tools initialized successfully")
# 1. Get AI system status
print("\n1️⃣ AI System Status:")
status = ai_tools.get_ai_status()
print(f"Environment: {status.get('environment', 'N/A')}")
print(f"Available models: {status.get('available_models', [])}")
print(f"Privacy level: {status.get('privacy_level', 'N/A')}")
print(f"Features enabled: {status.get('features_enabled', {})}")
# 2. Demonstrate natural language query
print("\n2️⃣ Natural Language Query Simulation:")
print("Question: 'How many users are in the database?'")
print("AI would convert this to: SELECT COUNT(*) FROM users;")
print("This feature works through the MCP server tools.")
# 3. Show actual database query
print("\n3️⃣ Database Query Example:")
try:
result = await execute_query("SELECT COUNT(*) as user_count FROM users", 10)
print(f"Actual query result: {result}")
except Exception as e:
print(f"Database query: {e}")
# 4. Privacy demonstration
print("\n4️⃣ Privacy Protection Demo:")
sample_data = [
{"name": "John Doe", "email": "john@example.com", "phone": "555-123-4567"},
{"name": "Jane Smith", "email": "jane@example.com", "ssn": "123-45-6789"}
]
sanitized = ai_tools.privacy_manager.sanitize_data(sample_data)
print("Original data contains PII")
print(f"Sanitized data: {sanitized}")
print("\n🎉 AI Demo completed!")
print("\n📋 Available AI MCP Tools:")
print("• ask_natural_language_query - Convert questions to SQL")
print("• explain_query_with_ai - AI-powered query explanations")
print("• get_ai_data_insights - Generate insights about your data")
print("• analyze_table_patterns - Pattern analysis with AI")
print("• generate_ai_data_report - Comprehensive AI reports")
print("• get_ai_system_status - Check AI system status")
print("\nTo enable more AI features:")
print("1. Add API keys to .env.ai file")
print("2. Install Ollama for local models")
print("3. Restart server with --ai-env production")
if __name__ == "__main__":
asyncio.run(demo_ai_capabilities())