Skip to content

Configuration

All settings are defined in src/celine/assistant/settings.py using pydantic-settings. Values are read from environment variables or .env file.

OpenAI Settings

Variable Type Default Description
OPENAI_API_KEY str OpenAI API key (required)
OPENAI_CHAT_MODEL str gpt-4o-mini Chat completion model
OPENAI_EMBED_MODEL str text-embedding-3-small Embedding model for indexing and retrieval
OPENAI_VISION_MODEL str gpt-4o-mini Vision model for image captioning

Vector Store

Variable Type Default Description
QDRANT_URL str http://host.docker.internal:6333 Qdrant base URL
QDRANT_API_KEY str? Optional Qdrant API key
QDRANT_COLLECTION str celine_docs Qdrant collection name

Database

Variable Type Default Description
DATABASE_URL str postgresql+asyncpg://...host.docker.internal:15432/ai_assistant PostgreSQL async connection string
DB_POOL_SIZE int 10 Connection pool size
DB_MAX_OVERFLOW int 20 Max overflow connections
DB_POOL_TIMEOUT int 30 Pool timeout in seconds
DB_POOL_RECYCLE int 1800 Connection recycle time in seconds

Authentication

Variable Type Default Description
OAUTH2_TRUST_HEADERS bool true Trust JWT from proxy headers (oauth2_proxy)
OAUTH2_JWKS_URL str? JWKS endpoint for JWT verification (auto-discovered if not set)
OAUTH2_ISSUER str? OAuth2 issuer URL
OAUTH2_AUDIENCE str? oauth2_proxy Expected JWT audience
OAUTH2_JWT_COOKIE_NAME str? Optional JWT cookie name
ADMIN_GROUP str admins Group name for admin access

Training Materials

Variable Type Default Description
TRAINING_MATERIALS_PATH str /workspace/repositories/celine-training-materials Local checkout path for training materials
TRAINING_MATERIALS_REPO_URL str Git URL to clone/pull training materials
TRAINING_MATERIALS_REF str origin/main Git ref checked out before ingestion
TRAINING_MATERIALS_SYNC_ON_START bool true Auto-sync training materials on startup

Uploads and Ingestion

Variable Type Default Description
UPLOADS_URI str file://./data/uploads Upload storage URI
MAX_UPLOAD_MB int 25 Maximum upload file size in MB
INGEST_ENABLE bool true Enable RAG ingestion
INGEST_FORCE_RELOAD_ON_START bool false Force re-ingest all documents on startup
MANIFEST_PATH str /app/data/manifest.json Manifest file for tracking ingested documents
DOCS_POLL_INTERVAL_SECONDS int 60 Polling interval for document changes

General

Variable Type Default Description
APP_ENV str prod Application environment
LOG_LEVEL str INFO Python log level
DIGITAL_TWIN_API_URL str? Digital Twin API URL for dashboard context enrichment

Notes

  • DATABASE_URL must use the asyncpg driver for async SQLAlchemy compatibility.
  • When OAUTH2_TRUST_HEADERS is true, the JWT from x-auth-request-access-token header is trusted without JWKS verification (used behind oauth2_proxy).
  • Upload storage defaults to local disk. The UPLOADS_URI supports file:// and s3:// schemes.