Skip to content

feat: add MiniMax provider support#506

Open
octo-patch wants to merge 1 commit intoNVIDIA-NeMo:mainfrom
octo-patch:feature/add-minimax-provider
Open

feat: add MiniMax provider support#506
octo-patch wants to merge 1 commit intoNVIDIA-NeMo:mainfrom
octo-patch:feature/add-minimax-provider

Conversation

@octo-patch
Copy link
Copy Markdown

Summary

This PR adds MiniMax as a predefined model provider in DataDesigner, allowing users to generate synthetic data using MiniMax's chat models via the OpenAI-compatible API.

Changes

  • Add MiniMax as a predefined provider with endpoint https://api.minimax.io/v1
  • Add MINIMAX_API_KEY environment variable support
  • Register MiniMax-M2.7 as the default text model
  • Register MiniMax-M2.7-highspeed as the reasoning model
  • Add unit tests for the new provider and model configurations

Usage

After setting MINIMAX_API_KEY, users can generate datasets using MiniMax:

import data_designer as dd

config = dd.DataDesignerConfig(
    model_configs=[dd.ModelConfig(alias="text", model="MiniMax-M2.7", provider="minimax")],
)

Or using the built-in alias:

import data_designer as dd

dd.DataDesigner(provider="minimax")

API Reference

- Add MiniMax as a predefined model provider with OpenAI-compatible endpoint (https://api.minimax.io/v1)
- Add MINIMAX_API_KEY environment variable support
- Register MiniMax-M2.7 as the default text model and MiniMax-M2.7-highspeed as the reasoning model
- Add unit tests for the new provider and model configurations
@octo-patch octo-patch requested a review from a team as a code owner April 7, 2026 20:47
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

Thank you for your submission! We ask that you sign our Developer Certificate of Origin before we can accept your contribution. You can sign the DCO by adding a comment below using this text:


I have read the DCO document and I hereby sign the DCO.


octo-patch seems not to be a GitHub user. You need a GitHub account to be able to sign the DCO. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the DCO Assistant Lite bot.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 7, 2026

Greptile Summary

This PR registers MiniMax as a fourth predefined model provider in DataDesigner, wiring in the endpoint (https://api.minimax.io/v1), MINIMAX_API_KEY env var, and model map entries for two roles (MiniMax-M2.7 as text and MiniMax-M2.7-highspeed as reasoning), all backed by tests.

Confidence Score: 5/5

Safe to merge; both findings are P2 tooling/style gaps with no runtime impact

The core provider registration path (constants, model map, provider list) is correct and tested. The two findings — health-check script omission and shared inference params — do not affect runtime behaviour of the provider, keeping confidence at 5.

scripts/health_checks.py (not in changeset) should be updated to include MINIMAX_PROVIDER_NAME in PROVIDER_API_KEY_ENV_VARS

Important Files Changed

Filename Overview
packages/data-designer-config/src/data_designer/config/utils/constants.py Adds MiniMax provider constants and model map entries; identical inference params shared across text and reasoning roles deviates from project pattern
packages/data-designer-config/tests/config/test_default_model_settings.py Adds correct assertions for 2 new MiniMax model configs and the new MiniMax provider; count-based assertions updated to 14 and 4 respectively

Sequence Diagram

sequenceDiagram
    actor User
    participant DD as DataDesigner
    participant Config as data_designer.config
    participant Engine as data_designer.engine
    participant MiniMax as MiniMax API<br/>(api.minimax.io/v1)

    User->>DD: DataDesigner(provider="minimax")
    DD->>Config: resolve PREDEFINED_PROVIDERS
    Config-->>DD: ModelProvider(endpoint, api_key=MINIMAX_API_KEY)
    DD->>Engine: build column generation DAG
    Engine->>Config: lookup PREDEFINED_PROVIDERS_MODEL_MAP["minimax"][alias]
    Config-->>Engine: {model, inference_parameters}
    Engine->>MiniMax: POST /v1/chat/completions
    MiniMax-->>Engine: completion response
    Engine-->>DD: generated column values
    DD-->>User: DataDesignerResults
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: packages/data-designer-config/src/data_designer/config/utils/constants.py
Line: 372-381

Comment:
**Health-check script not updated for MiniMax**

`scripts/health_checks.py` maintains `PROVIDER_API_KEY_ENV_VARS`, which maps each predefined provider to its API key env var so the script knows which providers to exercise. MiniMax is absent from that dict, so the health-check script will silently skip MiniMax regardless of whether `MINIMAX_API_KEY` is set — meaning `MiniMax-M2.7` and `MiniMax-M2.7-highspeed` are never validated there. Every other provider added to `PREDEFINED_PROVIDERS_MODEL_MAP` has a corresponding entry in that dict.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: packages/data-designer-config/src/data_designer/config/utils/constants.py
Line: 339

Comment:
**Same inference params used for both text and reasoning roles**

`MINIMAX_INFERENCE_PARAMS = {"temperature": 1.0}` is reused for both `MiniMax-M2.7` (text) and `MiniMax-M2.7-highspeed` (reasoning). Every other provider uses a lower temperature for the reasoning role (e.g., `0.35`) and a separate constant. Running a reasoning-aliased model at `temperature=1.0` with no `top_p` bound will produce higher output variance than the project default for structured-generation tasks. Consider splitting into `MINIMAX_TEXT_INFERENCE_PARAMS` and `MINIMAX_REASONING_INFERENCE_PARAMS` to follow the established pattern.

```suggestion
MINIMAX_TEXT_INFERENCE_PARAMS = {"temperature": 1.0}
MINIMAX_REASONING_INFERENCE_PARAMS = {"temperature": 0.35, "top_p": 0.95}
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "feat: add MiniMax provider support" | Re-trigger Greptile

Comment on lines +372 to +381
MINIMAX_PROVIDER_NAME: {
"text": {
"model": "MiniMax-M2.7",
"inference_parameters": MINIMAX_INFERENCE_PARAMS,
},
"reasoning": {
"model": "MiniMax-M2.7-highspeed",
"inference_parameters": MINIMAX_INFERENCE_PARAMS,
},
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Health-check script not updated for MiniMax

scripts/health_checks.py maintains PROVIDER_API_KEY_ENV_VARS, which maps each predefined provider to its API key env var so the script knows which providers to exercise. MiniMax is absent from that dict, so the health-check script will silently skip MiniMax regardless of whether MINIMAX_API_KEY is set — meaning MiniMax-M2.7 and MiniMax-M2.7-highspeed are never validated there. Every other provider added to PREDEFINED_PROVIDERS_MODEL_MAP has a corresponding entry in that dict.

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/data-designer-config/src/data_designer/config/utils/constants.py
Line: 372-381

Comment:
**Health-check script not updated for MiniMax**

`scripts/health_checks.py` maintains `PROVIDER_API_KEY_ENV_VARS`, which maps each predefined provider to its API key env var so the script knows which providers to exercise. MiniMax is absent from that dict, so the health-check script will silently skip MiniMax regardless of whether `MINIMAX_API_KEY` is set — meaning `MiniMax-M2.7` and `MiniMax-M2.7-highspeed` are never validated there. Every other provider added to `PREDEFINED_PROVIDERS_MODEL_MAP` has a corresponding entry in that dict.

How can I resolve this? If you propose a fix, please make it concise.

@github-actions
Copy link
Copy Markdown
Contributor

Stale PR reminder

This PR has had failing checks for 7 days without activity.

Failing checks: DCOAssistant

Please push an update or leave a comment if you're still working on this.
Otherwise, this PR will be automatically closed in 7 days.

To prevent auto-close, add the keep-open label.

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