mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-07 08:26:51 +00:00
Get providers from @roo-code/types (#55)
This commit is contained in:
parent
d5db42ddf3
commit
d920576ae8
19 changed files with 122 additions and 962 deletions
|
|
@ -46,7 +46,7 @@
|
|||
"@radix-ui/react-tabs": "^1.1.12",
|
||||
"@radix-ui/react-toast": "^1.2.14",
|
||||
"@radix-ui/react-tooltip": "^1.2.7",
|
||||
"@roo-code/types": "^1.22.0",
|
||||
"@roo-code/types": "^1.23.0",
|
||||
"@sentry/nextjs": "^9.23.0",
|
||||
"@t3-oss/env-nextjs": "^0.13.6",
|
||||
"@tailwindcss/postcss": "^4.1.8",
|
||||
|
|
|
|||
18
pnpm-lock.yaml
generated
18
pnpm-lock.yaml
generated
|
|
@ -66,8 +66,8 @@ importers:
|
|||
specifier: ^1.2.7
|
||||
version: 1.2.7(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
||||
'@roo-code/types':
|
||||
specifier: ^1.22.0
|
||||
version: 1.22.0
|
||||
specifier: ^1.23.0
|
||||
version: 1.23.0
|
||||
'@sentry/nextjs':
|
||||
specifier: ^9.23.0
|
||||
version: 9.23.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.3(@babel/core@7.27.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.52.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.9(@swc/core@1.11.29)(esbuild@0.25.5))
|
||||
|
|
@ -1845,8 +1845,8 @@ packages:
|
|||
bundledDependencies:
|
||||
- '@libsql/libsql-wasm-experimental'
|
||||
|
||||
'@libsql/core@0.15.7':
|
||||
resolution: {integrity: sha512-hW1++8iKAEnb7Y3EZ2zXRR+1K0MKdRT7SLaNgFkfwz6CmiIBY3sYN7VSftNS7IR6xKRvFBpoz10CC63NoFGkaQ==}
|
||||
'@libsql/core@0.15.8':
|
||||
resolution: {integrity: sha512-oX2fQqDbZkaBUvFMGvJq1Jh+mVzJrgNbEwK6Wzvp91z3uMe9iaIIXgO8yxB72RpUf7BqzjiKHjEiRXytfTdbUw==}
|
||||
|
||||
'@logtail/core@0.5.4':
|
||||
resolution: {integrity: sha512-UlbxvUg5MDroqk6gEhtfKuuBShrvD/VaXl3T3jGU1U6I19Y1OwfB7e681LvH7RbsCAnOJFziM/7rMQib/CJTdg==}
|
||||
|
|
@ -2917,8 +2917,8 @@ packages:
|
|||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@roo-code/types@1.22.0':
|
||||
resolution: {integrity: sha512-yTBVf/bp3vMBLIBL+wWMWg4NFjYyEv8SygnjZMN5StEFxVojDOASS4MRWHM821UaJrnGSB/tpf0UJoRf7o41fA==}
|
||||
'@roo-code/types@1.23.0':
|
||||
resolution: {integrity: sha512-CFZ2UFlrNdHymUKrqB7iu7U6X6WwoDncvkrAidMcMzQU175o/GkLLgetIIVFVuYXyvRu01xUkReU0r9esQJVeg==}
|
||||
|
||||
'@schummar/icu-type-parser@1.21.5':
|
||||
resolution: {integrity: sha512-bXHSaW5jRTmke9Vd0h5P7BtWZG9Znqb8gSDxZnxaGSJnGwPLDPfS+3g0BKzeWqzgZPsIVZkM7m2tbo18cm5HBw==}
|
||||
|
|
@ -10563,11 +10563,11 @@ snapshots:
|
|||
|
||||
'@libsql/client-wasm@0.15.5':
|
||||
dependencies:
|
||||
'@libsql/core': 0.15.7
|
||||
'@libsql/core': 0.15.8
|
||||
js-base64: 3.7.7
|
||||
optional: true
|
||||
|
||||
'@libsql/core@0.15.7':
|
||||
'@libsql/core@0.15.8':
|
||||
dependencies:
|
||||
js-base64: 3.7.7
|
||||
optional: true
|
||||
|
|
@ -11656,7 +11656,7 @@ snapshots:
|
|||
'@rollup/rollup-win32-x64-msvc@4.41.1':
|
||||
optional: true
|
||||
|
||||
'@roo-code/types@1.22.0': {}
|
||||
'@roo-code/types@1.23.0': {}
|
||||
|
||||
'@schummar/icu-type-parser@1.21.5': {}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ import type { ProviderName } from '@roo-code/types';
|
|||
import { type OrganizationSettings, ORGANIZATION_ALLOW_ALL } from '@/types';
|
||||
import { providers } from '@/lib/providers';
|
||||
import { updateOrganization } from '@/actions/organizationSettings';
|
||||
import { Badge, Button, Checkbox, Label } from '@/components/ui';
|
||||
import { cn } from '@/lib/utils';
|
||||
import { Switch, Button, Checkbox, Label } from '@/components/ui';
|
||||
import { MultipleSelector } from '@/components/ui/ecosystem';
|
||||
import { Loading } from '@/components/layout';
|
||||
|
||||
|
|
@ -20,21 +21,17 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
|
||||
const fullProviderMetadata = useMemo(
|
||||
() =>
|
||||
providers.map((provider) => {
|
||||
const models = orgSettings.allowList.providers[provider.id]?.models;
|
||||
Object.entries(providers).map(([id, provider]) => {
|
||||
const models =
|
||||
orgSettings.allowList.providers[id as ProviderName]?.models;
|
||||
|
||||
if (models) {
|
||||
const providerModels = new Set(provider.models);
|
||||
|
||||
const difference = models.filter(
|
||||
(model) => !providerModels.has(model),
|
||||
);
|
||||
const providerModels = Object.keys(provider.models || {});
|
||||
const set = new Set(providerModels);
|
||||
const difference = models.filter((model) => !set.has(model));
|
||||
|
||||
if (difference.length > 0) {
|
||||
return {
|
||||
...provider,
|
||||
models: [...provider.models, ...difference],
|
||||
};
|
||||
return { ...provider, models: [...providerModels, ...difference] };
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +57,12 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
|
||||
const [providerModels, setProviderModels] = useState(
|
||||
fullProviderMetadata.reduce((acc, meta) => {
|
||||
acc.set(meta.id, orgSettings.allowList.providers[meta.id]?.models || []);
|
||||
const models = Object.keys(
|
||||
orgSettings.allowList.providers[meta.id]?.models || {},
|
||||
);
|
||||
|
||||
acc.set(meta.id, models);
|
||||
|
||||
return acc;
|
||||
}, new Map<ProviderName, string[]>()),
|
||||
);
|
||||
|
|
@ -71,12 +73,6 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
const isProviderAllowAll = (providerId: ProviderName) =>
|
||||
providerAllowAll.has(providerId);
|
||||
|
||||
const toggleAllowAll = () => {
|
||||
setAllowAll(!allowAll);
|
||||
|
||||
setHasChanges(true);
|
||||
};
|
||||
|
||||
const toggleProvider = (providerId: ProviderName) => {
|
||||
const newProviderAllowAll = new Set(providerAllowAll);
|
||||
|
||||
|
|
@ -133,35 +129,37 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
const result = await updateOrganization({ allowList: allowList });
|
||||
|
||||
if (!result.success) {
|
||||
throw new Error(result.error || 'Failed to update settings');
|
||||
throw new Error(result.error || 'Failed to update settings.');
|
||||
}
|
||||
|
||||
queryClient.invalidateQueries({ queryKey: ['organizationSettings'] });
|
||||
|
||||
toast.success('Provider settings saved successfully');
|
||||
toast.success('Changes will be deployed within 30 seconds.');
|
||||
setHasChanges(false);
|
||||
} catch (error) {
|
||||
console.error('Failed to save provider settings', error);
|
||||
toast.error('Failed to save provider settings');
|
||||
console.error('Failed to save provider settings.', error);
|
||||
toast.error('Failed to save provider settings.');
|
||||
} finally {
|
||||
setIsSaving(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="mb-[80px]">
|
||||
<div className="mb-4 flex items-center space-x-2">
|
||||
<Checkbox
|
||||
id="allow-all-providers"
|
||||
checked={allowAll}
|
||||
onCheckedChange={toggleAllowAll}
|
||||
disabled={isSaving}
|
||||
/>
|
||||
<Label htmlFor="allow-all-providers" className="text-sm font-medium">
|
||||
Allow All Providers
|
||||
<Label className="text-sm font-medium">
|
||||
Restrict Providers
|
||||
<Switch
|
||||
checked={!allowAll}
|
||||
onCheckedChange={() => {
|
||||
setAllowAll(!allowAll);
|
||||
setHasChanges(true);
|
||||
}}
|
||||
disabled={isSaving}
|
||||
/>
|
||||
</Label>
|
||||
</div>
|
||||
<div className={allowAll ? 'opacity-50' : ''}>
|
||||
|
||||
<div className={cn({ hidden: allowAll })}>
|
||||
{fullProviderMetadata.map((provider) => (
|
||||
<div key={provider.id} className="mb-4">
|
||||
<div className="mb-2 flex items-center justify-between">
|
||||
|
|
@ -180,11 +178,13 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
</div>
|
||||
<div className="max-w-full">
|
||||
<MultipleSelector
|
||||
defaultOptions={provider.models.map((model) => ({
|
||||
label: model,
|
||||
value: model,
|
||||
disable: providerModels.get(provider.id)?.includes(model),
|
||||
}))}
|
||||
defaultOptions={Object.keys(provider.models || {}).map(
|
||||
(model) => ({
|
||||
label: model,
|
||||
value: model,
|
||||
disable: providerModels.get(provider.id)?.includes(model),
|
||||
}),
|
||||
)}
|
||||
value={(providerModels.get(provider.id) || []).map((model) => ({
|
||||
label: model,
|
||||
value: model,
|
||||
|
|
@ -203,25 +203,18 @@ export const ProviderForm = ({ orgSettings }: ProviderFormProps) => {
|
|||
</div>
|
||||
))}
|
||||
</div>
|
||||
<div className="flex items-center space-x-2 pt-2">
|
||||
<Badge variant="outline" className="text-xs">
|
||||
{`Policy v${orgSettings?.version || 1}`}
|
||||
</Badge>
|
||||
<span className="text-xs text-muted-foreground">
|
||||
{isSaving
|
||||
? 'Updating provider whitelist...'
|
||||
: hasChanges
|
||||
? 'You have unsaved changes'
|
||||
: 'Changes will be pushed to SSE stream within 30 seconds'}
|
||||
</span>
|
||||
</div>
|
||||
<Button
|
||||
onClick={saveChanges}
|
||||
disabled={!hasChanges || isSaving}
|
||||
className="mt-4"
|
||||
|
||||
<div
|
||||
className={cn('fixed bottom-0 left-0 right-0', {
|
||||
hidden: !hasChanges && !isSaving,
|
||||
})}
|
||||
>
|
||||
{isSaving ? <Loading /> : 'Save Changes'}
|
||||
</Button>
|
||||
</>
|
||||
<div className="flex items-center justify-end h-[80px] bg-card border-t px-6">
|
||||
<Button onClick={saveChanges} disabled={!hasChanges || isSaving}>
|
||||
{isSaving ? <Loading /> : 'Save Changes'}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,7 +4,14 @@ import { useTranslations } from 'next-intl';
|
|||
import { useQuery } from '@tanstack/react-query';
|
||||
|
||||
import { getOrganizationSettings } from '@/actions/organizationSettings';
|
||||
import { Card, CardHeader, CardTitle, CardDescription } from '@/components/ui';
|
||||
import {
|
||||
Card,
|
||||
CardHeader,
|
||||
CardTitle,
|
||||
CardDescription,
|
||||
CardContent,
|
||||
Badge,
|
||||
} from '@/components/ui';
|
||||
import { Loading } from '@/components/layout';
|
||||
|
||||
import { ProviderForm } from './ProviderForm';
|
||||
|
|
@ -24,6 +31,11 @@ export const ProviderSettings = () => {
|
|||
<CardTitle>{t('title')}</CardTitle>
|
||||
<CardDescription>{t('description')}</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
<Badge variant="outline" className="text-xs">
|
||||
{`Policy v${orgSettings?.version || 1}`}
|
||||
</Badge>
|
||||
</CardContent>
|
||||
</Card>
|
||||
{orgSettings ? <ProviderForm orgSettings={orgSettings} /> : <Loading />}
|
||||
</>
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
[
|
||||
"claude-3-7-sonnet-20250219:thinking",
|
||||
"claude-3-7-sonnet-20250219",
|
||||
"claude-3-5-sonnet-20241022",
|
||||
"claude-3-5-haiku-20241022",
|
||||
"claude-3-opus-20240229",
|
||||
"claude-3-haiku-20240307"
|
||||
]
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
[
|
||||
"amazon.nova-pro-v1:0",
|
||||
"amazon.nova-pro-latency-optimized-v1:0",
|
||||
"amazon.nova-lite-v1:0",
|
||||
"amazon.nova-micro-v1:0",
|
||||
"anthropic.claude-3-7-sonnet-20250219-v1:0",
|
||||
"anthropic.claude-3-5-sonnet-20241022-v2:0",
|
||||
"anthropic.claude-3-5-haiku-20241022-v1:0",
|
||||
"anthropic.claude-3-5-sonnet-20240620-v1:0",
|
||||
"anthropic.claude-3-opus-20240229-v1:0",
|
||||
"anthropic.claude-3-sonnet-20240229-v1:0",
|
||||
"anthropic.claude-3-haiku-20240307-v1:0",
|
||||
"anthropic.claude-2-1-v1:0",
|
||||
"anthropic.claude-2-0-v1:0",
|
||||
"anthropic.claude-instant-v1:0",
|
||||
"deepseek.r1-v1:0",
|
||||
"meta.llama3-3-70b-instruct-v1:0",
|
||||
"meta.llama3-2-90b-instruct-v1:0",
|
||||
"meta.llama3-2-11b-instruct-v1:0",
|
||||
"meta.llama3-2-3b-instruct-v1:0",
|
||||
"meta.llama3-2-1b-instruct-v1:0",
|
||||
"meta.llama3-1-405b-instruct-v1:0",
|
||||
"meta.llama3-1-70b-instruct-v1:0",
|
||||
"meta.llama3-1-70b-instruct-latency-optimized-v1:0",
|
||||
"meta.llama3-1-8b-instruct-v1:0",
|
||||
"meta.llama3-70b-instruct-v1:0",
|
||||
"meta.llama3-8b-instruct-v1:0",
|
||||
"amazon.titan-text-lite-v1:0",
|
||||
"amazon.titan-text-express-v1:0",
|
||||
"amazon.titan-text-embeddings-v1:0",
|
||||
"amazon.titan-text-embeddings-v2:0"
|
||||
]
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
[
|
||||
"deepseek-ai/DeepSeek-R1",
|
||||
"deepseek-ai/DeepSeek-V3",
|
||||
"unsloth/Llama-3.3-70B-Instruct",
|
||||
"chutesai/Llama-4-Scout-17B-16E-Instruct",
|
||||
"unsloth/Mistral-Nemo-Instruct-2407",
|
||||
"unsloth/gemma-3-12b-it",
|
||||
"NousResearch/DeepHermes-3-Llama-3-8B-Preview",
|
||||
"unsloth/gemma-3-4b-it",
|
||||
"nvidia/Llama-3_3-Nemotron-Super-49B-v1",
|
||||
"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1",
|
||||
"chutesai/Llama-4-Maverick-17B-128E-Instruct-FP8",
|
||||
"deepseek-ai/DeepSeek-V3-Base",
|
||||
"deepseek-ai/DeepSeek-R1-Zero",
|
||||
"deepseek-ai/DeepSeek-V3-0324",
|
||||
"Qwen/Qwen3-235B-A22B",
|
||||
"Qwen/Qwen3-32B",
|
||||
"Qwen/Qwen3-30B-A3B",
|
||||
"Qwen/Qwen3-14B",
|
||||
"Qwen/Qwen3-8B",
|
||||
"microsoft/MAI-DS-R1-FP8",
|
||||
"tngtech/DeepSeek-R1T-Chimera"
|
||||
]
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[
|
||||
"deepseek-chat",
|
||||
"deepseek-reasoner"
|
||||
]
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
[
|
||||
"gemini-2.5-flash-preview-04-17:thinking",
|
||||
"gemini-2.5-flash-preview-04-17",
|
||||
"gemini-2.5-flash-preview-05-20:thinking",
|
||||
"gemini-2.5-flash-preview-05-20",
|
||||
"gemini-2.5-pro-exp-03-25",
|
||||
"gemini-2.5-pro-preview-03-25",
|
||||
"gemini-2.5-pro-preview-05-06",
|
||||
"gemini-2.0-flash-001",
|
||||
"gemini-2.0-flash-lite-preview-02-05",
|
||||
"gemini-2.0-pro-exp-02-05",
|
||||
"gemini-2.0-flash-thinking-exp-01-21",
|
||||
"gemini-2.0-flash-thinking-exp-1219",
|
||||
"gemini-2.0-flash-exp",
|
||||
"gemini-1.5-flash-002",
|
||||
"gemini-1.5-flash-exp-0827",
|
||||
"gemini-1.5-flash-8b-exp-0827",
|
||||
"gemini-1.5-pro-002",
|
||||
"gemini-1.5-pro-exp-0827",
|
||||
"gemini-exp-1206"
|
||||
]
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
[
|
||||
"alibaba/qwen-plus",
|
||||
"alibaba/qwen-turbo",
|
||||
"anthropic/claude-3-5-haiku-20241022",
|
||||
"anthropic/claude-3-5-haiku",
|
||||
"anthropic/claude-3-5-sonnet-20240620",
|
||||
"anthropic/claude-3-5-sonnet-20241022",
|
||||
"anthropic/claude-3-5-sonnet",
|
||||
"anthropic/claude-3-7-sonnet-20250219",
|
||||
"anthropic/claude-3-7-sonnet",
|
||||
"anthropic/claude-3-opus-20240229",
|
||||
"anthropic/claude-3-opus",
|
||||
"avian/deepseek-r1",
|
||||
"avian/llama-3.1-405b-instruct",
|
||||
"avian/llama-3.1-70b-instruct",
|
||||
"avian/llama-3.1-8b-instruct",
|
||||
"avian/llama-3.3-70b-instruct",
|
||||
"cloudflare/deepseek-r1-distill-qwen-32b",
|
||||
"cohere/command-r-08-2024",
|
||||
"cohere/command-r-plus-08-2024",
|
||||
"cohere/command-r-plus",
|
||||
"cohere/command-r",
|
||||
"cohere/command-r7b-12-2024",
|
||||
"cohere/command-r7b",
|
||||
"deepinfra/qwq-32b-preview",
|
||||
"deepseek/deepseek-chat-v3",
|
||||
"deepseek/deepseek-chat",
|
||||
"deepseek/deepseek-r1",
|
||||
"fireworks/deepseek-chat-v3",
|
||||
"fireworks/deepseek-chat",
|
||||
"google-ai-studio/gemini-2.0-flash-001",
|
||||
"google-ai-studio/gemini-2.0-flash-lite-preview-02-05",
|
||||
"google-ai-studio/gemini-2.0-flash-lite",
|
||||
"google-ai-studio/gemini-2.0-flash",
|
||||
"google-ai-studio/gemini-2.5-flash-preview-04-17",
|
||||
"google-ai-studio/gemini-2.5-flash",
|
||||
"google-ai-studio/gemini-2.5-pro-exp-03-25",
|
||||
"google-ai-studio/gemini-2.5-pro-preview-05-06",
|
||||
"google-ai-studio/gemini-2.5-pro",
|
||||
"google-vertex/gemini-1.5-flash-001",
|
||||
"google-vertex/gemini-1.5-flash-002",
|
||||
"google-vertex/gemini-1.5-flash",
|
||||
"google-vertex/gemini-1.5-pro-001",
|
||||
"google-vertex/gemini-1.5-pro-002",
|
||||
"google-vertex/gemini-1.5-pro",
|
||||
"google-vertex/gemini-2.0-flash-001",
|
||||
"google-vertex/gemini-2.0-flash-lite-preview-02-05",
|
||||
"google-vertex/gemini-2.0-flash-lite",
|
||||
"google-vertex/gemini-2.0-flash-thinking-exp-01-21",
|
||||
"google-vertex/gemini-2.0-flash-thinking",
|
||||
"google-vertex/gemini-2.0-flash",
|
||||
"google-vertex/gemini-2.5-flash-preview-04-17",
|
||||
"google-vertex/gemini-2.5-flash",
|
||||
"google-vertex/gemini-2.5-pro-preview-05-06",
|
||||
"google-vertex/gemini-2.5-pro",
|
||||
"groq/deepseek-r1-distill-llama-70b",
|
||||
"mistral/ministral-3b-2410",
|
||||
"mistral/ministral-3b",
|
||||
"mistral/ministral-8b-2410",
|
||||
"mistral/ministral-8b",
|
||||
"mistral/mistral-large-2411",
|
||||
"mistral/mistral-large",
|
||||
"openai/gpt-4.1-2025-04-14",
|
||||
"openai/gpt-4.1-mini-2025-04-14",
|
||||
"openai/gpt-4.1-mini",
|
||||
"openai/gpt-4.1-nano-2025-04-14",
|
||||
"openai/gpt-4.1-nano",
|
||||
"openai/gpt-4.1",
|
||||
"openai/gpt-4.5-preview-2025-02-27",
|
||||
"openai/gpt-4.5",
|
||||
"openai/gpt-4o-2024-05-13",
|
||||
"openai/gpt-4o-2024-08-06",
|
||||
"openai/gpt-4o-2024-11-20",
|
||||
"openai/gpt-4o-mini-2024-07-18",
|
||||
"openai/gpt-4o-mini",
|
||||
"openai/gpt-4o",
|
||||
"openai/o1-2024-12-17",
|
||||
"openai/o1-mini-2024-09-12",
|
||||
"openai/o3-2025-04-16",
|
||||
"openai/o3-mini-2025-01-31",
|
||||
"openai/o3-mini-high",
|
||||
"openai/o3-mini",
|
||||
"openai/o3",
|
||||
"openai/o4-mini-2025-04-16",
|
||||
"openai/o4-mini",
|
||||
"perplexity/r1-1776",
|
||||
"perplexity/r1",
|
||||
"xai/grok-2-1212",
|
||||
"xai/grok-2",
|
||||
"xai/grok-3-beta",
|
||||
"xai/grok-3-fast-beta",
|
||||
"xai/grok-3-mini-beta",
|
||||
"xai/grok-3-mini-fast-beta",
|
||||
"xai/grok-beta",
|
||||
"xai/grok"
|
||||
]
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[
|
||||
"llama-3.1-8b-instant",
|
||||
"llama-3.3-70b-versatile",
|
||||
"meta-llama/llama-4-scout-17b-16e-instruct",
|
||||
"meta-llama/llama-4-maverick-17b-128e-instruct",
|
||||
"mistral-saba-24b",
|
||||
"qwen-qwq-32b",
|
||||
"deepseek-r1-distill-llama-70b"
|
||||
]
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[
|
||||
"codestral-latest",
|
||||
"mistral-large-latest",
|
||||
"ministral-8b-latest",
|
||||
"ministral-3b-latest",
|
||||
"mistral-small-latest",
|
||||
"pixtral-large-latest"
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
[
|
||||
"gpt-4.1",
|
||||
"gpt-4.1-mini",
|
||||
"gpt-4.1-nano",
|
||||
"o3",
|
||||
"o3-high",
|
||||
"o3-low",
|
||||
"o4-mini",
|
||||
"o4-mini-high",
|
||||
"o4-mini-low",
|
||||
"o3-mini",
|
||||
"o3-mini-high",
|
||||
"o3-mini-low",
|
||||
"o1",
|
||||
"o1-preview",
|
||||
"o1-mini",
|
||||
"gpt-4.5-preview",
|
||||
"gpt-4o",
|
||||
"gpt-4o-mini"
|
||||
]
|
||||
|
|
@ -1,321 +0,0 @@
|
|||
[
|
||||
"aetherwiing/mn-starcannon-12b",
|
||||
"agentica-org/deepcoder-14b-preview:free",
|
||||
"ai21/jamba-1.6-large",
|
||||
"ai21/jamba-1.6-mini",
|
||||
"ai21/jamba-instruct",
|
||||
"aion-labs/aion-1.0-mini",
|
||||
"aion-labs/aion-1.0",
|
||||
"aion-labs/aion-rp-llama-3.1-8b",
|
||||
"alfredpros/codellama-7b-instruct-solidity",
|
||||
"all-hands/openhands-lm-32b-v0.1",
|
||||
"allenai/olmo-7b-instruct",
|
||||
"alpindale/goliath-120b",
|
||||
"alpindale/magnum-72b",
|
||||
"amazon/nova-lite-v1",
|
||||
"amazon/nova-micro-v1",
|
||||
"amazon/nova-pro-v1",
|
||||
"anthracite-org/magnum-v2-72b",
|
||||
"anthracite-org/magnum-v4-72b",
|
||||
"anthropic/claude-2:beta",
|
||||
"anthropic/claude-2.0:beta",
|
||||
"anthropic/claude-2.0",
|
||||
"anthropic/claude-2.1:beta",
|
||||
"anthropic/claude-2.1",
|
||||
"anthropic/claude-2",
|
||||
"anthropic/claude-3-haiku:beta",
|
||||
"anthropic/claude-3-haiku",
|
||||
"anthropic/claude-3-opus:beta",
|
||||
"anthropic/claude-3-opus",
|
||||
"anthropic/claude-3-sonnet:beta",
|
||||
"anthropic/claude-3-sonnet",
|
||||
"anthropic/claude-3.5-haiku-20241022:beta",
|
||||
"anthropic/claude-3.5-haiku-20241022",
|
||||
"anthropic/claude-3.5-haiku:beta",
|
||||
"anthropic/claude-3.5-haiku",
|
||||
"anthropic/claude-3.5-sonnet-20240620:beta",
|
||||
"anthropic/claude-3.5-sonnet-20240620",
|
||||
"anthropic/claude-3.5-sonnet:beta",
|
||||
"anthropic/claude-3.5-sonnet",
|
||||
"anthropic/claude-3.7-sonnet:beta",
|
||||
"anthropic/claude-3.7-sonnet:thinking",
|
||||
"anthropic/claude-3.7-sonnet",
|
||||
"arcee-ai/arcee-blitz",
|
||||
"arcee-ai/caller-large",
|
||||
"arcee-ai/coder-large",
|
||||
"arcee-ai/maestro-reasoning",
|
||||
"arcee-ai/spotlight",
|
||||
"arcee-ai/virtuoso-large",
|
||||
"arcee-ai/virtuoso-medium-v2",
|
||||
"arliai/qwq-32b-arliai-rpr-v1:free",
|
||||
"cognitivecomputations/dolphin-mixtral-8x22b",
|
||||
"cognitivecomputations/dolphin3.0-mistral-24b:free",
|
||||
"cognitivecomputations/dolphin3.0-r1-mistral-24b:free",
|
||||
"cohere/command-a",
|
||||
"cohere/command-r-03-2024",
|
||||
"cohere/command-r-08-2024",
|
||||
"cohere/command-r-plus-04-2024",
|
||||
"cohere/command-r-plus-08-2024",
|
||||
"cohere/command-r-plus",
|
||||
"cohere/command-r",
|
||||
"cohere/command-r7b-12-2024",
|
||||
"cohere/command",
|
||||
"deepseek/deepseek-chat-v3-0324:free",
|
||||
"deepseek/deepseek-chat-v3-0324",
|
||||
"deepseek/deepseek-chat:free",
|
||||
"deepseek/deepseek-chat",
|
||||
"deepseek/deepseek-coder",
|
||||
"deepseek/deepseek-prover-v2:free",
|
||||
"deepseek/deepseek-prover-v2",
|
||||
"deepseek/deepseek-r1-distill-llama-70b:free",
|
||||
"deepseek/deepseek-r1-distill-llama-70b",
|
||||
"deepseek/deepseek-r1-distill-llama-8b",
|
||||
"deepseek/deepseek-r1-distill-qwen-1.5b",
|
||||
"deepseek/deepseek-r1-distill-qwen-14b:free",
|
||||
"deepseek/deepseek-r1-distill-qwen-14b",
|
||||
"deepseek/deepseek-r1-distill-qwen-32b:free",
|
||||
"deepseek/deepseek-r1-distill-qwen-32b",
|
||||
"deepseek/deepseek-r1-zero:free",
|
||||
"deepseek/deepseek-r1:free",
|
||||
"deepseek/deepseek-r1",
|
||||
"deepseek/deepseek-v3-base:free",
|
||||
"eleutherai/llemma_7b",
|
||||
"eva-unit-01/eva-llama-3.33-70b",
|
||||
"eva-unit-01/eva-qwen-2.5-32b",
|
||||
"eva-unit-01/eva-qwen-2.5-72b",
|
||||
"featherless/qwerky-72b:free",
|
||||
"google/gemini-2.0-flash-001",
|
||||
"google/gemini-2.0-flash-exp:free",
|
||||
"google/gemini-2.0-flash-lite-001",
|
||||
"google/gemini-2.5-flash-preview-05-20:thinking",
|
||||
"google/gemini-2.5-flash-preview-05-20",
|
||||
"google/gemini-2.5-flash-preview:thinking",
|
||||
"google/gemini-2.5-flash-preview",
|
||||
"google/gemini-2.5-pro-exp-03-25",
|
||||
"google/gemini-2.5-pro-preview",
|
||||
"google/gemini-flash-1.5-8b",
|
||||
"google/gemini-flash-1.5",
|
||||
"google/gemini-pro-1.5",
|
||||
"google/gemma-2-27b-it",
|
||||
"google/gemma-2-9b-it:free",
|
||||
"google/gemma-2-9b-it",
|
||||
"google/gemma-3-12b-it:free",
|
||||
"google/gemma-3-12b-it",
|
||||
"google/gemma-3-1b-it:free",
|
||||
"google/gemma-3-27b-it:free",
|
||||
"google/gemma-3-27b-it",
|
||||
"google/gemma-3-4b-it:free",
|
||||
"google/gemma-3-4b-it",
|
||||
"gryphe/mythomax-l2-13b",
|
||||
"inception/mercury-coder-small-beta",
|
||||
"infermatic/mn-inferor-12b",
|
||||
"inflection/inflection-3-pi",
|
||||
"inflection/inflection-3-productivity",
|
||||
"jondurbin/airoboros-l2-70b",
|
||||
"liquid/lfm-3b",
|
||||
"liquid/lfm-40b",
|
||||
"liquid/lfm-7b",
|
||||
"mancer/weaver",
|
||||
"meta-llama/llama-2-70b-chat",
|
||||
"meta-llama/llama-3-70b-instruct",
|
||||
"meta-llama/llama-3-8b-instruct",
|
||||
"meta-llama/llama-3.1-405b-instruct",
|
||||
"meta-llama/llama-3.1-405b:free",
|
||||
"meta-llama/llama-3.1-405b",
|
||||
"meta-llama/llama-3.1-70b-instruct",
|
||||
"meta-llama/llama-3.1-8b-instruct:free",
|
||||
"meta-llama/llama-3.1-8b-instruct",
|
||||
"meta-llama/llama-3.2-11b-vision-instruct:free",
|
||||
"meta-llama/llama-3.2-11b-vision-instruct",
|
||||
"meta-llama/llama-3.2-1b-instruct:free",
|
||||
"meta-llama/llama-3.2-1b-instruct",
|
||||
"meta-llama/llama-3.2-3b-instruct:free",
|
||||
"meta-llama/llama-3.2-3b-instruct",
|
||||
"meta-llama/llama-3.2-90b-vision-instruct",
|
||||
"meta-llama/llama-3.3-70b-instruct:free",
|
||||
"meta-llama/llama-3.3-70b-instruct",
|
||||
"meta-llama/llama-3.3-8b-instruct:free",
|
||||
"meta-llama/llama-4-maverick:free",
|
||||
"meta-llama/llama-4-maverick",
|
||||
"meta-llama/llama-4-scout:free",
|
||||
"meta-llama/llama-4-scout",
|
||||
"meta-llama/llama-guard-2-8b",
|
||||
"meta-llama/llama-guard-3-8b",
|
||||
"meta-llama/llama-guard-4-12b",
|
||||
"microsoft/mai-ds-r1:free",
|
||||
"microsoft/phi-3-medium-128k-instruct",
|
||||
"microsoft/phi-3-mini-128k-instruct",
|
||||
"microsoft/phi-3.5-mini-128k-instruct",
|
||||
"microsoft/phi-4-multimodal-instruct",
|
||||
"microsoft/phi-4-reasoning-plus:free",
|
||||
"microsoft/phi-4-reasoning-plus",
|
||||
"microsoft/phi-4-reasoning:free",
|
||||
"microsoft/phi-4",
|
||||
"microsoft/wizardlm-2-8x22b",
|
||||
"minimax/minimax-01",
|
||||
"mistralai/codestral-2501",
|
||||
"mistralai/codestral-mamba",
|
||||
"mistralai/ministral-3b",
|
||||
"mistralai/ministral-8b",
|
||||
"mistralai/mistral-7b-instruct-v0.1",
|
||||
"mistralai/mistral-7b-instruct-v0.2",
|
||||
"mistralai/mistral-7b-instruct-v0.3",
|
||||
"mistralai/mistral-7b-instruct:free",
|
||||
"mistralai/mistral-7b-instruct",
|
||||
"mistralai/mistral-large-2407",
|
||||
"mistralai/mistral-large-2411",
|
||||
"mistralai/mistral-large",
|
||||
"mistralai/mistral-medium-3",
|
||||
"mistralai/mistral-medium",
|
||||
"mistralai/mistral-nemo:free",
|
||||
"mistralai/mistral-nemo",
|
||||
"mistralai/mistral-saba",
|
||||
"mistralai/mistral-small-24b-instruct-2501:free",
|
||||
"mistralai/mistral-small-24b-instruct-2501",
|
||||
"mistralai/mistral-small-3.1-24b-instruct:free",
|
||||
"mistralai/mistral-small-3.1-24b-instruct",
|
||||
"mistralai/mistral-small",
|
||||
"mistralai/mistral-tiny",
|
||||
"mistralai/mixtral-8x22b-instruct",
|
||||
"mistralai/mixtral-8x7b-instruct",
|
||||
"mistralai/pixtral-12b",
|
||||
"mistralai/pixtral-large-2411",
|
||||
"moonshotai/kimi-vl-a3b-thinking:free",
|
||||
"moonshotai/moonlight-16b-a3b-instruct:free",
|
||||
"neversleep/llama-3-lumimaid-70b",
|
||||
"neversleep/llama-3-lumimaid-8b:extended",
|
||||
"neversleep/llama-3-lumimaid-8b",
|
||||
"neversleep/llama-3.1-lumimaid-70b",
|
||||
"neversleep/llama-3.1-lumimaid-8b",
|
||||
"neversleep/noromaid-20b",
|
||||
"nothingiisreal/mn-celeste-12b",
|
||||
"nousresearch/deephermes-3-llama-3-8b-preview:free",
|
||||
"nousresearch/deephermes-3-mistral-24b-preview:free",
|
||||
"nousresearch/hermes-2-pro-llama-3-8b",
|
||||
"nousresearch/hermes-3-llama-3.1-405b",
|
||||
"nousresearch/hermes-3-llama-3.1-70b",
|
||||
"nousresearch/nous-hermes-2-mixtral-8x7b-dpo",
|
||||
"nvidia/llama-3.1-nemotron-70b-instruct",
|
||||
"nvidia/llama-3.1-nemotron-ultra-253b-v1:free",
|
||||
"nvidia/llama-3.3-nemotron-super-49b-v1:free",
|
||||
"nvidia/llama-3.3-nemotron-super-49b-v1",
|
||||
"open-r1/olympiccoder-32b:free",
|
||||
"openai/chatgpt-4o-latest",
|
||||
"openai/codex-mini",
|
||||
"openai/gpt-3.5-turbo-0125",
|
||||
"openai/gpt-3.5-turbo-0613",
|
||||
"openai/gpt-3.5-turbo-1106",
|
||||
"openai/gpt-3.5-turbo-16k",
|
||||
"openai/gpt-3.5-turbo-instruct",
|
||||
"openai/gpt-3.5-turbo",
|
||||
"openai/gpt-4-0314",
|
||||
"openai/gpt-4-1106-preview",
|
||||
"openai/gpt-4-32k-0314",
|
||||
"openai/gpt-4-32k",
|
||||
"openai/gpt-4-turbo-preview",
|
||||
"openai/gpt-4-turbo",
|
||||
"openai/gpt-4.1-mini",
|
||||
"openai/gpt-4.1-nano",
|
||||
"openai/gpt-4.1",
|
||||
"openai/gpt-4.5-preview",
|
||||
"openai/gpt-4",
|
||||
"openai/gpt-4o-2024-05-13",
|
||||
"openai/gpt-4o-2024-08-06",
|
||||
"openai/gpt-4o-2024-11-20",
|
||||
"openai/gpt-4o-mini-2024-07-18",
|
||||
"openai/gpt-4o-mini-search-preview",
|
||||
"openai/gpt-4o-mini",
|
||||
"openai/gpt-4o-search-preview",
|
||||
"openai/gpt-4o:extended",
|
||||
"openai/gpt-4o",
|
||||
"openai/o1-mini-2024-09-12",
|
||||
"openai/o1-mini",
|
||||
"openai/o1-preview-2024-09-12",
|
||||
"openai/o1-preview",
|
||||
"openai/o1-pro",
|
||||
"openai/o1",
|
||||
"openai/o3-mini-high",
|
||||
"openai/o3-mini",
|
||||
"openai/o3",
|
||||
"openai/o4-mini-high",
|
||||
"openai/o4-mini",
|
||||
"opengvlab/internvl3-14b:free",
|
||||
"opengvlab/internvl3-2b:free",
|
||||
"openrouter/auto",
|
||||
"perplexity/llama-3.1-sonar-large-128k-online",
|
||||
"perplexity/llama-3.1-sonar-small-128k-online",
|
||||
"perplexity/r1-1776",
|
||||
"perplexity/sonar-deep-research",
|
||||
"perplexity/sonar-pro",
|
||||
"perplexity/sonar-reasoning-pro",
|
||||
"perplexity/sonar-reasoning",
|
||||
"perplexity/sonar",
|
||||
"pygmalionai/mythalion-13b",
|
||||
"qwen/qwen-2-72b-instruct",
|
||||
"qwen/qwen-2.5-72b-instruct:free",
|
||||
"qwen/qwen-2.5-72b-instruct",
|
||||
"qwen/qwen-2.5-7b-instruct:free",
|
||||
"qwen/qwen-2.5-7b-instruct",
|
||||
"qwen/qwen-2.5-coder-32b-instruct:free",
|
||||
"qwen/qwen-2.5-coder-32b-instruct",
|
||||
"qwen/qwen-2.5-vl-7b-instruct:free",
|
||||
"qwen/qwen-2.5-vl-7b-instruct",
|
||||
"qwen/qwen-max",
|
||||
"qwen/qwen-plus",
|
||||
"qwen/qwen-turbo",
|
||||
"qwen/qwen-vl-max",
|
||||
"qwen/qwen-vl-plus",
|
||||
"qwen/qwen2.5-coder-7b-instruct",
|
||||
"qwen/qwen2.5-vl-32b-instruct:free",
|
||||
"qwen/qwen2.5-vl-32b-instruct",
|
||||
"qwen/qwen2.5-vl-3b-instruct:free",
|
||||
"qwen/qwen2.5-vl-72b-instruct:free",
|
||||
"qwen/qwen2.5-vl-72b-instruct",
|
||||
"qwen/qwen3-0.6b-04-28:free",
|
||||
"qwen/qwen3-1.7b:free",
|
||||
"qwen/qwen3-14b:free",
|
||||
"qwen/qwen3-14b",
|
||||
"qwen/qwen3-235b-a22b:free",
|
||||
"qwen/qwen3-235b-a22b",
|
||||
"qwen/qwen3-30b-a3b:free",
|
||||
"qwen/qwen3-30b-a3b",
|
||||
"qwen/qwen3-32b:free",
|
||||
"qwen/qwen3-32b",
|
||||
"qwen/qwen3-4b:free",
|
||||
"qwen/qwen3-8b:free",
|
||||
"qwen/qwen3-8b",
|
||||
"qwen/qwq-32b-preview",
|
||||
"qwen/qwq-32b:free",
|
||||
"qwen/qwq-32b",
|
||||
"raifle/sorcererlm-8x22b",
|
||||
"rekaai/reka-flash-3:free",
|
||||
"sao10k/fimbulvetr-11b-v2",
|
||||
"sao10k/l3-euryale-70b",
|
||||
"sao10k/l3-lunaris-8b",
|
||||
"sao10k/l3.1-euryale-70b",
|
||||
"sao10k/l3.3-euryale-70b",
|
||||
"scb10x/llama3.1-typhoon2-70b-instruct",
|
||||
"scb10x/llama3.1-typhoon2-8b-instruct",
|
||||
"shisa-ai/shisa-v2-llama3.3-70b:free",
|
||||
"sophosympatheia/midnight-rose-70b",
|
||||
"thedrummer/anubis-pro-105b-v1",
|
||||
"thedrummer/rocinante-12b",
|
||||
"thedrummer/skyfall-36b-v2",
|
||||
"thedrummer/unslopnemo-12b",
|
||||
"thudm/glm-4-32b:free",
|
||||
"thudm/glm-4-32b",
|
||||
"thudm/glm-4-9b:free",
|
||||
"thudm/glm-z1-32b:free",
|
||||
"thudm/glm-z1-32b",
|
||||
"thudm/glm-z1-9b:free",
|
||||
"thudm/glm-z1-rumination-32b",
|
||||
"tngtech/deepseek-r1t-chimera:free",
|
||||
"undi95/remm-slerp-l2-13b",
|
||||
"undi95/toppy-m-7b",
|
||||
"x-ai/grok-2-1212",
|
||||
"x-ai/grok-2-vision-1212",
|
||||
"x-ai/grok-3-beta",
|
||||
"x-ai/grok-3-mini-beta",
|
||||
"x-ai/grok-beta",
|
||||
"x-ai/grok-vision-beta"
|
||||
]
|
||||
|
|
@ -1,230 +0,0 @@
|
|||
[
|
||||
"alibaba/qwen-plus",
|
||||
"alibaba/qwen-turbo",
|
||||
"anthropic/claude-3-5-haiku-20241022",
|
||||
"anthropic/claude-3-5-haiku-latest",
|
||||
"anthropic/claude-3-5-sonnet-20240620",
|
||||
"anthropic/claude-3-5-sonnet-20241022",
|
||||
"anthropic/claude-3-5-sonnet-latest",
|
||||
"anthropic/claude-3-7-sonnet-20250219",
|
||||
"anthropic/claude-3-7-sonnet-latest",
|
||||
"anthropic/claude-3-haiku-20240307",
|
||||
"anthropic/claude-3-opus-20240229",
|
||||
"anthropic/claude-3-opus-latest",
|
||||
"anthropic/claude-3-sonnet-20240229",
|
||||
"cline/claude-3-5-sonnet:alpha-v2",
|
||||
"cline/claude-3-5-sonnet:alpha",
|
||||
"cline/claude-3-5-sonnet",
|
||||
"cline/claude-3-7-sonnet:1024",
|
||||
"cline/claude-3-7-sonnet:16384",
|
||||
"cline/claude-3-7-sonnet:64000",
|
||||
"cline/claude-3-7-sonnet:8192",
|
||||
"cline/claude-3-7-sonnet:high",
|
||||
"cline/claude-3-7-sonnet:low",
|
||||
"cline/claude-3-7-sonnet:max",
|
||||
"cline/claude-3-7-sonnet:medium",
|
||||
"cline/claude-3-7-sonnet",
|
||||
"cline/deepseek-reasoner:alpha",
|
||||
"cline/o3-mini:high",
|
||||
"cline/o3-mini:low",
|
||||
"cline/o3-mini:medium",
|
||||
"cline/o3-mini",
|
||||
"coding/claude-3-7-sonnet",
|
||||
"coding/gemini-2.5-pro-preview-03-25",
|
||||
"coding/gemini-2.5-pro-preview-05-06",
|
||||
"deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
|
||||
"deepinfra/deepseek-ai/DeepSeek-R1",
|
||||
"deepinfra/deepseek-ai/DeepSeek-V3",
|
||||
"deepinfra/meta-llama/Llama-3.2-11B-Vision-Instruct",
|
||||
"deepinfra/meta-llama/Llama-3.2-90B-Vision-Instruct",
|
||||
"deepinfra/meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
||||
"deepinfra/meta-llama/Llama-3.3-70B-Instruct",
|
||||
"deepinfra/meta-llama/Meta-Llama-3.1-405B-Instruct",
|
||||
"deepinfra/meta-llama/Meta-Llama-3.1-70B-Instruct",
|
||||
"deepinfra/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
|
||||
"deepinfra/microsoft/phi-4",
|
||||
"deepinfra/microsoft/WizardLM-2-8x22B",
|
||||
"deepinfra/nvidia/Llama-3.1-Nemotron-70B-Instruct",
|
||||
"deepinfra/Qwen/Qwen2.5-72B-Instruct",
|
||||
"deepinfra/Qwen/Qwen2.5-Coder-32B-Instruct",
|
||||
"deepinfra/Qwen/Qwen3-235B-A22B",
|
||||
"deepinfra/Qwen/Qwen3-32B",
|
||||
"deepinfra/Qwen/QwQ-32B",
|
||||
"deepseek/deepseek-chat",
|
||||
"deepseek/deepseek-reasoner",
|
||||
"google/gemini-1.5-flash-8b-latest",
|
||||
"google/gemini-1.5-flash-8b",
|
||||
"google/gemini-1.5-flash-latest",
|
||||
"google/gemini-1.5-flash",
|
||||
"google/gemini-1.5-pro-latest",
|
||||
"google/gemini-1.5-pro",
|
||||
"google/gemini-2.0-flash-001",
|
||||
"google/gemini-2.0-flash-exp",
|
||||
"google/gemini-2.0-flash-thinking-exp-01-21",
|
||||
"google/gemini-2.0-pro-exp-02-05",
|
||||
"google/gemini-2.5-flash-preview-04-17",
|
||||
"google/gemini-2.5-pro-exp-03-25",
|
||||
"google/gemini-2.5-pro-preview-03-25",
|
||||
"google/gemini-2.5-pro-preview-05-06",
|
||||
"google/gemma-3-27b-it",
|
||||
"groq/qwen-qwq-32b",
|
||||
"minimaxi/DeepSeek-R1",
|
||||
"minimaxi/MiniMax-Text-01",
|
||||
"mistral/mistral-large-latest",
|
||||
"mistral/mistral-small-latest",
|
||||
"mistral/open-mistral-7b",
|
||||
"nebius/deepseek-ai/DeepSeek-R1-fast",
|
||||
"nebius/deepseek-ai/DeepSeek-R1",
|
||||
"nebius/deepseek-ai/DeepSeek-V3-0324-fast",
|
||||
"nebius/deepseek-ai/DeepSeek-V3-0324",
|
||||
"nebius/deepseek-ai/DeepSeek-V3",
|
||||
"nebius/meta-llama/Llama-3.3-70B-Instruct",
|
||||
"nebius/Qwen/QwQ-32B-fast",
|
||||
"nebius/Qwen/QwQ-32B",
|
||||
"novita/deepseek/deepseek_v3",
|
||||
"novita/deepseek/deepseek-prover-v2-671b",
|
||||
"novita/deepseek/deepseek-r1-distill-llama-70b",
|
||||
"novita/deepseek/deepseek-r1-distill-qwen-14b",
|
||||
"novita/deepseek/deepseek-r1-distill-qwen-32b",
|
||||
"novita/deepseek/deepseek-r1-turbo",
|
||||
"novita/deepseek/deepseek-r1",
|
||||
"novita/deepseek/deepseek-v3-0324",
|
||||
"novita/deepseek/deepseek-v3-turbo",
|
||||
"novita/google/gemma-2-9b-it",
|
||||
"novita/gryphe/mythomax-l2-13b",
|
||||
"novita/jondurbin/airoboros-l2-70b",
|
||||
"novita/meta-llama/llama-3-70b-instruct",
|
||||
"novita/meta-llama/llama-3-8b-instruct",
|
||||
"novita/meta-llama/llama-3.1-70b-instruct",
|
||||
"novita/meta-llama/llama-3.1-8b-instruct-bf16",
|
||||
"novita/meta-llama/llama-3.1-8b-instruct-max",
|
||||
"novita/meta-llama/llama-3.1-8b-instruct",
|
||||
"novita/meta-llama/llama-3.2-11b-vision-instruct",
|
||||
"novita/meta-llama/llama-3.2-1b-instruct",
|
||||
"novita/meta-llama/llama-3.2-3b-instruct",
|
||||
"novita/meta-llama/llama-3.3-70b-instruct",
|
||||
"novita/meta-llama/llama-4-maverick-17b-128e-instruct-fp8",
|
||||
"novita/microsoft/wizardlm-2-8x22b",
|
||||
"novita/mistralai/mistral-7b-instruct",
|
||||
"novita/mistralai/mistral-nemo",
|
||||
"novita/nousresearch/hermes-2-pro-llama-3-8b",
|
||||
"novita/nousresearch/nous-hermes-llama2-13b",
|
||||
"novita/openchat/openchat-7b",
|
||||
"novita/qwen/qwen-2-7b-instruct",
|
||||
"novita/qwen/qwen-2-vl-72b-instruct",
|
||||
"novita/qwen/qwen-2.5-72b-instruct",
|
||||
"novita/qwen/qwen2.5-vl-72b-instruct",
|
||||
"novita/qwen/qwen3-235b-a22b-fp8",
|
||||
"novita/qwen/qwq-32b",
|
||||
"novita/sao10k/l3-70b-euryale-v2.1",
|
||||
"novita/sao10k/l3-8b-lunaris",
|
||||
"novita/Sao10K/L3-8B-Stheno-v3.2",
|
||||
"novita/sao10k/l31-70b-euryale-v2.2",
|
||||
"novita/sophosympatheia/midnight-rose-70b",
|
||||
"novita/teknium/openhermes-2.5-mistral-7b",
|
||||
"openai/chatgpt-4o-latest",
|
||||
"openai/gpt-4.1-2025-04-14",
|
||||
"openai/gpt-4.1-mini-2025-04-14",
|
||||
"openai/gpt-4.1-mini",
|
||||
"openai/gpt-4.1-nano-2025-04-14",
|
||||
"openai/gpt-4.1-nano",
|
||||
"openai/gpt-4.1",
|
||||
"openai/gpt-4.5-preview",
|
||||
"openai/gpt-4o-2024-05-13",
|
||||
"openai/gpt-4o-2024-08-06",
|
||||
"openai/gpt-4o-2024-11-20",
|
||||
"openai/gpt-4o-mini-2024-07-18",
|
||||
"openai/gpt-4o-mini",
|
||||
"openai/gpt-4o",
|
||||
"openai/o1-2024-12-17",
|
||||
"openai/o1-mini-2024-09-12",
|
||||
"openai/o1-mini:high",
|
||||
"openai/o1-mini:low",
|
||||
"openai/o1-mini:medium",
|
||||
"openai/o1-mini",
|
||||
"openai/o1:high",
|
||||
"openai/o1:low",
|
||||
"openai/o1:medium",
|
||||
"openai/o1",
|
||||
"openai/o3-2025-04-16",
|
||||
"openai/o3-mini-2025-01-31",
|
||||
"openai/o3-mini:high",
|
||||
"openai/o3-mini:low",
|
||||
"openai/o3-mini:medium",
|
||||
"openai/o3-mini",
|
||||
"openai/o4-mini-2025-04-16",
|
||||
"openai/o4-mini:high",
|
||||
"openai/o4-mini:low",
|
||||
"openai/o4-mini:medium",
|
||||
"openai/o4-mini",
|
||||
"parasail/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
|
||||
"parasail/meta-llama/Llama-4-Scout-17B-16E-Instruct",
|
||||
"parasail/parasail-anubis-pro",
|
||||
"parasail/parasail-deepseek-r1",
|
||||
"parasail/parasail-eva-25-72b-v02-fp8",
|
||||
"parasail/parasail-gemma3-27b-it",
|
||||
"parasail/parasail-mistral-7b-instruct-03",
|
||||
"parasail/parasail-mistral-nemo",
|
||||
"parasail/parasail-mythomax-13b",
|
||||
"parasail/parasail-qwen-coder32b-longcontext-128",
|
||||
"parasail/parasail-qwen25-vl-72b-instruct",
|
||||
"parasail/parasail-skyfall-36b-v2-fp8",
|
||||
"parasail/parasail-wayfarer-70b-llama33-fp8",
|
||||
"perplexity/sonar-pro",
|
||||
"perplexity/sonar-reasoning-pro",
|
||||
"perplexity/sonar",
|
||||
"together/deepseek-ai/DeepSeek-R1",
|
||||
"together/deepseek-ai/DeepSeek-V3",
|
||||
"together/deepseek-llm-67b-chat",
|
||||
"together/meta-llama/Llama-2-13b-chat-hf",
|
||||
"together/meta-llama/Llama-2-70b-hf",
|
||||
"together/meta-llama/Llama-2-7b-chat-hf",
|
||||
"together/meta-llama/Llama-3-70b-chat-hf",
|
||||
"together/meta-llama/Llama-3-8b-chat-hf",
|
||||
"together/meta-llama/Llama-3.2-3B-Instruct-Turbo",
|
||||
"together/meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
||||
"together/meta-llama/LlamaGuard-2-8b",
|
||||
"together/meta-llama/Meta-Llama-3-70B-Instruct-Lite",
|
||||
"together/meta-llama/Meta-Llama-3-70B-Instruct-Turbo",
|
||||
"together/meta-llama/Meta-Llama-3-8B-Instruct-Lite",
|
||||
"together/meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo",
|
||||
"together/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
|
||||
"together/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
|
||||
"together/meta-llama/Meta-Llama-Guard-3-8B",
|
||||
"together/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
|
||||
"together/nvidia/Llama-3.1-Nemotron-70B-Instruct-HF",
|
||||
"together/Qwen/Qwen2-72B-Instruct",
|
||||
"together/Qwen/Qwen2.5-72B-Instruct-Turbo",
|
||||
"together/Qwen/Qwen2.5-7B-Instruct-Turbo",
|
||||
"together/Qwen/Qwen2.5-Coder-32B-Instruct",
|
||||
"together/Qwen/QwQ-32B-Preview",
|
||||
"together/upstage/SOLAR-10.7B-Instruct-v1.0",
|
||||
"vertex/anthropic/claude-3-5-sonnet-20241022",
|
||||
"vertex/anthropic/claude-3-5-sonnet-20241022@europe-west1",
|
||||
"vertex/anthropic/claude-3-5-sonnet-20241022@us-east5",
|
||||
"vertex/anthropic/claude-3-5-sonnet-latest",
|
||||
"vertex/anthropic/claude-3-5-sonnet-latest@europe-west1",
|
||||
"vertex/anthropic/claude-3-5-sonnet-latest@us-east5",
|
||||
"vertex/anthropic/claude-3-5-sonnet",
|
||||
"vertex/anthropic/claude-3-5-sonnet@europe-west1",
|
||||
"vertex/anthropic/claude-3-5-sonnet@us-east5",
|
||||
"vertex/anthropic/claude-3-7-sonnet-20250219",
|
||||
"vertex/anthropic/claude-3-7-sonnet-20250219@europe-west1",
|
||||
"vertex/anthropic/claude-3-7-sonnet-20250219@us-east5",
|
||||
"vertex/anthropic/claude-3-7-sonnet-latest",
|
||||
"vertex/anthropic/claude-3-7-sonnet-latest@europe-west1",
|
||||
"vertex/anthropic/claude-3-7-sonnet-latest@us-east5",
|
||||
"vertex/anthropic/claude-3-7-sonnet",
|
||||
"vertex/anthropic/claude-3-7-sonnet@europe-west1",
|
||||
"vertex/anthropic/claude-3-7-sonnet@us-east5",
|
||||
"xai/grok-2-1212",
|
||||
"xai/grok-2-latest",
|
||||
"xai/grok-3-beta",
|
||||
"xai/grok-3-fast-beta",
|
||||
"xai/grok-3-mini-beta:high",
|
||||
"xai/grok-3-mini-beta:low",
|
||||
"xai/grok-3-mini-beta",
|
||||
"xai/grok-3-mini-fast-beta:high",
|
||||
"xai/grok-3-mini-fast-beta:low",
|
||||
"xai/grok-3-mini-fast-beta"
|
||||
]
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
[
|
||||
"anthropic/claude-3-5-haiku-20241022",
|
||||
"anthropic/claude-3-5-sonnet-20241022",
|
||||
"anthropic/claude-3-7-sonnet-20250219",
|
||||
"anthropic/claude-3-haiku-20240307",
|
||||
"anthropic/claude-3-opus-20240229",
|
||||
"anthropic/claude-3-sonnet-20240229",
|
||||
"bedrock/us.anthropic.claude-3-5-sonnet-20240620-v1:0",
|
||||
"bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0",
|
||||
"dashscope/qwen2.5-7b-instruct",
|
||||
"dashscope/qwen2.5-vl-72b-instruct",
|
||||
"google/gemini-1.5-flash",
|
||||
"google/gemini-2.0-flash",
|
||||
"google/gemini-2.0-flash-lite",
|
||||
"google/gemini-2.0-pro-exp-02-05",
|
||||
"google/gemini-2.5-flash-preview-04-17",
|
||||
"google/gemini-2.5-pro-exp-03-25",
|
||||
"google/gemini-2.5-pro-preview-05-06",
|
||||
"meta/meta-llama-3.3-70b-instruct",
|
||||
"mistral-ai/codestral-latest",
|
||||
"openai/gpt-3.5-turbo",
|
||||
"openai/gpt-4.1",
|
||||
"openai/gpt-4.1-mini",
|
||||
"openai/gpt-4.1-nano",
|
||||
"openai/gpt-4.5-preview",
|
||||
"openai/gpt-4o",
|
||||
"openai/gpt-4o-mini",
|
||||
"openai/o1-mini",
|
||||
"openai/o1-preview",
|
||||
"openai/o3",
|
||||
"openai/o3-mini",
|
||||
"openai/o4-mini",
|
||||
"vertex-ai/custom.deepseek-distill-llama-3-8b-instruct",
|
||||
"vertex-ai/deepseek-distill-llama-3-8b-instruct",
|
||||
"x-ai/grok-2-latest",
|
||||
"x-ai/grok-3-beta",
|
||||
"x-ai/grok-3-fast-beta",
|
||||
"x-ai/grok-3-mini-beta",
|
||||
"x-ai/grok-3-mini-fast-beta",
|
||||
"x-ai/grok-beta"
|
||||
]
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
[
|
||||
"gemini-2.5-flash-preview-05-20:thinking",
|
||||
"gemini-2.5-flash-preview-05-20",
|
||||
"gemini-2.5-flash-preview-04-17:thinking",
|
||||
"gemini-2.5-flash-preview-04-17",
|
||||
"gemini-2.5-pro-preview-03-25",
|
||||
"gemini-2.5-pro-preview-05-06",
|
||||
"gemini-2.5-pro-exp-03-25",
|
||||
"gemini-2.0-pro-exp-02-05",
|
||||
"gemini-2.0-flash-001",
|
||||
"gemini-2.0-flash-lite-001",
|
||||
"gemini-2.0-flash-thinking-exp-01-21",
|
||||
"gemini-1.5-flash-002",
|
||||
"gemini-1.5-pro-002",
|
||||
"claude-3-7-sonnet@20250219:thinking",
|
||||
"claude-3-7-sonnet@20250219",
|
||||
"claude-3-5-sonnet-v2@20241022",
|
||||
"claude-3-5-sonnet@20240620",
|
||||
"claude-3-5-haiku@20241022",
|
||||
"claude-3-opus@20240229",
|
||||
"claude-3-haiku@20240307"
|
||||
]
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
[
|
||||
"grok-3-beta",
|
||||
"grok-3-fast-beta",
|
||||
"grok-3-mini-beta",
|
||||
"grok-3-mini-fast-beta",
|
||||
"grok-2-latest",
|
||||
"grok-2",
|
||||
"grok-2-1212",
|
||||
"grok-2-vision-latest",
|
||||
"grok-2-vision",
|
||||
"grok-2-vision-1212",
|
||||
"grok-vision-beta",
|
||||
"grok-beta"
|
||||
]
|
||||
|
|
@ -1,47 +1,51 @@
|
|||
import { type ProviderName } from '@roo-code/types';
|
||||
import {
|
||||
type ProviderName,
|
||||
type ModelInfo,
|
||||
anthropicModels,
|
||||
bedrockModels,
|
||||
chutesModels,
|
||||
deepSeekModels,
|
||||
geminiModels,
|
||||
groqModels,
|
||||
vertexModels,
|
||||
mistralModels,
|
||||
openAiNativeModels,
|
||||
vscodeLlmModels,
|
||||
xaiModels,
|
||||
} from '@roo-code/types';
|
||||
|
||||
import openRouterModels from '@/lib/data/openrouter-models.json';
|
||||
import anthropicModels from '@/lib/data/anthropic.json';
|
||||
import geminiModels from '@/lib/data/gemini.json';
|
||||
import deepseekModels from '@/lib/data/deepseek.json';
|
||||
import openaiNativeModels from '@/lib/data/openai-native.json';
|
||||
import vertexModels from '@/lib/data/vertex.json';
|
||||
import bedrockModels from '@/lib/data/bedrock.json';
|
||||
import mistralModels from '@/lib/data/mistral.json';
|
||||
import requestyModels from '@/lib/data/requesty-models.json';
|
||||
import groqModels from '@/lib/data/groq.json';
|
||||
import xaiModels from '@/lib/data/xai.json';
|
||||
import unboundModels from '@/lib/data/unbound.json';
|
||||
import glamaModels from '@/lib/data/glama.json';
|
||||
import chutesModels from '@/lib/data/chutes.json';
|
||||
export const providers: Record<
|
||||
Exclude<ProviderName, 'fake-ai' | 'human-relay'>,
|
||||
{ id: ProviderName; label: string; models?: Record<string, ModelInfo> }
|
||||
> = {
|
||||
anthropic: { id: 'anthropic', label: 'Anthropic', models: anthropicModels },
|
||||
bedrock: { id: 'bedrock', label: 'Amazon Bedrock', models: bedrockModels },
|
||||
chutes: { id: 'chutes', label: 'Chutes AI', models: chutesModels },
|
||||
deepseek: { id: 'deepseek', label: 'DeepSeek', models: deepSeekModels },
|
||||
gemini: { id: 'gemini', label: 'Google Gemini', models: geminiModels },
|
||||
'openai-native': {
|
||||
id: 'openai-native',
|
||||
label: 'OpenAI',
|
||||
models: openAiNativeModels,
|
||||
},
|
||||
vertex: { id: 'vertex', label: 'GCP Vertex AI', models: vertexModels },
|
||||
'vscode-lm': {
|
||||
id: 'vscode-lm',
|
||||
label: 'VS Code LM API',
|
||||
models: vscodeLlmModels,
|
||||
},
|
||||
mistral: { id: 'mistral', label: 'Mistral', models: mistralModels },
|
||||
xai: { id: 'xai', label: 'xAI (Grok)', models: xaiModels },
|
||||
groq: { id: 'groq', label: 'Groq', models: groqModels },
|
||||
|
||||
type BaseProvider = {
|
||||
id: ProviderName;
|
||||
label: string;
|
||||
models: string[];
|
||||
openai: { id: 'openai', label: 'OpenAI Compatible' }, // Models are manually added.
|
||||
ollama: { id: 'ollama', label: 'Ollama' }, // Models pulled locally from the Ollama server.
|
||||
lmstudio: { id: 'lmstudio', label: 'LM Studio' }, // Not sure...
|
||||
|
||||
// Models pulled from the respective APIs.
|
||||
openrouter: { id: 'openrouter', label: 'OpenRouter' },
|
||||
requesty: { id: 'requesty', label: 'Requesty' },
|
||||
litellm: { id: 'litellm', label: 'LiteLLM' },
|
||||
unbound: { id: 'unbound', label: 'Unbound' },
|
||||
glama: { id: 'glama', label: 'Glama' },
|
||||
};
|
||||
|
||||
export const providers = (
|
||||
[
|
||||
{ id: 'openrouter', label: 'OpenRouter', models: openRouterModels },
|
||||
{ id: 'anthropic', label: 'Anthropic', models: anthropicModels },
|
||||
{ id: 'gemini', label: 'Google Gemini', models: geminiModels },
|
||||
{ id: 'deepseek', label: 'DeepSeek', models: deepseekModels },
|
||||
{ id: 'openai-native', label: 'OpenAI', models: openaiNativeModels },
|
||||
{ id: 'openai', label: 'OpenAI Compatible', models: [] },
|
||||
{ id: 'vertex', label: 'GCP Vertex AI', models: vertexModels },
|
||||
{ id: 'bedrock', label: 'Amazon Bedrock', models: bedrockModels },
|
||||
{ id: 'glama', label: 'Glama', models: glamaModels },
|
||||
{ id: 'vscode-lm', label: 'VS Code LM API', models: [] },
|
||||
{ id: 'mistral', label: 'Mistral', models: mistralModels },
|
||||
{ id: 'lmstudio', label: 'LM Studio', models: [] },
|
||||
{ id: 'ollama', label: 'Ollama', models: [] },
|
||||
{ id: 'unbound', label: 'Unbound', models: unboundModels },
|
||||
{ id: 'requesty', label: 'Requesty', models: requestyModels },
|
||||
{ id: 'human-relay', label: 'Human Relay', models: [] },
|
||||
{ id: 'xai', label: 'xAI (Grok)', models: xaiModels },
|
||||
{ id: 'groq', label: 'Groq', models: groqModels },
|
||||
{ id: 'chutes', label: 'Chutes AI', models: chutesModels },
|
||||
{ id: 'litellm', label: 'LiteLLM', models: [] },
|
||||
] satisfies BaseProvider[]
|
||||
).sort((a, b) => a.label.localeCompare(b.label));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue