Embedding - ARK
Overview
Ark Embedding is an implementation of Eino’s Embedding interface that converts text to vectors. Volcengine Ark provides model inference services, including text embedding. This component follows [🚧]Eino: Embedding Guide.
Usage
Initialization
Initialize via NewEmbedder with key configuration options:
import "github.com/cloudwego/eino-ext/components/embedding/ark"
embedder, err := ark.NewEmbedder(ctx, &ark.EmbeddingConfig{
// authentication (choose one)
APIKey: "your-api-key", // API Key auth
// or AK/SK auth
AccessKey: "your-access-key",
SecretKey: "your-secret-key",
// service config
Model: "ep-xxxxxxx-xxxxx", // Ark endpoint ID
BaseURL: "https://ark.cn-beijing.volces.com/api/v3", // optional, defaults to Beijing
Region: "cn-beijing", // optional, defaults to Beijing
// advanced
Timeout: &timeout, // request timeout
RetryTimes: &retryTimes, // retry times
Dimensions: &dimensions, // output vector dimension
User: &user, // user identifier
})
Generate Embeddings
Text 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/ark"
)
func main() {
ctx := context.Background()
// init embedder
timeout := 30 * time.Second
embedder, err := ark.NewEmbedder(ctx, &ark.EmbeddingConfig{
APIKey: "your-api-key",
Model: "ep-20xxxxxxx-xxxxx",
Timeout: &timeout,
})
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 generated vectors
for i, embedding := range embeddings {
println("text", i+1, "vector dim:", len(embedding))
}
}
References
Last modified
December 16, 2025
: fix: improve readability of websocket and swagger docs (#1480) (f63ff55)