Embedding - OpenAI
Overview
OpenAI embedder is an implementation of Eino’s Embedding interface that converts text into vector representations. It follows [🚧]Eino: Embedding Guide and is typically used for:
- Converting text into high‑dimensional vectors
- Using OpenAI’s embedding models
- Using Azure OpenAI Service embedding models
Usage
Initialization
Initialize via NewEmbedder with key configuration options:
import "github.com/cloudwego/eino-ext/components/embedding/openai"
embedder, err := openai.NewEmbedder(ctx, &openai.EmbeddingConfig{
// OpenAI API config
APIKey: "your-api-key",
Model: "text-embedding-ada-002",
Timeout: 30 * time.Second,
// Optional: Azure OpenAI Service config
ByAzure: true,
BaseURL: "https://your-resource.openai.azure.com",
APIVersion: "2023-05-15",
EncodingFormat: &format, // encoding format
Dimensions: &dimension, // vector dimension
User: &user, // user identifier
})
Generate Embeddings
Vectorization is done via EmbedStrings:
embeddings, err := embedder.EmbedStrings(ctx, []string{
"First text",
"Second text",
})
Complete Example
Basic Usage
package main
import (
"context"
"time"
"github.com/cloudwego/eino-ext/components/embedding/openai"
)
func main() {
ctx := context.Background()
// init embedder
embedder, err := openai.NewEmbedder(ctx, &openai.EmbeddingConfig{
APIKey: "your-api-key",
Model: "text-embedding-ada-002",
Timeout: 30 * time.Second,
})
if err != nil {
panic(err)
}
// generate embeddings
texts := []string{
"This is the first sample text",
"This is the second sample text",
}
embeddings, err := embedder.EmbedStrings(ctx, texts)
if err != nil {
panic(err)
}
// use vectors
for i, embedding := range embeddings {
println("text", i+1, "vector dim:", len(embedding))
}
}
References
- Eino: Embedding Guide
- Embedding - Ark
- OpenAI Embedding API: https://platform.openai.com/docs/guides/embeddings
- Azure OpenAI Service: https://learn.microsoft.com/azure/cognitive-services/openai/
Last modified
December 16, 2025
: fix: improve readability of websocket and swagger docs (#1480) (f63ff55)