feat: add API endpoint to retrieve model configuration template

Introduce a new interface for fetching model configuration templates to enhance model management flexibility.
This commit is contained in:
sunanzhi
2025-03-07 11:15:49 +08:00
parent 8e4a3fc42b
commit bc16d7f5ce
7 changed files with 39 additions and 6 deletions
+7
View File
@@ -4,3 +4,10 @@ type SimpleModel struct {
Id string `json:"id"`
Name string `json:"name"`
}
type ModelParametersTemplate struct {
Id string `json:"id"`
ProviderName string `json:"provider_name"`
ModelName string `json:"model_name"`
ModelParameters string `json:"model_parameters"`
}
+23 -3
View File
@@ -8,6 +8,7 @@ import (
ai_model "github.com/APIParkLab/APIPark/service/ai-model"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
"slices"
"github.com/eolinker/go-common/store"
)
@@ -22,7 +23,26 @@ type imlProviderModelModule struct {
transaction store.ITransaction `autowired:""`
}
func (i imlProviderModelModule) UpdateProviderModel(ctx *gin.Context, provider string, input *model_dto.EditModel) error {
func (i *imlProviderModelModule) GetModelParametersTemplate(ctx *gin.Context) ([]*model_dto.ModelParametersTemplate, error) {
templates := make([]*model_dto.ModelParametersTemplate, 0)
providerNames := []string{"openai", "google", "anthropic", "deepseek", "tongyi"}
providers := model_runtime.Providers()
for _, provider := range providers {
if slices.Contains(providerNames, provider.ID()) {
defaultModel, _ := provider.DefaultModel(model_runtime.ModelTypeLLM)
templates = append(templates, &model_dto.ModelParametersTemplate{
Id: provider.ID(),
ProviderName: provider.Name(),
ModelName: defaultModel.Name(),
ModelParameters: defaultModel.DefaultConfig(),
})
}
}
return templates, nil
}
func (i *imlProviderModelModule) UpdateProviderModel(ctx *gin.Context, provider string, input *model_dto.EditModel) error {
p, has := model_runtime.GetProvider(provider)
if !has {
return fmt.Errorf("ai provider not found")
@@ -57,7 +77,7 @@ func (i imlProviderModelModule) UpdateProviderModel(ctx *gin.Context, provider s
return nil
}
func (i imlProviderModelModule) DeleteProviderModel(ctx *gin.Context, provider string, id string) error {
func (i *imlProviderModelModule) DeleteProviderModel(ctx *gin.Context, provider string, id string) error {
// check provider exist
providerInfo, err := i.providerService.Get(ctx, provider)
if err != nil {
@@ -73,7 +93,7 @@ func (i imlProviderModelModule) DeleteProviderModel(ctx *gin.Context, provider s
return i.providerModelService.Delete(ctx, id)
}
func (i imlProviderModelModule) AddProviderModel(ctx *gin.Context, provider string, input *model_dto.Model) (*model_dto.SimpleModel, error) {
func (i *imlProviderModelModule) AddProviderModel(ctx *gin.Context, provider string, input *model_dto.Model) (*model_dto.SimpleModel, error) {
p, has := model_runtime.GetProvider(provider)
if !has {
return nil, fmt.Errorf("ai provider not found")
+1
View File
@@ -12,6 +12,7 @@ type IProviderModelModule interface {
AddProviderModel(ctx *gin.Context, provider string, input *model_dto.Model) (*model_dto.SimpleModel, error)
UpdateProviderModel(ctx *gin.Context, provider string, input *model_dto.EditModel) error
DeleteProviderModel(ctx *gin.Context, provider string, id string) error
GetModelParametersTemplate(ctx *gin.Context) ([]*model_dto.ModelParametersTemplate, error)
}
func init() {