Eino: Indexer 使用说明
基本介绍
Indexer 组件是一个用于存储和索引文档的组件。它的主要作用是将文档及其向量表示存储到后端存储系统中,并提供高效的检索能力。这个组件在以下场景中发挥重要作用:
- 构建向量数据库,以用于语义关联搜索
组件定义
接口定义
Store 方法
- 功能:存储文档并建立索引
- 参数:
- ctx:上下文对象,用于传递请求级别的信息,同时也用于传递 Callback Manager
- docs:待存储的文档列表
- opts:存储选项,用于配置存储行为
- 返回值:
- ids:存储成功的文档 ID 列表
- error:存储过程中的错误信息
公共 Option
Indexer 组件使用 IndexerOption 来定义可选参数,Indexer 定义了如下的公共 option。另外,每个具体的实现可以定义自己的特定 Option,通过 WrapIndexerImplSpecificOptFn 函数包装成统一的 IndexerOption 类型。
可以通过以下方式设置选项:
使用方式
单独使用
在编排中使用
Option 和 Callback 使用
Option 使用示例
Callback 使用示例
已有实现
- Volc VikingDB Indexer: 基于火山引擎 VikingDB 实现的向量数据库索引器 Indexer - VikingDB
自行实现参考
实现自定义的 Indexer 组件时,需要注意以下几点:
- 注意对公共 option 的处理以及组件实现级的 option 处理
- 注意对 callback 的处理
Option 机制
自定义 Indexer 可根据需要实现自己的 Option:
Callback 处理
Indexer 实现需要在适当的时机触发回调。框架已经定义了标准的回调输入输出结构体:
完整实现示例
最后修改
January 20, 2025
: upadte eino docs (be7b33a)