# AI Service Python AI Service for intelligent chat with RAG support. ## Features - Multi-tenant isolation via X-Tenant-Id header - SSE streaming support via Accept: text/event-stream - RAG-powered responses with confidence scoring ## Prerequisites - PostgreSQL 12+ - Qdrant vector database - Python 3.10+ ## Installation ```bash pip install -e ".[dev]" ``` ## Database Initialization ### Option 1: Using Python script (Recommended) ```bash # Create database and tables python scripts/init_db.py --create-db # Or just create tables (database must exist) python scripts/init_db.py ``` ### Option 2: Using SQL script ```bash # Connect to PostgreSQL and run psql -U postgres -f scripts/init_db.sql ``` ## Configuration Create a `.env` file in the project root: ```env AI_SERVICE_DATABASE_URL=postgresql+asyncpg://postgres:password@localhost:5432/ai_service AI_SERVICE_QDRANT_URL=http://localhost:6333 AI_SERVICE_LLM_API_KEY=your-api-key AI_SERVICE_LLM_BASE_URL=https://api.openai.com/v1 AI_SERVICE_LLM_MODEL=gpt-4o-mini AI_SERVICE_DEBUG=true ``` ## Running ```bash uvicorn app.main:app --host 0.0.0.0 --port 8000 ``` ## API Endpoints ### Chat API - `POST /ai/chat` - Generate AI reply (supports SSE streaming) - `GET /ai/health` - Health check ### Admin API - `GET /admin/kb/documents` - List documents - `POST /admin/kb/documents` - Upload document - `GET /admin/kb/index/jobs/{jobId}` - Get indexing job status - `DELETE /admin/kb/documents/{docId}` - Delete document - `POST /admin/rag/experiments/run` - Run RAG experiment - `GET /admin/sessions` - List chat sessions - `GET /admin/sessions/{sessionId}` - Get session details