feat: add anthropic models
This commit is contained in:
@@ -392,6 +392,7 @@
|
||||
"DESCRIPTION": "Select AI models for different features.",
|
||||
"SELECT_MODEL": "Select model",
|
||||
"CREDITS_PER_MESSAGE": "{credits} credit/message",
|
||||
"COMING_SOON": "Coming Soon",
|
||||
"EDITOR": {
|
||||
"TITLE": "Editor Features",
|
||||
"DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
|
||||
|
||||
+9
-3
@@ -26,7 +26,7 @@ const emit = defineEmits(['change']);
|
||||
|
||||
const PROVIDER_ICONS = {
|
||||
openai: 'i-logos-openai-icon',
|
||||
anthropic: 'i-logos-claude-icon',
|
||||
anthropic: 'i-logos-anthropic-icon',
|
||||
mistral: 'i-logos-mistral-icon',
|
||||
gemini: 'i-logos-gemini-icon',
|
||||
};
|
||||
@@ -135,7 +135,10 @@ const selectModel = model => {
|
||||
:key="model.id"
|
||||
:click="() => selectModel(model)"
|
||||
class="rounded-lg hover:bg-n-alpha-1"
|
||||
:class="{ 'bg-n-alpha-2': selectedModelId === model.id }"
|
||||
:class="{
|
||||
'bg-n-alpha-2': selectedModelId === model.id,
|
||||
'pointer-events-none opacity-60': model.coming_soon,
|
||||
}"
|
||||
>
|
||||
<div class="flex gap-2 w-full">
|
||||
<Icon
|
||||
@@ -154,7 +157,10 @@ const selectModel = model => {
|
||||
{{ t('GENERAL.PREFERRED') }}
|
||||
</span>
|
||||
</div>
|
||||
<span class="text-xs text-n-slate-11">
|
||||
<span v-if="model.coming_soon" class="text-xs text-n-slate-11">
|
||||
{{ t('CAPTAIN_SETTINGS.MODEL_CONFIG.COMING_SOON') }}
|
||||
</span>
|
||||
<span v-else class="text-xs text-n-slate-11">
|
||||
{{ getCreditLabel(model) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,16 @@ const getters = {
|
||||
getUIFlags: $state => $state.uiFlags,
|
||||
getModelsForFeature: $state => featureKey => {
|
||||
const feature = $state.features[featureKey];
|
||||
return feature?.models || [];
|
||||
const models = feature?.models || [];
|
||||
|
||||
return [...models].sort((a, b) => {
|
||||
// Move coming_soon items to the end
|
||||
if (a.coming_soon && !b.coming_soon) return 1;
|
||||
if (!a.coming_soon && b.coming_soon) return -1;
|
||||
|
||||
// Sort by credit_multiplier (highest first)
|
||||
return (b.credit_multiplier || 0) - (a.credit_multiplier || 0);
|
||||
});
|
||||
},
|
||||
getDefaultModelForFeature: $state => featureKey => {
|
||||
const feature = $state.features[featureKey];
|
||||
|
||||
+44
-4
@@ -2,6 +2,9 @@ providers:
|
||||
openai:
|
||||
display_name: 'OpenAI'
|
||||
logo: openai.png
|
||||
anthropic:
|
||||
display_name: 'Anthropic'
|
||||
logo: anthropic.png
|
||||
|
||||
models:
|
||||
gpt-4.1:
|
||||
@@ -23,7 +26,7 @@ models:
|
||||
gpt-5.1:
|
||||
provider: openai
|
||||
display_name: 'GPT-5.1'
|
||||
credit_multiplier: 1
|
||||
credit_multiplier: 1.2
|
||||
gpt-5-mini:
|
||||
provider: openai
|
||||
display_name: 'GPT-5 Mini'
|
||||
@@ -35,7 +38,17 @@ models:
|
||||
gpt-5.2:
|
||||
provider: openai
|
||||
display_name: 'GPT-5.2'
|
||||
credit_multiplier: 1.5
|
||||
claude-haiku-4.5:
|
||||
provider: anthropic
|
||||
display_name: 'Claude Haiku 4.5'
|
||||
coming_soon: true
|
||||
credit_multiplier: 1
|
||||
claude-sonnet-4:
|
||||
provider: anthropic
|
||||
display_name: 'Claude Sonnet 4'
|
||||
coming_soon: true
|
||||
credit_multiplier: 2
|
||||
whisper-1:
|
||||
provider: openai
|
||||
display_name: 'Whisper'
|
||||
@@ -48,13 +61,40 @@ models:
|
||||
features:
|
||||
editor:
|
||||
models:
|
||||
[gpt-4.1-mini, gpt-4.1-nano, gpt-5-mini, gpt-4.1, gpt-5, gpt-5.1, gpt-5.2]
|
||||
[
|
||||
gpt-4.1-mini,
|
||||
gpt-4.1-nano,
|
||||
gpt-5-mini,
|
||||
gpt-4.1,
|
||||
gpt-5,
|
||||
gpt-5.1,
|
||||
gpt-5.2,
|
||||
claude-haiku-4.5,
|
||||
]
|
||||
default: gpt-4.1-mini
|
||||
assistant:
|
||||
models: [gpt-5-mini, gpt-4.1, gpt-5, gpt-5.1, gpt-5.2]
|
||||
models:
|
||||
[
|
||||
gpt-5-mini,
|
||||
gpt-4.1,
|
||||
gpt-5,
|
||||
gpt-5.1,
|
||||
gpt-5.2,
|
||||
claude-haiku-4.5,
|
||||
claude-sonnet-4,
|
||||
]
|
||||
default: gpt-5.2
|
||||
copilot:
|
||||
models: [gpt-5-mini, gpt-4.1, gpt-5, gpt-5.1, gpt-5.2]
|
||||
models:
|
||||
[
|
||||
gpt-5-mini,
|
||||
gpt-4.1,
|
||||
gpt-5,
|
||||
gpt-5.1,
|
||||
gpt-5.2,
|
||||
claude-haiku-4.5,
|
||||
claude-sonnet-4,
|
||||
]
|
||||
default: gpt-5.2
|
||||
label_suggestion:
|
||||
models: [gpt-4.1-nano, gpt-4.1-mini, gpt-5-mini]
|
||||
|
||||
@@ -56,6 +56,7 @@ module Llm::ConfigService
|
||||
id: model_name,
|
||||
display_name: model['display_name'],
|
||||
provider: model['provider'],
|
||||
coming_soon: model['coming_soon'],
|
||||
credit_multiplier: model['credit_multiplier']
|
||||
}
|
||||
end,
|
||||
|
||||
Reference in New Issue
Block a user