feat: add full AI provider config to .env.example and docker-compose
- All OpenAI, Gemini, Anthropic model/timeout/temperature settings - Brief extraction processing config (models, cost limits, concurrency) - File upload and WebSocket settings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
16bc9d0c0d
commit
15bf9d3935
2 changed files with 73 additions and 8 deletions
43
.env.example
43
.env.example
|
|
@ -15,16 +15,42 @@ AZURE_REDIRECT_URI=https://ai-sandbox.oliver.solutions/ac-helper/
|
|||
# First login with this email automatically receives the admin role
|
||||
ADMIN_EMAIL=
|
||||
|
||||
# ── AI providers ──────────────────────────────────────────────────────────────
|
||||
# Required: Gemini is used for AI spreadsheet commands
|
||||
GEMINI_API_KEY=
|
||||
GEMINI_MODEL=gemini-2.0-flash-exp
|
||||
|
||||
# Optional: only needed if you use the brief-extraction feature with these providers
|
||||
# ── OpenAI ────────────────────────────────────────────────────────────────────
|
||||
OPENAI_API_KEY=
|
||||
OPENAI_MODEL=gpt-4.1
|
||||
OPENAI_REASONING_EFFORT=medium
|
||||
OPENAI_TIMEOUT=3600
|
||||
OPENAI_MAX_RETRIES=2
|
||||
|
||||
# ── Google Gemini ─────────────────────────────────────────────────────────────
|
||||
# Required: used for AI spreadsheet commands
|
||||
GEMINI_API_KEY=
|
||||
GOOGLE_MODEL=gemini-2.0-flash-exp
|
||||
GOOGLE_TEMPERATURE=0.7
|
||||
GOOGLE_MAX_OUTPUT_TOKENS=100000
|
||||
GOOGLE_THINKING_BUDGET=12000
|
||||
GOOGLE_TIMEOUT=3600
|
||||
|
||||
# ── Anthropic Claude ──────────────────────────────────────────────────────────
|
||||
ANTHROPIC_API_KEY=
|
||||
ANTHROPIC_MODEL_OPUS=claude-opus-4-5-20251101
|
||||
ANTHROPIC_MODEL_SONNET=claude-sonnet-4-5-20250929
|
||||
ANTHROPIC_TEMPERATURE=1
|
||||
ANTHROPIC_MAX_TOKENS=32000
|
||||
ANTHROPIC_THINKING_BUDGET=12000
|
||||
ANTHROPIC_TIMEOUT=300
|
||||
|
||||
# ── LlamaCloud (PDF parsing) ──────────────────────────────────────────────────
|
||||
LLAMA_CLOUD_API_KEY=
|
||||
|
||||
# ── Brief extraction processing ───────────────────────────────────────────────
|
||||
DEFAULT_PRIMARY_MODELS=anthropic-sonnet45,google-gemini20
|
||||
DEFAULT_CONSOLIDATION_MODEL=anthropic-sonnet45
|
||||
MINIMUM_SUCCESS_THRESHOLD=1
|
||||
ENABLE_COST_ESTIMATION=true
|
||||
MAX_PROCESSING_COST_USD=10.00
|
||||
MAX_CONCURRENT_JOBS=5
|
||||
|
||||
# ── Security ──────────────────────────────────────────────────────────────────
|
||||
# Generate with: python3 -c "import secrets; print(secrets.token_hex(32))"
|
||||
SESSION_SECRET=
|
||||
|
|
@ -32,5 +58,10 @@ SESSION_SECRET=
|
|||
# ── CORS ──────────────────────────────────────────────────────────────────────
|
||||
ALLOWED_ORIGINS=https://ai-sandbox.oliver.solutions
|
||||
|
||||
# ── File upload ───────────────────────────────────────────────────────────────
|
||||
MAX_UPLOAD_SIZE_MB=200
|
||||
FILE_RETENTION_HOURS=24
|
||||
WS_PING_INTERVAL_SECONDS=30
|
||||
|
||||
# ── Dev mode (must be false in production) ────────────────────────────────────
|
||||
DEV_MODE=false
|
||||
|
|
|
|||
|
|
@ -49,12 +49,46 @@ services:
|
|||
# Admin bootstrap
|
||||
ADMIN_EMAIL: ${ADMIN_EMAIL:-daveporter@oliver.agency}
|
||||
|
||||
# AI providers
|
||||
GEMINI_API_KEY: ${GEMINI_API_KEY}
|
||||
# OpenAI
|
||||
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
|
||||
OPENAI_MODEL: ${OPENAI_MODEL:-gpt-4.1}
|
||||
OPENAI_REASONING_EFFORT: ${OPENAI_REASONING_EFFORT:-medium}
|
||||
OPENAI_TIMEOUT: ${OPENAI_TIMEOUT:-3600}
|
||||
OPENAI_MAX_RETRIES: ${OPENAI_MAX_RETRIES:-2}
|
||||
|
||||
# Google Gemini
|
||||
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
|
||||
GOOGLE_MODEL: ${GOOGLE_MODEL:-gemini-2.0-flash-exp}
|
||||
GOOGLE_TEMPERATURE: ${GOOGLE_TEMPERATURE:-0.7}
|
||||
GOOGLE_MAX_OUTPUT_TOKENS: ${GOOGLE_MAX_OUTPUT_TOKENS:-100000}
|
||||
GOOGLE_THINKING_BUDGET: ${GOOGLE_THINKING_BUDGET:-12000}
|
||||
GOOGLE_TIMEOUT: ${GOOGLE_TIMEOUT:-3600}
|
||||
|
||||
# Anthropic
|
||||
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
|
||||
ANTHROPIC_MODEL_OPUS: ${ANTHROPIC_MODEL_OPUS:-claude-opus-4-5-20251101}
|
||||
ANTHROPIC_MODEL_SONNET: ${ANTHROPIC_MODEL_SONNET:-claude-sonnet-4-5-20250929}
|
||||
ANTHROPIC_TEMPERATURE: ${ANTHROPIC_TEMPERATURE:-1}
|
||||
ANTHROPIC_MAX_TOKENS: ${ANTHROPIC_MAX_TOKENS:-32000}
|
||||
ANTHROPIC_THINKING_BUDGET: ${ANTHROPIC_THINKING_BUDGET:-12000}
|
||||
ANTHROPIC_TIMEOUT: ${ANTHROPIC_TIMEOUT:-300}
|
||||
|
||||
# LlamaCloud
|
||||
LLAMA_CLOUD_API_KEY: ${LLAMA_CLOUD_API_KEY:-}
|
||||
|
||||
# Brief extraction
|
||||
DEFAULT_PRIMARY_MODELS: ${DEFAULT_PRIMARY_MODELS:-anthropic-sonnet45,google-gemini20}
|
||||
DEFAULT_CONSOLIDATION_MODEL: ${DEFAULT_CONSOLIDATION_MODEL:-anthropic-sonnet45}
|
||||
MINIMUM_SUCCESS_THRESHOLD: ${MINIMUM_SUCCESS_THRESHOLD:-1}
|
||||
ENABLE_COST_ESTIMATION: ${ENABLE_COST_ESTIMATION:-true}
|
||||
MAX_PROCESSING_COST_USD: ${MAX_PROCESSING_COST_USD:-10.00}
|
||||
MAX_CONCURRENT_JOBS: ${MAX_CONCURRENT_JOBS:-5}
|
||||
|
||||
# File upload
|
||||
MAX_UPLOAD_SIZE_MB: ${MAX_UPLOAD_SIZE_MB:-200}
|
||||
FILE_RETENTION_HOURS: ${FILE_RETENTION_HOURS:-24}
|
||||
WS_PING_INTERVAL_SECONDS: ${WS_PING_INTERVAL_SECONDS:-30}
|
||||
|
||||
# Paths
|
||||
DATA_DIR: /app/data
|
||||
UPLOADS_DIR: /app/data/uploads
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue