MCPcopy
hub / github.com/the-open-agent/openagent / FetchProviderModels

Method FetchProviderModels

controllers/provider.go:208–257  ·  view source on GitHub ↗

FetchProviderModels @Title FetchProviderModels @Tag Provider API @Description fetch provider models @Param body body object.Provider true "The details of the provider" @Success 200 {array} string The Response object @router /fetch-provider-models [post]

()

Source from the content-addressed store, hash-verified

206// @Success 200 {array} string The Response object
207// @router /fetch-provider-models [post]
208func (c *ApiController) FetchProviderModels() {
209 if !c.RequireAdmin() {
210 return
211 }
212
213 var provider object.Provider
214 err := json.Unmarshal(c.Ctx.Input.RequestBody, &provider)
215 if err != nil {
216 c.ResponseError(err.Error())
217 return
218 }
219
220 if provider.ClientSecret == "***" || provider.ExternalApiKey == "***" {
221 dbProvider, err := object.GetProvider(fmt.Sprintf("%s/%s", provider.Owner, provider.Name))
222 if err == nil && dbProvider != nil {
223 if provider.ClientSecret == "***" {
224 provider.ClientSecret = dbProvider.ClientSecret
225 }
226 if provider.ExternalApiKey == "***" {
227 provider.ExternalApiKey = dbProvider.ExternalApiKey
228 }
229 }
230 }
231
232 secretKey := provider.ClientSecret
233 if secretKey == "" {
234 secretKey = provider.ExternalApiKey
235 }
236
237 url := provider.ProviderUrl
238
239 p, err := model.GetModelProvider(provider.Type, provider.SubType, provider.ClientId, secretKey, provider.UserKey, 0, 0, 0, 0, 0, url, provider.ApiVersion, provider.CompatibleProvider, 0, 0, "", false)
240 if err != nil {
241 c.ResponseError(err.Error())
242 return
243 }
244
245 if p == nil {
246 c.ResponseOk([]string{})
247 return
248 }
249
250 models, err := p.ListModels()
251 if err != nil {
252 c.ResponseError(err.Error())
253 return
254 }
255
256 c.ResponseOk(models)
257}

Callers

nothing calls this directly

Calls 7

RequireAdminMethod · 0.95
ResponseErrorMethod · 0.95
ResponseOkMethod · 0.95
GetProviderFunction · 0.92
GetModelProviderFunction · 0.92
ErrorMethod · 0.80
ListModelsMethod · 0.65

Tested by

no test coverage detected