ai-robot-core/ai-service/README.md

75 lines
1.6 KiB
Markdown
Raw Normal View History

# 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