Embedding - ARK
基本介绍
Ark Embedding 是 Eino Embedding 接口的一个实现,用于将文本转换为向量表示,火山引擎 Ark 是一个提供机器学习模型推理服务的平台,其中包含了文本向量化服务。该组件实现了 [🚧]Eino: Embedding 使用说明。
使用方式
组件初始化
Ark 向量嵌入器通过 NewEmbedder
函数进行初始化,主要配置参数如下:
embedder, err := NewEmbedder(ctx, &EmbeddingConfig{
// 认证配置(二选一)
APIKey: "your-api-key", // 使用 API Key 认证
// 或使用 AK/SK 认证
AccessKey: "your-access-key",
SecretKey: "your-secret-key",
// 服务配置
Model: "ep-xxxxxxx-xxxxx", // Ark 平台的端点 ID
BaseURL: "https://ark.cn-beijing.volces.com/api/v3", // 可选,默认为北京区域
Region: "cn-beijing", // 可选,默认为北京区域
// 高级配置
Timeout: &timeout, // 请求超时时间
RetryTimes: &retryTimes, // 重试次数
Dimensions: &dimensions, // 输出向量维度
User: &user, // 用户标识
})
生成向量嵌入
文本向量化通过 EmbedStrings
方法实现:
embeddings, err := embedder.EmbedStrings(ctx, []string{
"第一段文本",
"第二段文本",
})
完整使用示例
基本使用
package main
import (
"context"
"time"
"github.com/cloudwego/eino-ext/components/embedding/ark"
)
func main() {
ctx := context.Background()
// 初始化嵌入器
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)
}
// 生成文本向量
texts := []string{
"这是第一段示例文本",
"这是第二段示例文本",
}
embeddings, err := embedder.EmbedStrings(ctx, texts)
if err != nil {
panic(err)
}
// 使用生成的向量
for i, embedding := range embeddings {
println("文本", i+1, "的向量维度:", len(embedding))
}
}
相关文档
最后修改
January 9, 2025
: feat: add eino cn docs (#1182) (ad75444)