mirror of
https://github.com/RightNow-AI/openfang.git
synced 2026-07-30 06:32:17 +00:00
feat: add MiniMax-M2.7 as new flagship model and update default alias
- Add MiniMax-M2.7 model entry (Frontier tier, 1M context, vision+tools) - Update default 'minimax' alias to resolve to MiniMax-M2.7 - Add 'minimax-m2.7' alias for explicit model selection - Add M2.7 pricing in metering (same as M2.5: $1.10/$4.40 per 1M tokens) - Update model catalog tests for M2.7 as new default - Increment MiniMax model count from 6 to 7
This commit is contained in:
@@ -393,6 +393,9 @@ fn estimate_cost_rates(model: &str) -> (f64, f64) {
|
||||
|
||||
// ── MiniMax ──────────────────────────────────────────────────
|
||||
if model.contains("minimax") || model.contains("abab") {
|
||||
if model.contains("m2.7") {
|
||||
return (1.10, 4.40);
|
||||
}
|
||||
if model.contains("highspeed") {
|
||||
return (0.80, 3.20);
|
||||
}
|
||||
|
||||
@@ -849,7 +849,8 @@ fn builtin_aliases() -> HashMap<String, String> {
|
||||
("ernie", "ernie-4.5-8k"),
|
||||
("kimi", "kimi-k2"),
|
||||
("moonshot", "moonshot-v1-128k"),
|
||||
("minimax", "MiniMax-M2.5"),
|
||||
("minimax", "MiniMax-M2.7"),
|
||||
("minimax-m2.7", "MiniMax-M2.7"),
|
||||
("minimax-m2.5", "MiniMax-M2.5"),
|
||||
("minimax-m2.5-highspeed", "MiniMax-M2.5-highspeed"),
|
||||
("minimax-highspeed", "MiniMax-M2.5-highspeed"),
|
||||
@@ -3010,8 +3011,22 @@ fn builtin_models() -> Vec<ModelCatalogEntry> {
|
||||
aliases: vec![],
|
||||
},
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
// MiniMax (6)
|
||||
// MiniMax (7)
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
ModelCatalogEntry {
|
||||
id: "MiniMax-M2.7".into(),
|
||||
display_name: "MiniMax M2.7".into(),
|
||||
provider: "minimax".into(),
|
||||
tier: ModelTier::Frontier,
|
||||
context_window: 1_048_576,
|
||||
max_output_tokens: 16_384,
|
||||
input_cost_per_m: 1.10,
|
||||
output_cost_per_m: 4.40,
|
||||
supports_tools: true,
|
||||
supports_vision: true,
|
||||
supports_streaming: true,
|
||||
aliases: vec!["minimax-m2.7".into()],
|
||||
},
|
||||
ModelCatalogEntry {
|
||||
id: "minimax-text-01".into(),
|
||||
display_name: "MiniMax Text 01".into(),
|
||||
@@ -3024,7 +3039,7 @@ fn builtin_models() -> Vec<ModelCatalogEntry> {
|
||||
supports_tools: true,
|
||||
supports_vision: false,
|
||||
supports_streaming: true,
|
||||
aliases: vec!["minimax".into()],
|
||||
aliases: vec![],
|
||||
},
|
||||
ModelCatalogEntry {
|
||||
id: "MiniMax-M2.5".into(),
|
||||
@@ -4043,14 +4058,21 @@ mod tests {
|
||||
assert!(catalog.find_model("codegeex").is_some());
|
||||
assert!(catalog.find_model("ernie").is_some());
|
||||
assert!(catalog.find_model("minimax").is_some());
|
||||
// MiniMax M2.7 — new flagship model
|
||||
let m27 = catalog.find_model("MiniMax-M2.7").unwrap();
|
||||
assert_eq!(m27.provider, "minimax");
|
||||
assert_eq!(m27.tier, ModelTier::Frontier);
|
||||
assert!(m27.supports_vision);
|
||||
assert!(m27.supports_tools);
|
||||
assert!(catalog.find_model("minimax-m2.7").is_some());
|
||||
// Default "minimax" alias now points to M2.7
|
||||
let default = catalog.find_model("minimax").unwrap();
|
||||
assert_eq!(default.id, "MiniMax-M2.7");
|
||||
// MiniMax M2.5 — by exact ID, alias, and case-insensitive
|
||||
let m25 = catalog.find_model("MiniMax-M2.5").unwrap();
|
||||
assert_eq!(m25.provider, "minimax");
|
||||
assert_eq!(m25.tier, ModelTier::Frontier);
|
||||
assert!(catalog.find_model("minimax-m2.5").is_some());
|
||||
// Default "minimax" alias now points to M2.5
|
||||
let default = catalog.find_model("minimax").unwrap();
|
||||
assert_eq!(default.id, "MiniMax-M2.5");
|
||||
// MiniMax M2.5 Highspeed — by exact ID and aliases
|
||||
let hs = catalog.find_model("MiniMax-M2.5-highspeed").unwrap();
|
||||
assert_eq!(hs.provider, "minimax");
|
||||
|
||||
Reference in New Issue
Block a user