Aller au contenu

Configuration

Guide de configuration des variables d'environnement JARVIS.

Fichier .env

Créez un fichier .env dans src/infra/ basé sur .env.example.

Variables Essentielles

Application

APP_ENV=development          # development, staging, production
APP_SECRET_KEY=<secret-32+>  # Clé secrète JWT (min 32 caractères)
DEBUG=false                  # Mode debug
ALLOWED_HOSTS=localhost,127.0.0.1
LOG_LEVEL=INFO               # DEBUG, INFO, WARNING, ERROR

Base de Données

DATABASE_URL=postgresql://user:password@localhost:5432/jarvis_db
DB_POOL_SIZE=20              # Connexions maintenues
DB_MAX_OVERFLOW=40           # Connexions supplémentaires

Redis

REDIS_URL=redis://localhost:6379/0
REDIS_MAX_CONNECTIONS=50

MinIO (S3)

MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_SECURE=false           # true pour HTTPS
MINIO_BUCKET_DOCUMENTS=jarvis-documents

Configuration LLM

Ollama (Local)

OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_DEFAULT_MODEL=llama3
OLLAMA_TIMEOUT=120

APIs Cloud

ANTHROPIC_API_KEY=sk-ant-api03-...
OPENAI_API_KEY=sk-proj-...
GOOGLE_API_KEY=

Routage LLM

LLM_DEFAULT_TEMPERATURE=0.7
LLM_MAX_TOKENS=4000
LLM_SENSITIVITY_THRESHOLD=0.7  # Score > 0.7 → LLM local

Sécurité

JWT

JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7

Rate Limiting

RATE_LIMIT_PER_MINUTE=60
RATE_LIMIT_BURST=100

Générer une Clé Secrète

# Python
python -c "import secrets; print(secrets.token_hex(32))"

# OpenSSL
openssl rand -hex 32

Validation

La configuration est validée au démarrage via Pydantic Settings. Une erreur sera levée si des variables requises sont manquantes.