Skip to content

feat(providers): add FutureInfra as an OpenAI-compatible gateway - #251

Open
uxidev wants to merge 1 commit into
HKUDS:mainfrom
uxidev:add-futureinfra-provider
Open

uxidev wants to merge 1 commit into
HKUDS:mainfrom
uxidev:add-futureinfra-provider

Conversation

@uxidev

@uxidev uxidev commented Oct 1, 2026

Copy link
Copy Markdown

Description

Adds FutureInfra as a named OpenAI-compatible gateway. FutureInfra (https://futureinfra.ai/) is a Korean cloud provider whose AI router exposes an OpenAI-compatible API at https://futureinfra.ai/v1/ai (POST /chat/completions, GET /models). One key reaches 300+ models from several vendors, with provider/model ids such as openai/gpt-4o-mini, anthropic/claude-sonnet-4 and deepseek/deepseek-chat.

Mirrors the Opper provider added in #242: a ProviderSpec on the generic openai_compat gateway path, the matching ProviderConfig block, and tests pinning the wiring.

Related Issues

None.

Changes Made

  • core/providers/registry.py: new futureinfra ProviderSpec (inserted after opper), endpoint_class="gateway", env_key="FUTUREINFRA_API_KEY", detect_by_base_keyword="futureinfra.ai", default_api_base="https://futureinfra.ai/v1/ai".
  • core/config.py: futureinfra block in ProvidersConfig.
  • tests/test_futureinfra_provider.py: pins registration, config block, gateway wiring, base URL / env var, endpoint class of the default base, empty key-prefix heuristic, and strip_model_prefix=False.

Two provider-specific choices, both covered by tests:

  • strip_model_prefix stays off: FutureInfra ids are provider/model slugs, so the prefix is part of the id.
  • supports_prompt_caching is left at the default (False); this PR only relies on the standard chat completions API (streaming and tool calling).

Checklist

  • Changes tested locally
  • Code reviewed
  • Documentation updated (if necessary)
  • Unit tests added (if applicable)

Additional Notes

Tests run locally (Python 3.12, deps from scripts/ci/requirements.lock, Windows):

  • pre-commit run --files core/config.py core/providers/registry.py tests/test_futureinfra_provider.py (actionlint skipped, no workflow changes): all passed
  • pytest tests/test_futureinfra_provider.py tests/test_opper_provider.py tests/test_requesty_provider.py tests/test_forge_provider.py tests/test_provider_egress.py tests/test_bedrock_provider.py tests/test_provider_cli.py tests/test_provider_credentials.py tests/test_provider_protocols.py tests/test_config_layering.py tests/test_config_layers.py: 139 passed

Live call test not attached (no API key used).

Disclosure: this PR is submitted on behalf of FutureInfra, and the change was drafted with Claude Code. Happy to adjust anything to match project conventions, or to close it if a named provider is not wanted.

🤖 Generated with Claude Code

Add a FutureInfra ProviderSpec on the generic openai_compat gateway path, the matching ProviderConfig block, and tests pinning the wiring. Mirrors the Opper provider (HKUDS#242).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant