Add support for creating online models and integrating custom model providers

This commit is contained in:
sunanzhi
2025-03-06 17:42:17 +08:00
parent 0aa526b6d4
commit eca864a80b
53 changed files with 1796 additions and 33 deletions
+4
View File
@@ -19,6 +19,10 @@ func (p *plugin) aiAPIs() []pm3.Api {
pm3.CreateApiWidthDoc(http.MethodGet, "/api/v1/ai/provider/llms", []string{"context", "query:provider"}, []string{"llms", "provider"}, p.aiProviderController.LLMs),
pm3.CreateApiWidthDoc(http.MethodDelete, "/api/v1/ai/provider", []string{"context", "query:provider"}, nil, p.aiProviderController.Delete),
pm3.CreateApiWidthDoc(http.MethodPut, "/api/v1/ai/provider/config", []string{"context", "query:provider", "body"}, nil, p.aiProviderController.UpdateProviderConfig, access.SystemSettingsAiProviderManager),
pm3.CreateApiWidthDoc(http.MethodPost, "/api/v1/ai/provider", []string{"context", "body"}, []string{"provider"}, p.aiProviderController.AddProvider, access.SystemSettingsAiProviderManager),
pm3.CreateApiWidthDoc(http.MethodPost, "/api/v1/ai/provider/model", []string{"context", "query:provider", "body"}, []string{"model"}, p.aiProviderModelController.AddProviderModel, access.SystemSettingsAiProviderManager),
pm3.CreateApiWidthDoc(http.MethodPut, "/api/v1/ai/provider/model", []string{"context", "query:provider", "body"}, nil, p.aiProviderModelController.UpdateProviderModel, access.SystemSettingsAiProviderManager),
pm3.CreateApiWidthDoc(http.MethodDelete, "/api/v1/ai/provider/model", []string{"context", "query:provider", "query:id"}, nil, p.aiProviderModelController.DeleteProviderModel, access.SystemSettingsAiProviderManager),
pm3.CreateApiWidthDoc(http.MethodGet, "/api/v1/ai/apis", []string{"context", "query:keyword", "query:provider", "query:start", "query:end", "query:page", "query:page_size", "query:sort", "query:asc", "query:models", "query:services"}, []string{"apis", "condition", "total"}, p.aiStatisticController.APIs),
}
+2
View File
@@ -1,6 +1,7 @@
package core
import (
ai_model "github.com/APIParkLab/APIPark/controller/ai-model"
"net/http"
ai_balance "github.com/APIParkLab/APIPark/controller/ai-balance"
@@ -97,6 +98,7 @@ type plugin struct {
exportConfigController system.IExportConfigController `autowired:""`
importConfigController system.IImportConfigController `autowired:""`
aiProviderController ai.IProviderController `autowired:""`
aiProviderModelController ai_model.IProviderModelController `autowired:""`
settingController system.ISettingController `autowired:""`
initController system.IInitController `autowired:""`
logController log.ILogController `autowired:""`