feat: add FuturMix as named OpenAI-compatible provider - #26504
feat: add FuturMix as named OpenAI-compatible provider#26504Gzhao-redpoint wants to merge 3 commits into
Conversation
Add FuturMix as OpenAI-compatible providerAdds a declarative JSON entry for FuturMix ( Status: 0 open |
Greptile SummaryThis PR registers FuturMix as a named OpenAI-compatible provider by adding it to Confidence Score: 5/5Safe to merge — only JSON config changes adding a new named provider with no logic impact. Both changed files are purely declarative JSON. The No files require special attention.
|
| Filename | Overview |
|---|---|
| litellm/llms/openai_like/providers.json | Adds futurmix entry with correct base URL, API key env var, optional base URL override via FUTURMIX_API_BASE, and max_completion_tokens → max_tokens mapping — consistent with other providers in this file. |
| provider_endpoints_support.json | Adds futurmix endpoint capability entry and alphabetically reorders existing providers (confirmed by prior review not to change any existing values). The futurmix URL field points to a documentation page not yet created. |
Sequence Diagram
sequenceDiagram
participant User
participant LiteLLM
participant FuturMix as FuturMix Gateway (futurmix.ai/v1)
participant Model as Upstream Model
User->>LiteLLM: completion(model="futurmix/gpt-4o")
LiteLLM->>LiteLLM: Load providers.json, resolve base_url
LiteLLM->>FuturMix: POST /v1/chat/completions (OpenAI format)
FuturMix->>Model: Forward to upstream provider
Model-->>FuturMix: Response
FuturMix-->>LiteLLM: OpenAI-compatible response
LiteLLM-->>User: ModelResponse
Reviews (4): Last reviewed commit: "fix: set FuturMix a2a to false (not an A..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
recheck |
2 similar comments
|
recheck |
|
recheck |
|
@CLAassistant recheck |
|
I have read the CLA Document and I hereby sign the CLA |
|
recheck |
| @@ -2337,9 +2490,9 @@ | |||
| "interactions": true | |||
There was a problem hiding this comment.
Unintended capability change for
watsonx bundled into add-provider PR
The watsonx entry's audio_transcriptions flag changes from false to true in this PR. This is a substantive capability change for an existing provider that is silently bundled into a simple "add FuturMix" PR. This will affect any code that queries endpoint support for watsonx, and it has not been mentioned in the PR description or tested. Please confirm this is intentional and separate it into its own PR if so.
There was a problem hiding this comment.
Thanks for flagging — verified this is a false positive. The watsonx audio_transcriptions: true value was already present in the base branch (unchanged by this PR). The diff shows a positional change only because the providers list was alphabetically re-sorted. I confirmed programmatically that no existing provider values were changed — only ordering.
| @@ -990,9 +1021,9 @@ | |||
| "interactions": true | |||
There was a problem hiding this comment.
a2a: true for new gateway provider needs verification
FuturMix is described in the PR as a unified AI gateway forwarding to Claude, GPT, and Gemini over an OpenAI-compatible API. Setting a2a: true (Agent-to-Agent) implies it exposes an A2A-protocol endpoint, which is a distinct capability beyond OpenAI-compatible chat completions. If FuturMix does not actually implement the A2A protocol, this will surface false capabilities to users. Please verify and set to false if unsupported.
There was a problem hiding this comment.
Good catch — fixed in 93c8462. FuturMix is an OpenAI-compatible gateway and does not implement the A2A protocol. Set a2a: false.
|
recheck |
| "interactions": true | ||
| } | ||
| }, | ||
| "vllm": { | ||
| "display_name": "VLLM (`vllm`)", | ||
| "url": "https://docs.litellm.ai/docs/providers/vllm", | ||
| "vercel_ai_gateway": { | ||
| "display_name": "Vercel AI Gateway (`vercel_ai_gateway`)", | ||
| "url": "https://docs.litellm.ai/docs/providers/vercel_ai_gateway", | ||
| "endpoints": { | ||
| "chat_completions": true, | ||
| "messages": true, | ||
| "responses": true, | ||
| "embeddings": true, | ||
| "embeddings": false, | ||
| "image_generations": false, | ||
| "audio_transcriptions": false, | ||
| "audio_speech": false, | ||
| "moderations": false, | ||
| "batches": true, | ||
| "files": true, | ||
| "rerank": true, | ||
| "batches": false, | ||
| "rerank": false, |
There was a problem hiding this comment.
Unintentional capability regression for
vercel_ai_gateway
The reordering of provider_endpoints_support.json silently changes vercel_ai_gateway's advertised capabilities: embeddings, batches, files, and rerank all flip from true to false. None of this is mentioned in the PR description and it's unrelated to the FuturMix addition. Users querying endpoint support for vercel_ai_gateway will now receive incorrect (reduced) capability data.
Before this PR:
"embeddings": true,
"batches": true,
"files": true,
"rerank": trueAfter:
"embeddings": false,
"batches": false,
// "files" removed entirely
"rerank": falsePlease confirm whether this is an intentional correction or an accidental regression, and if intentional, separate it into its own PR with an explanation.
There was a problem hiding this comment.
False positive — verified programmatically. I compared every provider's endpoint values between main and this PR branch:
# Result: 146 providers in main, 147 in PR (only "futurmix" added)
# Zero value changes to any existing provider including vercel_ai_gatewayThe diff only shows key reordering (alphabetical sort within each provider's endpoints object), not value changes. JSON key order has no semantic meaning.
vercel_ai_gateway values in both main and PR branch:
embeddings: false,batches: false,rerank: false— unchangedchat_completions: true,messages: true,responses: true— unchanged
The Greptile bot misread the alphabetical reorder as a value change.
|
Friendly ping — this PR is ready for review. All CI checks pass, CLA is signed, and I've addressed the three Greptile review comments (two were false positives from JSON key reordering, one a2a flag fix was pushed in 93c8462). The change is minimal: adds FuturMix as a new provider entry in |
93c8462 to
6d67213
Compare
|
recheck |
|
All CI checks are passing and the Greptile review found it safe to merge. Would a maintainer be able to review this when convenient? Happy to address any feedback. Thanks! |
|
Closing this PR and re-submitting from a rebased branch to resolve merge conflicts with |
|
This PR has been superseded by #26769, which is rebased on the latest |
Summary
Adds FuturMix.ai as a named OpenAI-compatible provider in
providers.json.FuturMix is a enterprise AI agent platform that provides OpenAI-compatible access to 22+ models (Claude, GPT, Gemini) . Adding it as a named provider allows users to use
futurmix/prefix for model routing.Changes
futurmixentry tolitellm/llms/openai_like/providers.jsonUsage
Once merged, users can call FuturMix models with:
Environment variable:
FUTURMIX_API_KEYTesting