createAutoEmbeddingModel creates an auto-detected embedding model.
(ctx context.Context, buildCtx BuildContext)
| 73 | |
| 74 | // createAutoEmbeddingModel creates an auto-detected embedding model. |
| 75 | func createAutoEmbeddingModel(ctx context.Context, buildCtx BuildContext) (provider.Provider, error) { |
| 76 | var lastErr error |
| 77 | |
| 78 | for _, autoModelCfg := range config.AutoEmbeddingModelConfigs() { |
| 79 | modelCfg := latest.ModelConfig{ |
| 80 | Provider: autoModelCfg.Provider, |
| 81 | Model: autoModelCfg.Model, |
| 82 | } |
| 83 | |
| 84 | model, err := buildCtx.NewProvider(ctx, &modelCfg) |
| 85 | if err != nil { |
| 86 | lastErr = err |
| 87 | continue |
| 88 | } |
| 89 | |
| 90 | return model, nil |
| 91 | } |
| 92 | |
| 93 | if lastErr == nil { |
| 94 | return nil, errors.New("failed to create auto embedding model: no candidates configured") |
| 95 | } |
| 96 | |
| 97 | return nil, fmt.Errorf("failed to create auto embedding model: %w", lastErr) |
| 98 | } |
| 99 | |
| 100 | // CreateEmbedder creates an embedder with the specified configuration. |
| 101 | func CreateEmbedder(embedModel provider.Provider, batchSize, maxConcurrency int) *embed.Embedder { |
no test coverage detected