diff --git a/core/llm/llms/FuturMix.ts b/core/llm/llms/FuturMix.ts new file mode 100644 index 00000000000..3cac6b9faf6 --- /dev/null +++ b/core/llm/llms/FuturMix.ts @@ -0,0 +1,13 @@ +import OpenAI from "./OpenAI.js"; + +import type { LLMOptions } from "../../index.js"; + +class FuturMix extends OpenAI { + static providerName = "futurmix"; + static defaultOptions: Partial = { + apiBase: "https://futurmix.ai/v1/", + useLegacyCompletionsEndpoint: false, + }; +} + +export default FuturMix; diff --git a/core/llm/llms/index.ts b/core/llm/llms/index.ts index 453b2d90cd8..2f7a287847f 100644 --- a/core/llm/llms/index.ts +++ b/core/llm/llms/index.ts @@ -24,6 +24,7 @@ import Docker from "./Docker"; import Fireworks from "./Fireworks"; import Flowise from "./Flowise"; import FunctionNetwork from "./FunctionNetwork"; +import FuturMix from "./FuturMix"; import Gemini from "./Gemini"; import Groq from "./Groq"; import HuggingFaceInferenceAPI from "./HuggingFaceInferenceAPI"; @@ -127,6 +128,7 @@ export const LLMClasses = [ xAI, SiliconFlow, Tensorix, + FuturMix, Scaleway, Relace, Inception, diff --git a/docs/customize/model-providers/more/futurmix.mdx b/docs/customize/model-providers/more/futurmix.mdx new file mode 100644 index 00000000000..c03d775be24 --- /dev/null +++ b/docs/customize/model-providers/more/futurmix.mdx @@ -0,0 +1,97 @@ +--- +title: "FuturMix" +description: "Configure FuturMix with Continue to access Claude, Gemini, GPT, and other models through a single OpenAI-compatible API gateway" +--- + +[FuturMix](https://futurmix.ai) is a unified AI gateway that provides OpenAI-compatible access to 22+ models from OpenAI, Anthropic, and Google through a single API endpoint and key. + + + You can get an API key from + [futurmix.ai](https://futurmix.ai). + + +## Chat Model + +We recommend configuring **claude-sonnet-4-6** as your chat model. + + + + ```yaml title="config.yaml" + name: My Config + version: 0.0.1 + schema: v1 + + models: + - name: Claude Sonnet 4-6 + provider: futurmix + model: claude-sonnet-4-6 + apiKey: + roles: + - chat + ``` + + + ```json title="config.json" + { + "models": [ + { + "title": "Claude Sonnet 4-6", + "provider": "futurmix", + "model": "claude-sonnet-4-6", + "apiKey": "" + } + ] + } + ``` + + + +## Autocomplete Model + + + + ```yaml title="config.yaml" + name: My Config + version: 0.0.1 + schema: v1 + + models: + - name: Claude Haiku 4.5 + provider: futurmix + model: claude-haiku-4-5-20251001 + apiKey: + roles: + - autocomplete + ``` + + + ```json title="config.json" + { + "models": [ + { + "title": "Claude Haiku 4.5", + "provider": "futurmix", + "model": "claude-haiku-4-5-20251001", + "apiKey": "" + } + ], + "tabAutocompleteModel": { + "title": "Claude Haiku 4.5", + "provider": "futurmix", + "model": "claude-haiku-4-5-20251001", + "apiKey": "" + } + } + ``` + + + +## Available Models + +FuturMix provides access to models including: + +- **Anthropic**: Claude Opus 4-7, Claude Sonnet 4-6, Claude Haiku 4.5 +- **Google**: Gemini 2.5 Pro, Gemini 2.5 Flash +- **OpenAI**: GPT-5.4, GPT-5.4 Mini + +[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/FuturMix.ts) diff --git a/gui/public/logos/futurmix.png b/gui/public/logos/futurmix.png new file mode 100644 index 00000000000..28bc86ab1d5 Binary files /dev/null and b/gui/public/logos/futurmix.png differ diff --git a/gui/src/pages/AddNewModel/configs/models.ts b/gui/src/pages/AddNewModel/configs/models.ts index 1de77b13af1..debc74b28d7 100644 --- a/gui/src/pages/AddNewModel/configs/models.ts +++ b/gui/src/pages/AddNewModel/configs/models.ts @@ -2802,6 +2802,100 @@ export const models: { [key: string]: ModelPackage } = { isOpenSource: true, }, + // FuturMix Models + + futurmixClaudeOpus47: { + title: "Claude Opus 4-7", + description: + "Anthropic's Claude Opus 4-7 via FuturMix — advanced reasoning and coding with 200K context.", + params: { + model: "claude-opus-4-7", + contextLength: 200_000, + title: "Claude Opus 4-7", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixClaudeSonnet46: { + title: "Claude Sonnet 4-6", + description: + "Anthropic's Claude Sonnet 4-6 via FuturMix — fast, capable coding model with 200K context.", + params: { + model: "claude-sonnet-4-6", + contextLength: 200_000, + title: "Claude Sonnet 4-6", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixClaudeHaiku45: { + title: "Claude Haiku 4.5", + description: + "Anthropic's Claude Haiku 4.5 via FuturMix — lightweight and fast with 200K context.", + params: { + model: "claude-haiku-4-5-20251001", + contextLength: 200_000, + title: "Claude Haiku 4.5", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixGemini25Pro: { + title: "Gemini 2.5 Pro", + description: + "Google's Gemini 2.5 Pro via FuturMix — 1M token context with advanced reasoning.", + params: { + model: "gemini-2.5-pro", + contextLength: 1_048_576, + title: "Gemini 2.5 Pro", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixGemini25Flash: { + title: "Gemini 2.5 Flash", + description: + "Google's Gemini 2.5 Flash via FuturMix — fast and efficient with 1M token context.", + params: { + model: "gemini-2.5-flash", + contextLength: 1_048_576, + title: "Gemini 2.5 Flash", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixGpt54: { + title: "GPT-5.4", + description: + "OpenAI's GPT-5.4 via FuturMix — latest GPT model with 128K context.", + params: { + model: "gpt-5.4", + contextLength: 128_000, + title: "GPT-5.4", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + futurmixGpt54Mini: { + title: "GPT-5.4 Mini", + description: + "OpenAI's GPT-5.4 Mini via FuturMix — compact and efficient with 128K context.", + params: { + model: "gpt-5.4-mini", + contextLength: 128_000, + title: "GPT-5.4 Mini", + apiKey: "", + }, + providerOptions: ["futurmix"], + isOpenSource: false, + }, + AUTODETECT: { title: "Autodetect", description: diff --git a/gui/src/pages/AddNewModel/configs/providers.ts b/gui/src/pages/AddNewModel/configs/providers.ts index 82f1e15c7a0..58e03eed6e0 100644 --- a/gui/src/pages/AddNewModel/configs/providers.ts +++ b/gui/src/pages/AddNewModel/configs/providers.ts @@ -1271,6 +1271,44 @@ To get started, [register](https://dataplatform.cloud.ibm.com/registration/stepo packages: [{ ...models.AUTODETECT }], apiKeyUrl: "https://app.tensorix.ai", }, + futurmix: { + title: "FuturMix", + provider: "futurmix", + refPage: "futurmix", + description: + "Unified AI gateway for 22+ models from OpenAI, Anthropic, and Google with OpenAI-compatible API.", + longDescription: + "FuturMix provides a single OpenAI-compatible endpoint to access models from OpenAI, Anthropic, and Google. One API key, one base URL, 99.99% SLA. Get your API key at [futurmix.ai](https://futurmix.ai).", + icon: "futurmix.png", + tags: [ModelProviderTags.RequiresApiKey], + collectInputFor: [ + { + inputType: "text", + key: "apiKey", + label: "API Key", + placeholder: "Enter your FuturMix API key", + required: true, + }, + ...completionParamsInputsConfigs, + ], + packages: [ + models.futurmixClaudeOpus47, + models.futurmixClaudeSonnet46, + models.futurmixClaudeHaiku45, + models.futurmixGemini25Pro, + models.futurmixGemini25Flash, + models.futurmixGpt54, + models.futurmixGpt54Mini, + { + ...models.AUTODETECT, + params: { + ...models.AUTODETECT.params, + title: "FuturMix", + }, + }, + ], + apiKeyUrl: "https://futurmix.ai", + }, venice: { title: "Venice", provider: "venice",