Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 42 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -185,16 +185,55 @@ ANTHROPIC_API_KEY=
GEMINI_API_KEY=
OPENROUTER_API_KEY=
ELEVENLABS_API_KEY=
# Only needed if you point one of the AI_*_PROVIDER vars below at these providers.
# XAI_API_KEY=
# GROQ_API_KEY=
# MISTRAL_API_KEY=
# DEEPSEEK_API_KEY=
# Ollama runs locally and needs no key — set the URL only if it isn't on the default port.
# OLLAMA_URL=http://localhost:11434
# Any OpenAI-compatible endpoint (LM Studio, vLLM, LocalAI, ...) via AI_TEXT_PROVIDER=openai-compatible.
# It has no built-in default model, so OPENAI_COMPATIBLE_TEXT_MODEL is required for that provider.
# OPENAI_COMPATIBLE_URL=
# OPENAI_COMPATIBLE_API_KEY=
# OPENAI_COMPATIBLE_TEXT_MODEL=

# AI Provider Selection
# text: openai | anthropic | gemini | openrouter | xai | groq | mistral | deepseek | ...
# image: openai | gemini | xai | openrouter
# audio: openai | elevenlabs
# text: openai | anthropic | gemini | openrouter | xai | groq | mistral | deepseek | ollama | ...
# image: openai | gemini | xai | openrouter | ...
# audio: openai | elevenlabs | gemini | openrouter | ...
# OpenRouter is a first-class laravel/ai provider (AI_TEXT_PROVIDER=openrouter + OPENROUTER_API_KEY).
AI_TEXT_PROVIDER=openai
AI_IMAGE_PROVIDER=openai
AI_AUDIO_PROVIDER=elevenlabs

# AI Model Overrides (optional)
# Each provider picks a sensible default model per capability on its own -
# these are NOT shared across capabilities, so overriding one (e.g. a text
# model) never affects another (e.g. that same provider's image model).
# Uncomment only the ones you want to override; every provider in play above
# (AI_TEXT_PROVIDER / AI_IMAGE_PROVIDER / AI_AUDIO_PROVIDER) reads its own set.
# The values below are laravel/ai's current defaults, shown as format examples -
# they move with the package, so don't treat them as a contract.
# OPENAI_TEXT_MODEL=gpt-5.4
# OPENAI_IMAGE_MODEL=gpt-image-2
# OPENAI_AUDIO_MODEL=gpt-4o-mini-tts
# ANTHROPIC_TEXT_MODEL=claude-sonnet-5
# GEMINI_TEXT_MODEL=gemini-3.6-flash
# GEMINI_IMAGE_MODEL=gemini-3.1-flash-image-preview
# GEMINI_AUDIO_MODEL=gemini-2.5-flash-preview-tts
# XAI_TEXT_MODEL=grok-4.20-non-reasoning
# XAI_IMAGE_MODEL=grok-imagine-image
# OPENROUTER_TEXT_MODEL=anthropic/claude-sonnet-4.6
# OPENROUTER_IMAGE_MODEL=google/gemini-3.1-flash-image-preview
# OPENROUTER_AUDIO_MODEL=google/gemini-3.1-flash-tts-preview
# ELEVENLABS_AUDIO_MODEL=eleven_multilingual_v2
# GROQ_TEXT_MODEL=openai/gpt-oss-120b
# MISTRAL_TEXT_MODEL=mistral-medium-latest
# DEEPSEEK_TEXT_MODEL=deepseek-v4-flash
# OLLAMA_TEXT_MODEL=llama3.1:8b
# Ollama has no image/audio-capable driver in laravel/ai - text only.

# ============================================
# Stripe (Cashier — billing)
# ============================================
Expand Down
45 changes: 42 additions & 3 deletions docker/.env.docker.example
Original file line number Diff line number Diff line change
Expand Up @@ -147,16 +147,55 @@ ANTHROPIC_API_KEY=
GEMINI_API_KEY=
OPENROUTER_API_KEY=
ELEVENLABS_API_KEY=
# Only needed if you point one of the AI_*_PROVIDER vars below at these providers.
# XAI_API_KEY=
# GROQ_API_KEY=
# MISTRAL_API_KEY=
# DEEPSEEK_API_KEY=
# Ollama runs locally and needs no key — from inside Docker point it at the host, not localhost.
# OLLAMA_URL=http://host.docker.internal:11434
# Any OpenAI-compatible endpoint (LM Studio, vLLM, LocalAI, ...) via AI_TEXT_PROVIDER=openai-compatible.
# It has no built-in default model, so OPENAI_COMPATIBLE_TEXT_MODEL is required for that provider.
# OPENAI_COMPATIBLE_URL=
# OPENAI_COMPATIBLE_API_KEY=
# OPENAI_COMPATIBLE_TEXT_MODEL=

# AI Provider Selection
# text: openai | anthropic | gemini | openrouter | xai | groq | mistral | deepseek | ...
# image: openai | gemini | xai | openrouter
# audio: openai | elevenlabs
# text: openai | anthropic | gemini | openrouter | xai | groq | mistral | deepseek | ollama | ...
# image: openai | gemini | xai | openrouter | ...
# audio: openai | elevenlabs | gemini | openrouter | ...
# OpenRouter is a first-class laravel/ai provider (AI_TEXT_PROVIDER=openrouter + OPENROUTER_API_KEY).
AI_TEXT_PROVIDER=openai
AI_IMAGE_PROVIDER=openai
AI_AUDIO_PROVIDER=elevenlabs

# AI Model Overrides (optional)
# Each provider picks a sensible default model per capability on its own -
# these are NOT shared across capabilities, so overriding one (e.g. a text
# model) never affects another (e.g. that same provider's image model).
# Uncomment only the ones you want to override; every provider in play above
# (AI_TEXT_PROVIDER / AI_IMAGE_PROVIDER / AI_AUDIO_PROVIDER) reads its own set.
# The values below are laravel/ai's current defaults, shown as format examples -
# they move with the package, so don't treat them as a contract.
# OPENAI_TEXT_MODEL=gpt-5.4
# OPENAI_IMAGE_MODEL=gpt-image-2
# OPENAI_AUDIO_MODEL=gpt-4o-mini-tts
# ANTHROPIC_TEXT_MODEL=claude-sonnet-5
# GEMINI_TEXT_MODEL=gemini-3.6-flash
# GEMINI_IMAGE_MODEL=gemini-3.1-flash-image-preview
# GEMINI_AUDIO_MODEL=gemini-2.5-flash-preview-tts
# XAI_TEXT_MODEL=grok-4.20-non-reasoning
# XAI_IMAGE_MODEL=grok-imagine-image
# OPENROUTER_TEXT_MODEL=anthropic/claude-sonnet-4.6
# OPENROUTER_IMAGE_MODEL=google/gemini-3.1-flash-image-preview
# OPENROUTER_AUDIO_MODEL=google/gemini-3.1-flash-tts-preview
# ELEVENLABS_AUDIO_MODEL=eleven_multilingual_v2
# GROQ_TEXT_MODEL=openai/gpt-oss-120b
# MISTRAL_TEXT_MODEL=mistral-medium-latest
# DEEPSEEK_TEXT_MODEL=deepseek-v4-flash
# OLLAMA_TEXT_MODEL=llama3.1:8b
# Ollama has no image/audio-capable driver in laravel/ai - text only.

# Telemetry — disabled by default in Docker dev.
NIGHTWATCH_ENABLED=false
NIGHTWATCH_TOKEN=
Expand Down