MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / UnConfiguredProviders

Method UnConfiguredProviders

module/ai/iml.go:415–457  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

413}
414
415func (i *imlProviderModule) UnConfiguredProviders(ctx context.Context) ([]*ai_dto.ProviderItem, error) {
416 list, err := i.providerService.List(ctx)
417 if err != nil {
418 return nil, err
419 }
420 providers := model_runtime.Providers()
421 providerMap := utils.SliceToMap(list, func(e *ai.Provider) string {
422 return e.Id
423 })
424 items := make([]*ai_dto.ProviderItem, 0, len(providers))
425 for _, v := range providers {
426 if _, has := providerMap[v.ID()]; has {
427 // 已配置,跳过
428 continue
429 }
430 defaultLLMID := ""
431 defaultLLM, _ := v.DefaultModel(model_runtime.ModelTypeLLM)
432 if defaultLLM != nil {
433 defaultLLMID = defaultLLM.ID()
434 }
435 item := &ai_dto.ProviderItem{
436 Id: v.ID(),
437 Name: v.Name(),
438 Logo: v.Logo(),
439 DefaultLLM: defaultLLMID,
440 Sort: v.Sort(),
441 }
442 items = append(items, item)
443 }
444 sort.Slice(items, func(i, j int) bool {
445 if items[i].Sort != items[j].Sort {
446 if items[i].Sort == 0 {
447 return false
448 }
449 if items[j].Sort == 0 {
450 return true
451 }
452 return items[i].Sort < items[j].Sort
453 }
454 return items[i].Name < items[j].Name
455 })
456 return items, nil
457}
458
459func (i *imlProviderModule) Provider(ctx context.Context, id string) (*ai_dto.Provider, error) {
460 p, has := model_runtime.GetProvider(id)

Callers

nothing calls this directly

Calls 6

ListMethod · 0.65
IDMethod · 0.65
DefaultModelMethod · 0.65
NameMethod · 0.65
LogoMethod · 0.65
SortMethod · 0.65

Tested by

no test coverage detected