sync: migrate ai-operator to Gitea (2026-08-10)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package embedding
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"ai-operator/internal/config"
|
||||
)
|
||||
|
||||
type Vector []float32
|
||||
|
||||
type Provider interface {
|
||||
Embed(ctx context.Context, input []string) ([]Vector, error)
|
||||
Dimensions() int
|
||||
Model() string
|
||||
ProviderName() string
|
||||
}
|
||||
|
||||
func NewProvider(cfg config.Config, override string) (Provider, error) {
|
||||
name := cfg.Embedding.Provider
|
||||
if override != "" {
|
||||
name = override
|
||||
}
|
||||
switch name {
|
||||
case "fake":
|
||||
return NewFakeProvider(cfg.Embedding.Dimensions, cfg.Embedding.Model), nil
|
||||
case "openai":
|
||||
if cfg.OpenAI.APIKey == "" {
|
||||
return nil, fmt.Errorf("OPENAI_API_KEY is required for openai embedding provider")
|
||||
}
|
||||
return NewOpenAIProvider(cfg.OpenAI.APIKey, cfg.Embedding.Model, cfg.Embedding.Dimensions), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown embedding provider: %s", name)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user