Skip to content

feat(minimax): add Flash-first MiniMax provider - #78

Open
octo-patch wants to merge 5 commits into
CaddyGlow:mainfrom
octo-patch:octo/20260730-provider-add-recvqdd3lCbhDV
Open

octo-patch wants to merge 5 commits into
CaddyGlow:mainfrom
octo-patch:octo/20260730-provider-add-recvqdd3lCbhDV

Conversation

@octo-patch

@octo-patch octo-patch commented Jul 30, 2026 •

Copy link
Copy Markdown

Reason: CCProxy needs a first-class MiniMax text provider with current model choices and lossless thinking/tool history. This adds the provider and makes MiniMax-M3.1-Flash the first catalog entry and the minimax alias target, followed by MiniMax-M3.

  • Configure global/CN endpoints and API-key authentication through the provider plugin. The built-in catalog includes current direct-API context, output and pricing metadata. Explicit legacy/custom model IDs, model mappings and model cards remain supported.
  • Keep Chat Completions on its existing transport. Route Flash/M3 Messages through the configured native Anthropic endpoint so effort settings, full assistant thinking/tool history, and image/video blocks survive unchanged. Legacy requests and existing custom OpenAI gateways retain format conversion unless a custom Anthropic endpoint is configured.
  • Follow the existing native-provider annotation pattern so FastAPI correctly recognizes the decorated Messages body and dependencies. Update configuration examples and document model-specific thinking defaults and restrictions.

Validation on Python 3.11.15 with lockfile-pinned dependencies:

  • 286 tests passed: python -m pytest tests/plugins/minimax tests/unit/services/adapters tests/unit/utils/test_model_mapper.py tests/unit/llms tests/unit/streaming -q --show-capture=no.
  • Includes 53 MiniMax tests, with real routes and adapters captured at an offline HTTP transport boundary: both regions, aliases and saved/custom models, effort/defaults, tool continuations, thinking history, image/video payload preservation, streaming and upstream validation errors.
  • Ruff 0.14.0 lint and format checks passed for ccproxy/plugins/minimax and tests/plugins/minimax; mypy 1.18.2 passed for all seven provider modules.
  • The editable package build and git diff --check passed. Runtime/test dependencies were installed from the frozen lockfile export with hash verification, in a credential-free environment.

No paid inference or live MiniMax account checks were performed. Regional account/model availability and custom gateway capabilities remain upstream concerns. The full repository suite and documentation build were not run; the relevant provider, transport, mapping, formatter and streaming regressions passed.

Remote CI for head 348ab3b05b1a8433862dd74a2bb16f2cbe32ebc1: Backend CI, Python CI, Documentation and CI are all action_required; no check results are available yet. Maintainer workflow approval is required before remote validation can complete.

Contract references: Messages API, model catalog, and pricing.

Add a first-class MiniMax provider plugin following the existing provider
plugin pattern (config, HTTP adapter, routes, model mappings, model cards).

- Static API-key (Bearer) authentication, no OAuth dependency
- Region selection (global_en / cn_zh) that resolves the OpenAI and
  Anthropic base URLs
- OpenAI-compatible /v1/chat/completions plus Anthropic-compatible
  /v1/messages via the core format chain, and /v1/models
- Default model cards and aliases for MiniMax-M3 and MiniMax-M2.7
- Register the plugin entry point and add unit tests
@octo-patch

Copy link
Copy Markdown
Author

I updated the MiniMax default model cards with the target context windows, per-million-token pricing, input modalities, and thinking modes, and pushed commit bc663e5. I ran the MiniMax unit tests (11 passed), Ruff checks and format checks, and targeted mypy.

@octo-patch

Copy link
Copy Markdown
Author

Follow-up: I fixed the MiniMax model-card construction so the extra metadata passes strict type checking, and pushed commit 511cb09. I ran the 11 MiniMax unit tests, targeted Ruff checks and format checks, targeted mypy, and git diff --check.

@octo-patch octo-patch changed the title feat(minimax): add MiniMax provider plugin feat(minimax): add Flash-first MiniMax provider Oct 20, 2026

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