75 lines
1.6 KiB
Markdown
75 lines
1.6 KiB
Markdown
# 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
|