From 9e9a83c20dbc47e318bb61e4706bbded14ae7945 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:06:25 +0800 Subject: [PATCH] feat: add MiniMax provider models --- backend/biz/setting/usecase/model.go | 3 ++- backend/biz/setting/usecase/model_test.go | 30 +++++++++++++++++++++++ backend/consts/model.go | 1 + backend/docs/swagger.json | 6 ++++- backend/domain/model.go | 9 ++++++- frontend/src/api/Api.ts | 2 ++ 6 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 backend/biz/setting/usecase/model_test.go diff --git a/backend/biz/setting/usecase/model.go b/backend/biz/setting/usecase/model.go index 716eb5fbb..18945e0e5 100644 --- a/backend/biz/setting/usecase/model.go +++ b/backend/biz/setting/usecase/model.go @@ -193,7 +193,8 @@ func (u *modelUsecase) CheckByConfig(ctx context.Context, req *domain.CheckByCon func (u *modelUsecase) GetProviderModelList(ctx context.Context, req *domain.GetProviderModelListReq) (*domain.GetProviderModelListResp, error) { switch req.Provider { case consts.ModelProviderAzureOpenAI, - consts.ModelProviderVolcengine: + consts.ModelProviderVolcengine, + consts.ModelProviderMiniMax: return &domain.GetProviderModelListResp{ Models: domain.ModelProviderBrandModelsList[req.Provider], }, nil diff --git a/backend/biz/setting/usecase/model_test.go b/backend/biz/setting/usecase/model_test.go new file mode 100644 index 000000000..73cb18090 --- /dev/null +++ b/backend/biz/setting/usecase/model_test.go @@ -0,0 +1,30 @@ +package usecase + +import ( + "context" + "testing" + + "github.com/chaitin/MonkeyCode/backend/consts" + "github.com/chaitin/MonkeyCode/backend/domain" +) + +func TestGetProviderModelListMiniMax(t *testing.T) { + usecase := &modelUsecase{} + + resp, err := usecase.GetProviderModelList(context.Background(), &domain.GetProviderModelListReq{ + Provider: consts.ModelProviderMiniMax, + }) + if err != nil { + t.Fatalf("GetProviderModelList() error = %v", err) + } + + want := []string{"MiniMax-M3", "MiniMax-M2.7", "MiniMax-M2.5", "MiniMax-M2.1", "MiniMax-M2"} + if len(resp.Models) != len(want) { + t.Fatalf("model count = %d, want %d", len(resp.Models), len(want)) + } + for i, model := range resp.Models { + if model.Model != want[i] { + t.Fatalf("model %d = %q, want %q", i, model.Model, want[i]) + } + } +} diff --git a/backend/consts/model.go b/backend/consts/model.go index 222c89311..a6c245077 100644 --- a/backend/consts/model.go +++ b/backend/consts/model.go @@ -18,6 +18,7 @@ const ( ModelProviderMoonshot ModelProvider = "Moonshot" ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI" ModelProviderBaiZhiCloud ModelProvider = "BaiZhiCloud" + ModelProviderMiniMax ModelProvider = "MiniMax" ModelProviderHunyuan ModelProvider = "Hunyuan" ModelProviderBaiLian ModelProvider = "BaiLian" ModelProviderVolcengine ModelProvider = "Volcengine" diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index c39d7000e..4e878547a 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -6748,6 +6748,7 @@ "Moonshot", "AzureOpenAI", "BaiZhiCloud", + "MiniMax", "Hunyuan", "BaiLian", "Volcengine", @@ -6762,6 +6763,7 @@ "ModelProviderMoonshot", "ModelProviderAzureOpenAI", "ModelProviderBaiZhiCloud", + "ModelProviderMiniMax", "ModelProviderHunyuan", "ModelProviderBaiLian", "ModelProviderVolcengine", @@ -9768,6 +9770,7 @@ "Moonshot", "AzureOpenAI", "BaiZhiCloud", + "MiniMax", "Hunyuan", "BaiLian", "Volcengine", @@ -9781,6 +9784,7 @@ "ModelProviderMoonshot", "ModelProviderAzureOpenAI", "ModelProviderBaiZhiCloud", + "ModelProviderMiniMax", "ModelProviderHunyuan", "ModelProviderBaiLian", "ModelProviderVolcengine", @@ -14622,4 +14626,4 @@ } } } -} \ No newline at end of file +} diff --git a/backend/domain/model.go b/backend/domain/model.go index 44aec48ce..146cfdf70 100644 --- a/backend/domain/model.go +++ b/backend/domain/model.go @@ -261,7 +261,7 @@ type UpdateModelReq struct { } type GetProviderModelListReq struct { - Provider consts.ModelProvider `json:"provider" query:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud Hunyuan BaiLian Volcengine Gemini Other"` + Provider consts.ModelProvider `json:"provider" query:"provider" validate:"required,oneof=SiliconFlow OpenAI Ollama DeepSeek Moonshot AzureOpenAI BaiZhiCloud MiniMax Hunyuan BaiLian Volcengine Gemini Other"` BaseURL string `json:"base_url" query:"base_url" validate:"required"` APIKey string `json:"api_key" query:"api_key" validate:"required"` APIHeader string `json:"api_header" query:"api_header"` @@ -326,4 +326,11 @@ var ModelProviderBrandModelsList = map[consts.ModelProvider][]ProviderModelListI {Model: "doubao-1.5-thinking-vision-pro-250428"}, {Model: "deepseek-r1-250528"}, }, + consts.ModelProviderMiniMax: { + {Model: "MiniMax-M3"}, + {Model: "MiniMax-M2.7"}, + {Model: "MiniMax-M2.5"}, + {Model: "MiniMax-M2.1"}, + {Model: "MiniMax-M2"}, + }, } diff --git a/frontend/src/api/Api.ts b/frontend/src/api/Api.ts index 02aef416f..5e22ce089 100644 --- a/frontend/src/api/Api.ts +++ b/frontend/src/api/Api.ts @@ -45,6 +45,7 @@ export enum ConstsModelProvider { ModelProviderMoonshot = "Moonshot", ModelProviderAzureOpenAI = "AzureOpenAI", ModelProviderBaiZhiCloud = "BaiZhiCloud", + ModelProviderMiniMax = "MiniMax", ModelProviderHunyuan = "Hunyuan", ModelProviderBaiLian = "BaiLian", ModelProviderVolcengine = "Volcengine", @@ -6427,6 +6428,7 @@ export class Api extends HttpClient