# Pull Request Template ## Description Adjusts the Captain LLM feature defaults after feature routing so the defaults stay intentional and avoid unintended high-cost model upgrades. Assistant, copilot, and onboarding content generation now default to `gpt-4.1`; audio transcription keeps `gpt-4o-mini-transcribe` as the default while exposing `whisper-1` as an available account override option. Related: https://linear.app/chatwoot/issue/CW-7425/test-new-models ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? - `ruby -ryaml -e 'yaml = YAML.load_file("config/llm.yml"); features = yaml.fetch("features"); models = yaml.fetch("models"); features.each { |name, cfg| missing = Array(cfg["models"]) - models.keys; raise "#{name}: missing #{missing.join(",")}" if missing.any?; raise "#{name}: default not in models" unless Array(cfg["models"]).include?(cfg["default"]) }'` - `node -e "JSON.parse(require('fs').readFileSync('app/javascript/dashboard/i18n/locale/en/settings.json', 'utf8'))"` - `pnpm exec prettier --check app/javascript/dashboard/i18n/locale/en/settings.json` - `bundle exec rspec spec/lib/llm/feature_router_spec.rb spec/enterprise/services/llm/base_ai_service_spec.rb spec/enterprise/models/concerns/agentable_spec.rb spec/enterprise/services/messages/audio_transcription_service_spec.rb spec/models/concerns/captain_featurable_spec.rb spec/models/account_spec.rb spec/controllers/api/v1/accounts/captain/preferences_controller_spec.rb spec/controllers/super_admin/accounts_controller_spec.rb` - `bundle exec rspec spec/enterprise/services/captain/llm/article_translation_service_spec.rb spec/enterprise/services/messages/audio_transcription_service_spec.rb spec/enterprise/services/llm/base_ai_service_spec.rb` - `RUBOCOP_CACHE_ROOT=/private/tmp/rubocop_cache bundle exec rubocop enterprise/app/services/captain/llm/article_translation_service.rb enterprise/app/services/messages/audio_transcription_service.rb spec/enterprise/services/captain/llm/article_translation_service_spec.rb spec/enterprise/services/llm/base_ai_service_spec.rb spec/enterprise/services/messages/audio_transcription_service_spec.rb` - `git diff --check` ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules
162 lines
3.5 KiB
YAML
162 lines
3.5 KiB
YAML
providers:
|
|
openai:
|
|
display_name: 'OpenAI'
|
|
anthropic:
|
|
display_name: 'Anthropic'
|
|
gemini:
|
|
display_name: 'Gemini'
|
|
|
|
models:
|
|
gpt-4.1:
|
|
provider: openai
|
|
display_name: 'GPT-4.1'
|
|
credit_multiplier: 3
|
|
gpt-4.1-mini:
|
|
provider: openai
|
|
display_name: 'GPT-4.1 Mini'
|
|
credit_multiplier: 1
|
|
gpt-4.1-nano:
|
|
provider: openai
|
|
display_name: 'GPT-4.1 Nano'
|
|
credit_multiplier: 1
|
|
gpt-5.1:
|
|
provider: openai
|
|
display_name: 'GPT-5.1'
|
|
credit_multiplier: 2
|
|
gpt-5-mini:
|
|
provider: openai
|
|
display_name: 'GPT-5 Mini'
|
|
credit_multiplier: 1
|
|
gpt-5-nano:
|
|
provider: openai
|
|
display_name: 'GPT-5 Nano'
|
|
credit_multiplier: 1
|
|
gpt-5.2:
|
|
provider: openai
|
|
display_name: 'GPT-5.2'
|
|
credit_multiplier: 3
|
|
claude-haiku-4.5:
|
|
provider: anthropic
|
|
display_name: 'Claude Haiku 4.5'
|
|
coming_soon: true
|
|
credit_multiplier: 2
|
|
claude-sonnet-4.5:
|
|
provider: anthropic
|
|
display_name: 'Claude Sonnet 4.5'
|
|
coming_soon: true
|
|
credit_multiplier: 3
|
|
gemini-3-flash:
|
|
provider: gemini
|
|
display_name: 'Gemini 3 Flash'
|
|
coming_soon: true
|
|
credit_multiplier: 1
|
|
gemini-3-pro:
|
|
provider: gemini
|
|
display_name: 'Gemini 3 Pro'
|
|
coming_soon: true
|
|
credit_multiplier: 3
|
|
whisper-1:
|
|
provider: openai
|
|
display_name: 'Whisper'
|
|
credit_multiplier: 1
|
|
gpt-4o-mini-transcribe:
|
|
provider: openai
|
|
display_name: 'GPT-4o Mini Transcribe'
|
|
credit_multiplier: 1
|
|
text-embedding-3-small:
|
|
provider: openai
|
|
display_name: 'Text Embedding 3 Small'
|
|
credit_multiplier: 1
|
|
|
|
features:
|
|
editor:
|
|
models:
|
|
[
|
|
gpt-4.1-mini,
|
|
gpt-4.1-nano,
|
|
gpt-5-mini,
|
|
gpt-4.1,
|
|
gpt-5.1,
|
|
gpt-5.2,
|
|
claude-haiku-4.5,
|
|
gemini-3-flash,
|
|
gemini-3-pro,
|
|
]
|
|
default: gpt-4.1-mini
|
|
assistant:
|
|
models:
|
|
[
|
|
gpt-4.1-mini,
|
|
gpt-5-mini,
|
|
gpt-4.1,
|
|
gpt-5.1,
|
|
gpt-5.2,
|
|
claude-haiku-4.5,
|
|
claude-sonnet-4.5,
|
|
gemini-3-flash,
|
|
gemini-3-pro,
|
|
]
|
|
default: gpt-4.1
|
|
copilot:
|
|
models:
|
|
[
|
|
gpt-4.1-mini,
|
|
gpt-5-mini,
|
|
gpt-4.1,
|
|
gpt-5.1,
|
|
gpt-5.2,
|
|
claude-haiku-4.5,
|
|
claude-sonnet-4.5,
|
|
gemini-3-flash,
|
|
gemini-3-pro,
|
|
]
|
|
default: gpt-4.1
|
|
label_suggestion:
|
|
models:
|
|
[gpt-4.1-nano, gpt-4.1-mini, gpt-5-mini, gemini-3-flash, claude-haiku-4.5]
|
|
default: gpt-4.1-mini
|
|
document_faq_generation:
|
|
models:
|
|
[
|
|
gpt-4.1-mini,
|
|
gpt-5-mini,
|
|
gpt-4.1,
|
|
gpt-5.1,
|
|
gpt-5.2,
|
|
claude-haiku-4.5,
|
|
claude-sonnet-4.5,
|
|
gemini-3-flash,
|
|
gemini-3-pro,
|
|
]
|
|
default: gpt-4.1-mini
|
|
pdf_faq_generation:
|
|
models: [gpt-4.1-mini, gpt-5-mini, gpt-4.1, gpt-5.1, gpt-5.2]
|
|
default: gpt-4.1-mini
|
|
help_center_article_generation:
|
|
models:
|
|
[
|
|
gpt-4.1-mini,
|
|
gpt-5-mini,
|
|
gpt-4.1,
|
|
gpt-5.1,
|
|
gpt-5.2,
|
|
claude-haiku-4.5,
|
|
claude-sonnet-4.5,
|
|
gemini-3-flash,
|
|
gemini-3-pro,
|
|
]
|
|
default: gpt-5.2
|
|
onboarding_content_generation:
|
|
models:
|
|
[gpt-4.1, gpt-4.1-mini, gpt-5-mini, gpt-5.1, gpt-5.2]
|
|
default: gpt-4.1
|
|
help_center_query_translation:
|
|
models: [gpt-4.1-nano, gpt-4.1-mini, gpt-5-mini]
|
|
default: gpt-4.1-nano
|
|
audio_transcription:
|
|
models: [gpt-4o-mini-transcribe, whisper-1]
|
|
default: gpt-4o-mini-transcribe
|
|
help_center_search:
|
|
models: [text-embedding-3-small]
|
|
default: text-embedding-3-small
|