feat: add OpenAI embedding wrapper and in-memory vector index
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user