LifeRPG_v2.0/modern/backend/ai_test_api.py
TLimoges33 2b961611fd
🚀 Major Enhancement: Complete AI-Powered LifeRPG Platform with Git LFS
 New Features:
- AI-powered habit creation with natural language processing
- HuggingFace transformers integration for sentiment analysis (tracked via Git LFS)
- Advanced predictive analytics and behavioral insights
- Voice & image input capabilities for hands-free habit tracking
- Real-time notifications and community features
- Plugin system with extensible architecture

🔧 Technical Improvements:
- Comprehensive FastAPI backend with 30+ endpoints
- React frontend with PWA capabilities
- Advanced authentication with 2FA support
- RBAC authorization system
- Comprehensive security features (CSRF, rate limiting, audit logging)
- Database migrations and health monitoring
- Docker containerization support
- Git LFS configured for large AI model files (2+ GB)

📚 Documentation & DevOps:
- Complete deployment guides for multiple platforms
- Professional README with feature highlights
- GitHub Actions CI/CD workflows
- Comprehensive API documentation
- Security audit roadmap and compliance framework
- Setup scripts for development environment

🧪 Testing & Quality:
- Comprehensive test suite with 20+ test modules
- Setup verification scripts
- Working development environment with both backend and frontend
- Health checks and monitoring systems

🌟 Ready for:
- Portfolio showcasing
- Community contributions
- Production deployment
- Professional presentation
2025-09-28 21:29:19 +00:00

217 lines
6.7 KiB
Python

#!/usr/bin/env python3
"""
Quick test API for Phase 3 AI features
Simulates the AI assistant endpoints
"""
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
import asyncio
import json
from datetime import datetime
from huggingface_ai import HuggingFaceAI
app = FastAPI(title="LifeRPG AI Test API")
# CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Initialize AI service
ai_service = HuggingFaceAI()
@app.post("/api/v1/ai/habits/nlp-create")
async def nlp_create_habit(request: Request):
"""Create a habit from natural language using AI."""
try:
data = await request.json()
text = data.get('text', '')
if not text:
return {'error': 'No text provided'}
# Parse habit using AI
result = await ai_service.parse_habit_from_text(text)
return {
'success': True,
'habit': result,
'message': f'Successfully parsed habit: "{result.get("title", "Unknown")}"',
'timestamp': datetime.now().isoformat()
}
except Exception as e:
return {
'success': False,
'error': str(e),
'message': 'Failed to parse habit'
}
@app.get("/api/v1/ai/habits/suggestions")
async def get_ai_suggestions():
"""Get AI-powered habit suggestions."""
return {
'suggestions': [
{
'title': 'Drink 8 glasses of water daily',
'category': 'health',
'difficulty': 1,
'reason': 'Based on popular health recommendations'
},
{
'title': 'Read for 15 minutes before bed',
'category': 'learning',
'difficulty': 1,
'reason': 'Improves sleep quality and knowledge'
},
{
'title': 'Take a 10-minute walk after lunch',
'category': 'fitness',
'difficulty': 1,
'reason': 'Boosts afternoon energy and aids digestion'
}
],
'timestamp': datetime.now().isoformat()
}
@app.get("/api/v1/ai/habits/predict-success")
async def predict_success():
"""Predict habit success probability."""
return {
'predictions': [
{
'habit_id': 1,
'habit_name': 'Morning Exercise',
'success_probability': 0.85,
'factors': ['consistent morning routine', 'past success pattern'],
'recommendation': 'Continue current approach - high success probability'
},
{
'habit_id': 2,
'habit_name': 'Evening Reading',
'success_probability': 0.65,
'factors': ['variable evening schedule', 'high motivation'],
'recommendation': 'Set specific reading time to improve consistency'
}
],
'timestamp': datetime.now().isoformat()
}
@app.post("/api/v1/ai/habits/voice-command")
async def process_voice_command(request: Request):
"""Process voice commands for habit management."""
try:
# In a real implementation, extract audio file and process
return {
'transcript': 'Voice command received successfully!',
'action': 'processed',
'message': 'Voice processing with HuggingFace Whisper ready!',
'confidence': 0.85,
'timestamp': datetime.now().isoformat()
}
except Exception as e:
return {
'transcript': 'Voice processing failed',
'error': str(e),
'message': 'Voice recognition temporarily unavailable'
}
@app.post("/api/v1/ai/habits/image-checkin")
async def process_image_checkin(request: Request):
"""Process image uploads for habit check-ins."""
try:
# In a real implementation, extract and analyze image
detected_items = [
'workout equipment',
'healthy food',
'book',
'meditation cushion',
'water bottle'
]
return {
'message': 'Image processed successfully!',
'detected_items': detected_items,
'confidence': 0.92,
'habit_matched': True,
'habit_id': 1,
'habit_completed': True,
'note': 'Image recognition with HuggingFace CLIP ready!',
'timestamp': datetime.now().isoformat()
}
except Exception as e:
return {
'message': 'Image processing failed',
'error': str(e),
'detected_items': [],
'confidence': 0.0
}
@app.get("/api/v1/ai/analytics/patterns")
async def get_pattern_analysis():
"""Get AI-powered habit pattern analysis."""
return {
'patterns': [
{
'pattern': 'Morning habits have 85% higher completion rate',
'confidence': 0.92,
'recommendation': 'Schedule important habits in the morning'
},
{
'pattern': 'Weekend completion drops by 30%',
'confidence': 0.78,
'recommendation': 'Create specific weekend routines'
},
{
'pattern': 'Habit chains increase success by 40%',
'confidence': 0.88,
'recommendation': 'Link new habits to existing ones'
}
],
'insights': [
'You perform best with 3-5 habits maximum',
'Visual reminders increase completion by 25%',
'Social accountability boosts success rate'
],
'timestamp': datetime.now().isoformat()
}
@app.get("/")
async def root():
"""API status endpoint."""
return {
'service': 'LifeRPG AI Test API',
'version': '3.0.0',
'status': 'running',
'ai_models_loaded': len(ai_service.local_models) if hasattr(ai_service, 'local_models') else 0,
'endpoints': [
'/api/v1/ai/habits/nlp-create',
'/api/v1/ai/habits/suggestions',
'/api/v1/ai/habits/predict-success',
'/api/v1/ai/habits/voice-command',
'/api/v1/ai/habits/image-checkin',
'/api/v1/ai/analytics/patterns'
],
'timestamp': datetime.now().isoformat()
}
if __name__ == "__main__":
print("🚀 Starting LifeRPG AI Test API...")
print("🤖 AI Features: Natural Language Processing, Predictive Analytics, Voice/Image Support")
print("📡 Access: http://localhost:8000")
print("📚 Docs: http://localhost:8000/docs")
uvicorn.run(app, host="0.0.0.0", port=8000, reload=True)