Skip to content

Configuration

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

Required Settings

Variable Type Description
OPENAI_API_KEY str OpenAI API key
DATABASE_URL str PostgreSQL async connection string (postgresql+asyncpg://...)
JWKS_URL str JWKS endpoint for JWT signature verification
QDRANT_URL str Qdrant base URL

Optional Settings

Variable Type Default Description
OPENAI_MODEL str gpt-4o Chat completion model
EMBED_MODEL str text-embedding-3-small Embedding model for indexing and retrieval
QDRANT_COLLECTION str celine_docs Qdrant collection name
TOP_K int 5 Number of retrieved context chunks per query
MAX_HISTORY_MESSAGES int 20 Maximum messages loaded from history per request
S3_ENDPOINT_URL str none S3-compatible storage endpoint (if used)
S3_BUCKET str assistant-uploads Bucket for raw file uploads
LOG_LEVEL str INFO Python log level
TRAINING_MATERIALS_PATH str /workspace/repositories/celine-training-materials Local checkout path used for Markdown ingestion
TRAINING_MATERIALS_REPO_URL str empty Git URL to clone/pull celine-training-materials from inside the container
TRAINING_MATERIALS_REF str origin/main Git ref checked out before ingestion
TRAINING_MATERIALS_SYNC_ON_START bool true If true, clone/fetch/checkout the training repo on startup before ingestion

Docker Compose Example

environment:
  OPENAI_API_KEY: sk-...
  DATABASE_URL: postgresql+asyncpg://postgres:postgres@db:5432/assistant
  JWKS_URL: http://keycloak:8080/realms/celine/protocol/openid-connect/certs
  QDRANT_URL: http://qdrant:6333
  TRAINING_MATERIALS_PATH: /app/training-materials
  TRAINING_MATERIALS_REPO_URL: https://<token>@github.com/celine-eu/celine-training-materials.git
  TRAINING_MATERIALS_REF: origin/main

Notes

  • JWKS_URL must be reachable at startup. The JWKS is fetched lazily on first request and cached.
  • DATABASE_URL must use the asyncpg driver for async SQLAlchemy compatibility.
  • Storage for uploads defaults to local disk if S3_ENDPOINT_URL is not set.
  • In Kubernetes, use an authenticated HTTPS Git URL or another credentialed Git transport for TRAINING_MATERIALS_REPO_URL.