Jorvis Environment Variables Reference

Feature Flags

VariableTypeDefaultDescription
JORVIS_PARALLEL_QUERIESbooleanfalseEnable parallel query execution
JORVIS_FEATURE_WEB_SEARCHbooleanfalseEnable web search fallback
JORVIS_AUDIT_STORAGE_ENABLEDbooleanfalseEnable audit storage (ADR-0007)
JORVIS_RRF_Knumber60RRF fusion constant for hybrid retrieval
JORVIS_HYBRID_RAG_ENABLEDbooleanfalseEnable hybrid RAG (vector + keyword)
JORVIS_FK_EXPANSION_ENABLEDbooleanfalseEnable FK-based table expansion
JORVIS_RERANKER_ENABLEDbooleanfalseEnable deterministic reranker
JORVIS_SEMANTIC_CACHE_ENABLEDbooleanfalseEnable semantic cache
JORVIS_SEMANTIC_CACHE_TTL_MSnumber300000Cache TTL in milliseconds
JORVIS_SEMANTIC_CACHE_MAX_ENTRIESnumber1000Max cache entries
JORVIS_PRECISION_GUARD_ENABLEDbooleanfalseEnable precision guard (filter low-signal results)
JORVIS_PRECISION_GUARD_MIN_Knumber5Minimum results to return
JORVIS_PRECISION_GUARD_MAX_Knumber10Maximum results to return
JORVIS_PRECISION_GUARD_MIN_SCOREnumber0.05Minimum rrfScore threshold
JORVIS_VALUE_PROBING_ENABLEDbooleanfalseEnable column value probing for precision
JORVIS_FORECAST_ENABLEDbooleantrueEnable time-series forecasting (Task-019)
FORECAST_SIDECAR_URLstringhttp://localhost:8001URL for Python forecast sidecar
RUN_E2E_TESTSbooleanfalseEnable opt-in E2E/integration tests

Web Search Configuration

VariableTypeRequiredDescription
WEB_SEARCH_PROVIDERtavily | brave | serperNoSearch provider (default: tavily)
TAVILY_API_KEYstringIf provider=tavilyTavily Search API key
TAVILY_TIMEOUT_MSnumberNoTavily request timeout (default: 8000)
BRAVE_API_KEYstringIf provider=braveBrave Search API key
SERPER_API_KEYstringIf provider=serperSerper API key

Parallel Execution Limits

Configured in analytics-platform/src/ai/graph/parallel/parallel.constants.ts:

ConstantValueDescription
MAX_PATHS3Maximum parallel execution paths
MAX_TOKENS_PER_PATH4000Token limit per path
MAX_TOTAL_TOKENS10000Total token budget
TIMEOUT_MS30000Path execution timeout

Database Configuration

VariablePatternDescription
JORVIS_DB_<PROFILE>_HOSTstringDatabase host
JORVIS_DB_<PROFILE>_PORTnumberDatabase port
JORVIS_DB_<PROFILE>_USERstringDatabase user
JORVIS_DB_<PROFILE>_PASSWORDstringDatabase password
JORVIS_DB_<PROFILE>_DATABASEstringDatabase name

LLM Configuration

VariableTypeDescription
OPENAI_API_KEYstringOpenAI API key
OPENAI_MODELstringModel to use (default: gpt-4)

Open WebUI Native Images

These settings configure the canonical Jorvis image-generation surface through Open WebUI native Admin Panel -> Settings -> Images. They are PersistentConfig values in Open WebUI: new values apply automatically on a fresh bootstrap, but existing runtime state may continue using the saved Admin settings until an operator updates the Images panel or resets that persisted state.

VariableTypeDefaultDescription
ENABLE_IMAGE_GENERATIONbooleantrueEnables the native Images surface in Open WebUI.
USER_PERMISSIONS_FEATURES_IMAGE_GENERATIONbooleantrueAllows end users to access the native Images surface.
IMAGE_GENERATION_ENGINEstringgeminiRoutes image creation through Gemini instead of a chat-model row.
IMAGE_GENERATION_MODELstringmodels/gemini-3.1-flash-image-previewCanonical Gemini image-generation model ID for Jorvis.
IMAGES_GEMINI_API_BASE_URLstringhttps://generativelanguage.googleapis.com/v1betaGemini image API base URL used by Open WebUI Images.
IMAGES_GEMINI_ENDPOINT_METHODstringgenerateContentRequired endpoint method for Gemini 3.1 Flash Image. Do not use Imagen-style predict.
ENABLE_IMAGE_EDITbooleantrueKeeps Open WebUI image editing aligned with the same native Gemini surface.
IMAGE_EDIT_ENGINEstringgeminiRoutes image editing through Gemini.
IMAGE_EDIT_MODELstringmodels/gemini-3.1-flash-image-previewCanonical model ID for Gemini image-edit operations.
IMAGES_EDIT_GEMINI_API_BASE_URLstringhttps://generativelanguage.googleapis.com/v1betaGemini image-edit API base URL used by Open WebUI Images.

Operational note:

  • Do not set ENABLE_PERSISTENT_CONFIG=false as the normal Jorvis path. That would force env precedence on every restart and make Admin changes ephemeral.
  • Do not expose Gemini image generation as a normal chat model in the picker.

Voice Gateway Configuration

Configured in analytics-platform/deploy/openwebui/docker-compose.yml:

VariableTypeRequiredDescription
EPHEMERAL_SECRETstringYesRandom 32+ char string for session encryption
GOOGLE_APPLICATION_CREDENTIALSpathYesPath to GCP service account JSON (e.g. /secrets/sa.json)
VERTEX_PROJECT_IDstringYesGCP Project ID for Vertex AI
STT_PROVIDERgeminiNoSpeech-to-Text provider (default: gemini)
STT_GEMINI_MODELstringNoGemini model for STT (default: gemini-2.5-flash)
TTS_PROVIDERgeminiNoText-to-Speech provider (default: gemini)
TTS_DEFAULT_MODELstringNoGemini model for TTS (default: gemini-2.5-flash-preview-tts)
GEMINI_LIVE_MODELstringNoGemini Live model (default: models/gemini-3.1-flash-live-preview)
FALLBACK_GEMINI_LIVE_MODELScsvNoOrdered Gemini Live fallback chain (default: models/gemini-live-2.5-flash,models/gemini-live-2.5-pro,models/gemini-live-2.0-flash)