mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-15 12:53:31 +08:00
feat(provider): upgrade minimax preset to MiniMax-M3
Add MiniMax-M3 as the new default for the minimax provider preset and remove deprecated M2.5/M2.1/M2 entries. MiniMax-M2.7 and the highspeed variant are kept for users who pinned the previous generation. Updated places: - providerPresets.json: default models -> M3, modelContextWindows trimmed - modelContextWindows.ts: built-in window list mirrors the new set - provider-presets / providers-real / thinking tests updated to assert the new default - .env.example and third-party docs (zh + en) recommend M3 - scripts/repro-issue-247-real.ts default model bumped to M3 Co-Authored-By: Octopus <liyuan851277048@icloud.com>
This commit is contained in:
parent
ebc78befbe
commit
709a792911
@ -2,14 +2,14 @@
|
||||
# MiniMax(直连 Anthropic 兼容接口)
|
||||
# 海外用户: ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
||||
# 国内用户: ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic
|
||||
# 可用模型: MiniMax-M2.7(默认)、MiniMax-M2.7-highspeed(更快)
|
||||
# 可用模型: MiniMax-M3(默认)、MiniMax-M2.7、MiniMax-M2.7-highspeed(更快)
|
||||
# ============================================================
|
||||
# ANTHROPIC_AUTH_TOKEN=your_minimax_api_key_here
|
||||
# ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
||||
# ANTHROPIC_MODEL=MiniMax-M2.7
|
||||
# ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7
|
||||
# ANTHROPIC_MODEL=MiniMax-M3
|
||||
# ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M3
|
||||
# ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
||||
# ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7
|
||||
# ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M3
|
||||
# API_TIMEOUT_MS=3000000
|
||||
|
||||
# ============================================================
|
||||
|
||||
@ -33,10 +33,10 @@ ANTHROPIC_AUTH_TOKEN=sk-xxx # Bearer token via Authorization header
|
||||
ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic
|
||||
|
||||
# Model configuration
|
||||
ANTHROPIC_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M3
|
||||
|
||||
# Timeout in milliseconds
|
||||
API_TIMEOUT_MS=3000000
|
||||
@ -53,7 +53,7 @@ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
||||
"env": {
|
||||
"ANTHROPIC_AUTH_TOKEN": "sk-xxx",
|
||||
"ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
|
||||
"ANTHROPIC_MODEL": "MiniMax-M2.7-highspeed"
|
||||
"ANTHROPIC_MODEL": "MiniMax-M3"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -176,17 +176,18 @@ MiniMax provides an Anthropic-compatible API endpoint and can be connected direc
|
||||
|
||||
| Model | Description |
|
||||
|-------|-------------|
|
||||
| `MiniMax-M2.7` | Default recommended, excellent overall performance |
|
||||
| `MiniMax-M3` | Default recommended, latest generation with excellent overall performance |
|
||||
| `MiniMax-M2.7` | Previous stable release |
|
||||
| `MiniMax-M2.7-highspeed` | Faster responses, suitable for latency-sensitive use cases |
|
||||
|
||||
```bash
|
||||
ANTHROPIC_AUTH_TOKEN=your_minimax_api_key_here
|
||||
# International users: api.minimax.io; China users may use api.minimaxi.com
|
||||
ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
||||
ANTHROPIC_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M3
|
||||
API_TIMEOUT_MS=3000000
|
||||
DISABLE_TELEMETRY=1
|
||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
||||
|
||||
@ -33,10 +33,10 @@ ANTHROPIC_AUTH_TOKEN=sk-xxx # Bearer Token(Authorization 头)
|
||||
ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic
|
||||
|
||||
# 模型配置
|
||||
ANTHROPIC_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M3
|
||||
|
||||
# 超时(毫秒)
|
||||
API_TIMEOUT_MS=3000000
|
||||
@ -53,7 +53,7 @@ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
||||
"env": {
|
||||
"ANTHROPIC_AUTH_TOKEN": "sk-xxx",
|
||||
"ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
|
||||
"ANTHROPIC_MODEL": "MiniMax-M2.7-highspeed"
|
||||
"ANTHROPIC_MODEL": "MiniMax-M3"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -176,17 +176,18 @@ MiniMax 提供 Anthropic 兼容接口,支持直接接入,无需代理。可
|
||||
|
||||
| 模型 | 说明 |
|
||||
|------|------|
|
||||
| `MiniMax-M2.7` | 默认推荐,综合性能优秀 |
|
||||
| `MiniMax-M3` | 默认推荐,最新一代综合性能优秀 |
|
||||
| `MiniMax-M2.7` | 上一代稳定版本 |
|
||||
| `MiniMax-M2.7-highspeed` | 响应更快,适合对速度有要求的场景 |
|
||||
|
||||
```bash
|
||||
ANTHROPIC_AUTH_TOKEN=your_minimax_api_key_here
|
||||
# 海外用户使用 api.minimax.io,国内用户可改为 api.minimaxi.com
|
||||
ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
||||
ANTHROPIC_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M3
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M3
|
||||
API_TIMEOUT_MS=3000000
|
||||
DISABLE_TELEMETRY=1
|
||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
||||
|
||||
@ -8,7 +8,7 @@ type ServerMsg = {
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
const modelId = process.env.REPRO_MODEL_ID || 'MiniMax-M2.7-highspeed'
|
||||
const modelId = process.env.REPRO_MODEL_ID || 'MiniMax-M3'
|
||||
const port = Number(process.env.REPRO_SERVER_PORT || 19747)
|
||||
const baseUrl = `http://127.0.0.1:${port}`
|
||||
const wsUrl = `ws://127.0.0.1:${port}`
|
||||
|
||||
@ -97,8 +97,8 @@ describe('provider presets API', () => {
|
||||
expect(kimi?.defaultModels.main).toBe('kimi-k2.6')
|
||||
expect(kimi?.defaultEnv?.CC_HAHA_SEND_DISABLED_THINKING).toBe('1')
|
||||
expect(minimax?.authStrategy).toBe('auth_token')
|
||||
expect(minimax?.defaultModels.main).toBe('MiniMax-M2.7')
|
||||
expect(minimax?.modelContextWindows?.['MiniMax-M2.7']).toBe(204800)
|
||||
expect(minimax?.defaultModels.main).toBe('MiniMax-M3')
|
||||
expect(minimax?.modelContextWindows?.['MiniMax-M3']).toBe(204800)
|
||||
expect(jiekouai?.baseUrl).toBe('https://api.jiekou.ai/anthropic')
|
||||
expect(jiekouai?.authStrategy).toBe('auth_token')
|
||||
expect(jiekouai?.defaultModels.main).toBe('claude-sonnet-4-6')
|
||||
|
||||
@ -11,10 +11,10 @@ import * as os from 'os'
|
||||
import { ProviderService } from '../services/providerService.js'
|
||||
|
||||
const MODEL_MAPPING = {
|
||||
main: 'MiniMax-M2.7-highspeed',
|
||||
haiku: 'MiniMax-M2.7-highspeed',
|
||||
sonnet: 'MiniMax-M2.7-highspeed',
|
||||
opus: 'MiniMax-M2.7-highspeed',
|
||||
main: 'MiniMax-M3',
|
||||
haiku: 'MiniMax-M3',
|
||||
sonnet: 'MiniMax-M3',
|
||||
opus: 'MiniMax-M3',
|
||||
}
|
||||
|
||||
describe('Real Provider Configs', () => {
|
||||
@ -68,8 +68,9 @@ describe('Real Provider Configs', () => {
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_BASE_URL).toBe('https://api.minimaxi.com/anthropic')
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_AUTH_TOKEN).toBe('sk-fake-test-key-for-testing-only')
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_API_KEY).toBe('')
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_MODEL).toBe('MiniMax-M2.7-highspeed')
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_MODEL).toBe('MiniMax-M3')
|
||||
expect(JSON.parse((settings.env as Record<string, string>).CLAUDE_CODE_MODEL_CONTEXT_WINDOWS)).toMatchObject({
|
||||
'MiniMax-M3': 204800,
|
||||
'MiniMax-M2.7': 204800,
|
||||
'MiniMax-M2.7-highspeed': 204800,
|
||||
})
|
||||
@ -107,6 +108,7 @@ describe('Real Provider Configs', () => {
|
||||
let settings = await readCcHahaSettings()
|
||||
expect((settings.env as Record<string, string>).ANTHROPIC_BASE_URL).toBe('https://api.minimaxi.com/anthropic')
|
||||
expect(JSON.parse((settings.env as Record<string, string>).CLAUDE_CODE_MODEL_CONTEXT_WINDOWS)).toMatchObject({
|
||||
'MiniMax-M3': 204800,
|
||||
'MiniMax-M2.7': 204800,
|
||||
'MiniMax-M2.7-highspeed': 204800,
|
||||
})
|
||||
@ -204,14 +206,14 @@ describe('Real Provider Configs', () => {
|
||||
const result = await service.testProviderConfig({
|
||||
baseUrl: 'https://api.minimaxi.com/anthropic',
|
||||
apiKey: 'sk-fake-test-key',
|
||||
modelId: 'MiniMax-M2.7-highspeed',
|
||||
modelId: 'MiniMax-M3',
|
||||
authStrategy: 'auth_token',
|
||||
})
|
||||
|
||||
// testProviderConfig 返回 { connectivity: { ... }, proxy?: { ... } }
|
||||
expect(result.connectivity).toBeDefined()
|
||||
expect(result.connectivity.latencyMs).toBeGreaterThanOrEqual(0)
|
||||
expect(result.connectivity.modelUsed).toBe('MiniMax-M2.7-highspeed')
|
||||
expect(result.connectivity.modelUsed).toBe('MiniMax-M3')
|
||||
|
||||
console.log('🔌 MiniMax 连通性测试结果:')
|
||||
console.log(' success:', result.connectivity.success)
|
||||
|
||||
@ -98,23 +98,19 @@
|
||||
"baseUrl": "https://api.minimaxi.com/anthropic",
|
||||
"apiFormat": "anthropic",
|
||||
"defaultModels": {
|
||||
"main": "MiniMax-M2.7",
|
||||
"haiku": "MiniMax-M2.7",
|
||||
"sonnet": "MiniMax-M2.7",
|
||||
"opus": "MiniMax-M2.7"
|
||||
"main": "MiniMax-M3",
|
||||
"haiku": "MiniMax-M3",
|
||||
"sonnet": "MiniMax-M3",
|
||||
"opus": "MiniMax-M3"
|
||||
},
|
||||
"needsApiKey": true,
|
||||
"websiteUrl": "https://platform.minimaxi.com",
|
||||
"apiKeyUrl": "https://platform.minimaxi.com/subscribe/token-plan?code=1TG2Cseab2&source=link",
|
||||
"authStrategy": "auth_token",
|
||||
"modelContextWindows": {
|
||||
"MiniMax-M3": 204800,
|
||||
"MiniMax-M2.7": 204800,
|
||||
"MiniMax-M2.7-highspeed": 204800,
|
||||
"MiniMax-M2.5": 204800,
|
||||
"MiniMax-M2.5-highspeed": 204800,
|
||||
"MiniMax-M2.1": 204800,
|
||||
"MiniMax-M2.1-highspeed": 204800,
|
||||
"MiniMax-M2": 204800
|
||||
"MiniMax-M2.7-highspeed": 204800
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@ -95,14 +95,14 @@ describe('provider-aware thinking support', () => {
|
||||
|
||||
test('MiniMax preset models declare thinking support without effort passthrough', () => {
|
||||
process.env.ANTHROPIC_BASE_URL = 'https://api.minimaxi.com/anthropic'
|
||||
process.env.ANTHROPIC_DEFAULT_SONNET_MODEL = 'MiniMax-M2.7'
|
||||
process.env.ANTHROPIC_DEFAULT_SONNET_MODEL = 'MiniMax-M3'
|
||||
delete process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES
|
||||
clearCapabilityCache()
|
||||
|
||||
expect(modelSupportsThinking('MiniMax-M2.7')).toBe(true)
|
||||
expect(modelSupportsAdaptiveThinking('MiniMax-M2.7')).toBe(false)
|
||||
expect(modelSupportsEffort('MiniMax-M2.7')).toBe(false)
|
||||
expect(modelSupportsMaxEffort('MiniMax-M2.7')).toBe(false)
|
||||
expect(modelSupportsThinking('MiniMax-M3')).toBe(true)
|
||||
expect(modelSupportsAdaptiveThinking('MiniMax-M3')).toBe(false)
|
||||
expect(modelSupportsEffort('MiniMax-M3')).toBe(false)
|
||||
expect(modelSupportsMaxEffort('MiniMax-M3')).toBe(false)
|
||||
})
|
||||
|
||||
test('third-party base URLs do not default unknown model names to effort support', () => {
|
||||
|
||||
@ -16,13 +16,9 @@ const DIRECT_MODEL_CONTEXT_WINDOWS: Record<string, number> = {
|
||||
'kimi-k2-turbo-preview': 262_144,
|
||||
'kimi-k2-thinking': 262_144,
|
||||
'kimi-k2-thinking-turbo': 262_144,
|
||||
'minimax-m3': 204_800,
|
||||
'minimax-m2.7': 204_800,
|
||||
'minimax-m2.7-highspeed': 204_800,
|
||||
'minimax-m2.5': 204_800,
|
||||
'minimax-m2.5-highspeed': 204_800,
|
||||
'minimax-m2.1': 204_800,
|
||||
'minimax-m2.1-highspeed': 204_800,
|
||||
'minimax-m2': 204_800,
|
||||
'glm-5.1': 200_000,
|
||||
'glm-5': 200_000,
|
||||
'glm-5-turbo': 200_000,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user