29 lines
622 B
Go
29 lines
622 B
Go
package embedding
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/cloudwego/eino-ext/components/embedding/openai"
|
|
"github.com/cloudwego/eino/components/embedding"
|
|
)
|
|
|
|
type Embedder struct {
|
|
impl embedding.Embedder
|
|
}
|
|
|
|
func NewEmbedder(ctx context.Context, apiKey, baseURL, model string) (*Embedder, error) {
|
|
impl, err := openai.NewEmbedder(ctx, &openai.EmbeddingConfig{
|
|
APIKey: apiKey,
|
|
BaseURL: baseURL,
|
|
Model: model,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Embedder{impl: impl}, nil
|
|
}
|
|
|
|
func (e *Embedder) Embed(ctx context.Context, texts []string) ([][]float64, error) {
|
|
return e.impl.EmbedStrings(ctx, texts)
|
|
}
|