(ctx context.Context, providers []database.AIProvider)
| 6660 | } |
| 6661 | |
| 6662 | func (api *API) configuredProvidersFromAIProviders(ctx context.Context, providers []database.AIProvider) ([]chatprovider.ConfiguredProvider, error) { |
| 6663 | if len(providers) == 0 { |
| 6664 | return nil, nil |
| 6665 | } |
| 6666 | providerIDs := make([]uuid.UUID, 0, len(providers)) |
| 6667 | for _, provider := range providers { |
| 6668 | providerIDs = append(providerIDs, provider.ID) |
| 6669 | } |
| 6670 | keys, err := api.Database.GetAIProviderKeysByProviderIDs(ctx, providerIDs) |
| 6671 | if err != nil { |
| 6672 | return nil, xerrors.Errorf("get AI provider keys: %w", err) |
| 6673 | } |
| 6674 | keysByProviderID := make(map[uuid.UUID][]database.AIProviderKey, len(providers)) |
| 6675 | for _, key := range keys { |
| 6676 | keysByProviderID[key.ProviderID] = append(keysByProviderID[key.ProviderID], key) |
| 6677 | } |
| 6678 | configuredProviders := make([]chatprovider.ConfiguredProvider, 0, len(providers)) |
| 6679 | for _, provider := range providers { |
| 6680 | configuredProviders = append(configuredProviders, api.configuredProviderFromAIProviderKeys(provider, keysByProviderID[provider.ID])) |
| 6681 | } |
| 6682 | return configuredProviders, nil |
| 6683 | } |
| 6684 | |
| 6685 | func (api *API) configuredProviderFromAIProviderKeys(provider database.AIProvider, keys []database.AIProviderKey) chatprovider.ConfiguredProvider { |
| 6686 | apiKey := "" |
no test coverage detected