From 98b9565c24888f550e7cbb004f945c51778daa6a Mon Sep 17 00:00:00 2001 From: andreass01 Date: Sun, 8 Jun 2025 01:25:28 +0200 Subject: [PATCH 1/5] Add files via upload --- app/lib/modules/llm/registry.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/lib/modules/llm/registry.ts b/app/lib/modules/llm/registry.ts index 6edba6d8..a9b2f6ba 100644 --- a/app/lib/modules/llm/registry.ts +++ b/app/lib/modules/llm/registry.ts @@ -16,10 +16,12 @@ import XAIProvider from './providers/xai'; import HyperbolicProvider from './providers/hyperbolic'; import AmazonBedrockProvider from './providers/amazon-bedrock'; import GithubProvider from './providers/github'; +import ChuteProvider from './providers/chute'; export { AnthropicProvider, CohereProvider, + ChuteProvider, DeepseekProvider, GoogleProvider, GroqProvider, From 0740ef60c3e8b637cb7beb106608db800ae00d70 Mon Sep 17 00:00:00 2001 From: andreass01 Date: Sun, 8 Jun 2025 01:25:54 +0200 Subject: [PATCH 2/5] Add files via upload --- app/lib/modules/llm/providers/chute.ts | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 app/lib/modules/llm/providers/chute.ts diff --git a/app/lib/modules/llm/providers/chute.ts b/app/lib/modules/llm/providers/chute.ts new file mode 100644 index 00000000..8282cc7f --- /dev/null +++ b/app/lib/modules/llm/providers/chute.ts @@ -0,0 +1,49 @@ +import { BaseProvider, getOpenAILikeModel } from '~/lib/modules/llm/base-provider'; +import type { ModelInfo } from '~/lib/modules/llm/types'; +import type { IProviderSetting } from '~/types/model'; +import type { LanguageModelV1 } from 'ai'; + +export default class ChuteProvider extends BaseProvider { + name = 'Chute'; + + config = { + apiTokenKey: 'CHUTES_API_TOKEN', + baseUrl: 'https://llm.chutes.ai/v1', + }; + + staticModels: ModelInfo[] = [ + { + name: 'deepseek-ai/DeepSeek-V3-0324', + label: 'Deepseek V3 (Chute)', + provider: 'Chute', + maxTokenAllowed: 4096, + }, + ]; + + getModelInstance(options: { + model: string; + serverEnv: Env; + apiKeys?: Record; + providerSettings?: Record; + }): LanguageModelV1 { + const { model, serverEnv, apiKeys, providerSettings } = options; + + const { baseUrl, apiKey } = this.getProviderBaseUrlAndKey({ + apiKeys, + providerSettings: providerSettings?.[this.name], + serverEnv: serverEnv as any, + defaultBaseUrlKey: '', // Chute has a fixed base URL + defaultApiTokenKey: 'CHUTES_API_TOKEN', + }); + + if (!apiKey) { + throw new Error(`Missing API key for ${this.name} provider`); + } + + if (!baseUrl) { + throw new Error(`Missing base URL for ${this.name} provider`); + } + + return getOpenAILikeModel(baseUrl, apiKey, model); + } +} \ No newline at end of file From 4da4a2147ea5809755572d190b4cf2c45725b22f Mon Sep 17 00:00:00 2001 From: andreass01 Date: Sun, 8 Jun 2025 12:19:26 +0200 Subject: [PATCH 3/5] Update chute.ts --- app/lib/modules/llm/providers/chute.ts | 59 +++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/app/lib/modules/llm/providers/chute.ts b/app/lib/modules/llm/providers/chute.ts index 8282cc7f..9e62072b 100644 --- a/app/lib/modules/llm/providers/chute.ts +++ b/app/lib/modules/llm/providers/chute.ts @@ -14,10 +14,65 @@ export default class ChuteProvider extends BaseProvider { staticModels: ModelInfo[] = [ { name: 'deepseek-ai/DeepSeek-V3-0324', - label: 'Deepseek V3 (Chute)', + label: 'Deepseek V3 (Free)', provider: 'Chute', maxTokenAllowed: 4096, }, + { + name: 'deepseek-ai/DeepSeek-R1-0528', + label: 'Deepseek R1 (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'tngtech/DeepSeek-R1T-Chimera', + label: 'DeepSeek-R1T-Chimera (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'microsoft/MAI-DS-R1-FP8', + label: 'MAI-DS-R1-FP8 (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'Qwen/Qwen3-235B-A22B', + label: 'Qwen3-235B-A22B (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'chutesai/Mistral-Small-3.1-24B-Instruct-2503', + label: 'Mistral-Small-3.1-24B-Instruct-2503 (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'deepseek-ai/DeepSeek-R1-0528-Qwen3-8B', + label: 'DeepSeek-R1-0528-Qwen3-8B (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'agentica-org/DeepCoder-14B-Preview', + label: 'DeepCoder-14B-Preview (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', + label: 'Llama-3.1-Nemotron-Ultra-253B-v1 (Free)', + provider: 'Chute', + maxTokenAllowed: 1024, + }, + { + name: 'ByteDance-Seed/Seed-Coder-8B-Reasoning-bf16', // New model added + label: 'Seed-Coder-8B-Reasoning-bf16 (Free)', // Label for the new model + provider: 'Chute', + maxTokenAllowed: 1024, + }, + // Add other Chute models here following the same structure ]; getModelInstance(options: { @@ -46,4 +101,4 @@ export default class ChuteProvider extends BaseProvider { return getOpenAILikeModel(baseUrl, apiKey, model); } -} \ No newline at end of file +} From a65e1944368d89476ce6dd3d6de94584564b9b7b Mon Sep 17 00:00:00 2001 From: andreass01 Date: Sun, 8 Jun 2025 12:57:13 +0200 Subject: [PATCH 4/5] Update registry.ts --- app/lib/modules/llm/registry.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/lib/modules/llm/registry.ts b/app/lib/modules/llm/registry.ts index a9b2f6ba..b74362a3 100644 --- a/app/lib/modules/llm/registry.ts +++ b/app/lib/modules/llm/registry.ts @@ -16,12 +16,12 @@ import XAIProvider from './providers/xai'; import HyperbolicProvider from './providers/hyperbolic'; import AmazonBedrockProvider from './providers/amazon-bedrock'; import GithubProvider from './providers/github'; -import ChuteProvider from './providers/chute'; +import ChutesProvider from './providers/chutes'; export { AnthropicProvider, CohereProvider, - ChuteProvider, + ChutesProvider, DeepseekProvider, GoogleProvider, GroqProvider, From c5540b00d1005a38800b6691758eeb416305d48f Mon Sep 17 00:00:00 2001 From: andreass01 Date: Sun, 8 Jun 2025 13:00:02 +0200 Subject: [PATCH 5/5] Update and rename chute.ts to chutes.ts --- .../llm/providers/{chute.ts => chutes.ts} | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) rename app/lib/modules/llm/providers/{chute.ts => chutes.ts} (74%) diff --git a/app/lib/modules/llm/providers/chute.ts b/app/lib/modules/llm/providers/chutes.ts similarity index 74% rename from app/lib/modules/llm/providers/chute.ts rename to app/lib/modules/llm/providers/chutes.ts index 9e62072b..459793d3 100644 --- a/app/lib/modules/llm/providers/chute.ts +++ b/app/lib/modules/llm/providers/chutes.ts @@ -3,8 +3,8 @@ import type { ModelInfo } from '~/lib/modules/llm/types'; import type { IProviderSetting } from '~/types/model'; import type { LanguageModelV1 } from 'ai'; -export default class ChuteProvider extends BaseProvider { - name = 'Chute'; +export default class ChutesProvider extends BaseProvider { + name = 'Chutes'; config = { apiTokenKey: 'CHUTES_API_TOKEN', @@ -14,65 +14,65 @@ export default class ChuteProvider extends BaseProvider { staticModels: ModelInfo[] = [ { name: 'deepseek-ai/DeepSeek-V3-0324', - label: 'Deepseek V3 (Free)', - provider: 'Chute', + label: 'Deepseek V3-0324 (Free)', + provider: 'Chutes', maxTokenAllowed: 4096, }, { name: 'deepseek-ai/DeepSeek-R1-0528', - label: 'Deepseek R1 (Free)', - provider: 'Chute', + label: 'Deepseek R1-0528 (Free)', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'tngtech/DeepSeek-R1T-Chimera', label: 'DeepSeek-R1T-Chimera (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'microsoft/MAI-DS-R1-FP8', label: 'MAI-DS-R1-FP8 (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'Qwen/Qwen3-235B-A22B', label: 'Qwen3-235B-A22B (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'chutesai/Mistral-Small-3.1-24B-Instruct-2503', label: 'Mistral-Small-3.1-24B-Instruct-2503 (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'deepseek-ai/DeepSeek-R1-0528-Qwen3-8B', label: 'DeepSeek-R1-0528-Qwen3-8B (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'agentica-org/DeepCoder-14B-Preview', label: 'DeepCoder-14B-Preview (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { name: 'nvidia/Llama-3_1-Nemotron-Ultra-253B-v1', label: 'Llama-3.1-Nemotron-Ultra-253B-v1 (Free)', - provider: 'Chute', + provider: 'Chutes', maxTokenAllowed: 1024, }, { - name: 'ByteDance-Seed/Seed-Coder-8B-Reasoning-bf16', // New model added - label: 'Seed-Coder-8B-Reasoning-bf16 (Free)', // Label for the new model - provider: 'Chute', + name: 'ByteDance-Seed/Seed-Coder-8B-Reasoning-bf16', + label: 'Seed-Coder-8B-Reasoning-bf16 (Free)', + provider: 'Chutes', maxTokenAllowed: 1024, }, - // Add other Chute models here following the same structure + // Add other Chutes models here following the same structure ]; getModelInstance(options: { @@ -87,7 +87,7 @@ export default class ChuteProvider extends BaseProvider { apiKeys, providerSettings: providerSettings?.[this.name], serverEnv: serverEnv as any, - defaultBaseUrlKey: '', // Chute has a fixed base URL + defaultBaseUrlKey: '', // Chutes has a fixed base URL defaultApiTokenKey: 'CHUTES_API_TOKEN', });