Indexer - volc VikingDB
基本介绍
火山引擎 VikingDB 向量索引器是 Indexer 接口的一个实现,用于将文档内容存储到火山引擎的 VikingDB 向量数据库中。该组件实现了 [🚧]Eino: Indexer 使用说明
火山引擎 VikingDB 服务介绍
火山引擎 VikingDB 是一个高性能的向量数据库服务,提供向量存储、检索和向量化等功能。本组件通过火山引擎 SDK 与服务进行交互,支持两种向量化方式:
- 使用 VikingDB 内置的向量化方法(Embedding V2)
- 使用自定义的向量嵌入模型
使用方式
组件初始化
火山引擎 VikingDB 索引器通过 NewIndexer
函数进行初始化,主要配置参数如下:
indexer, err := NewIndexer(ctx, &IndexerConfig{
Host: "api.volcengineapi.com", // 服务地址
Region: "cn-beijing", // 区域
AK: "your-ak", // Access Key
SK: "your-sk", // Secret Key
Scheme: "https", // 协议
ConnectionTimeout: 30, // 连接超时时间(秒)
Collection: "your-collection", // 集合名称
EmbeddingConfig: EmbeddingConfig{
UseBuiltin: true, // 是否使用内置向量化
ModelName: "text2vec-base", // 模型名称
UseSparse: true, // 是否使用稀疏向量
Embedding: embedder, // 自定义向量嵌入器
},
AddBatchSize: 5, // 批量添加大小
})
完整使用示例
使用内置向量化
package main
import (
"context"
volcvikingdb "github.com/cloudwego/eino-ext/components/indexer/volc_vikingdb"
"github.com/cloudwego/eino/schema"
)
func main() {
ctx := context.Background()
// 初始化索引器
idx, err := volcvikingdb.NewIndexer(ctx, &volcvikingdb.IndexerConfig{
Host: "api.volcengineapi.com",
Region: "cn-beijing",
AK: "your-ak",
SK: "your-sk",
Scheme: "https",
Collection: "test-collection",
EmbeddingConfig: volcvikingdb.EmbeddingConfig{
UseBuiltin: true,
ModelName: "text2vec-base",
UseSparse: true,
},
})
if err != nil {
panic(err)
}
// 准备文档
docs := []*schema.Document{
{
Content: "这是第一个文档的内容",
},
{
Content: "这是第二个文档的内容",
},
}
// 存储文档
ids, err := idx.Store(ctx, docs)
if err != nil {
panic(err)
}
// 处理返回的ID
for i, id := range ids {
println("文档", i+1, "的存储ID:", id)
}
}
使用自定义向量嵌入
package main
import (
"context"
volcvikingdb "github.com/cloudwego/eino-ext/components/indexer/volc_vikingdb"
"github.com/cloudwego/eino/components/embedding"
"github.com/cloudwego/eino/schema"
)
func main() {
ctx := context.Background()
// 初始化向量嵌入器(openai 示例)
embedder, err := &openai.NewEmbedder(ctx, &openai.EmbeddingConfig{})
if err != nil {
panic(err)
}
// 初始化索引器
idx, err := volcvikingdb.NewIndexer(ctx, &volcvikingdb.IndexerConfig{
Host: "api.volcengineapi.com",
Region: "cn-beijing",
AK: "your-ak",
SK: "your-sk",
Scheme: "https",
Collection: "test-collection",
EmbeddingConfig: volcvikingdb.EmbeddingConfig{
UseBuiltin: false,
Embedding: embedder,
},
})
if err != nil {
panic(err)
}
// 准备文档
docs := []*schema.Document{
{
Content: "Document content one",
},
{
Content: "Document content two",
},
}
// 存储文档
ids, err := idx.Store(ctx, docs)
if err != nil {
panic(err)
}
// 处理返回的ID
for i, id := range ids {
println("文档", i+1, "的存储ID:", id)
}
}
相关文档
最后修改
January 9, 2025
: feat: add eino cn docs (#1182) (ad75444)