Skip to content

向量库开发

概述

本章节介绍如何开发自定义向量存储插件。

开发步骤

1. 创建 Maven 模块

xml
<project>
    <groupId>com.astrsomn</groupId>
    <artifactId>astrsomn-vector-custom</artifactId>
    <version>0.2.0-SNAPSHOT</version>
    
    <dependencies>
        <dependency>
            <groupId>com.astrsomn</groupId>
            <artifactId>astrsomn-api-runtime</artifactId>
            <version>0.2.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

2. 实现 VecDriver 接口

java
public class CustomVecDriver implements VecDriver {
    
    @Override
    public String getType() {
        return "CUSTOM";
    }
    
    @Override
    public void init(Map<String, Object> config) {
        // 初始化连接
    }
    
    @Override
    public void createCollection(String name, int dimension) {
        // 创建向量集合
    }
    
    @Override
    public void insert(String collectionName, List<VecRecord> records) {
        // 插入向量
    }
    
    @Override
    public List<VecSearchResult> search(String collectionName, float[] vector, int topK) {
        // 向量搜索
        return new ArrayList<>();
    }
    
    @Override
    public void delete(String collectionName, String id) {
        // 删除向量
    }
}

3. 配置 SPI

创建 META-INF/services/com.astrsomn.api.runtime.vector.VecDriver 文件:

com.astrsomn.vector.custom.CustomVecDriver

4. 创建扩展描述文件

创建 extension-vector-custom.properties

properties
name=Custom Vector Store
description=自定义向量存储实现
type=CUSTOM
version=1.0.0
author=Your Name

接口规范

VecDriver

方法说明
getType()返回向量存储类型
init()初始化连接
createCollection()创建向量集合
insert()插入向量记录
search()向量相似度搜索
delete()删除向量记录
update()更新向量记录
count()统计向量数量

打包部署

bash
# 打包插件
mvn clean package

# 复制到 plugins 目录
cp target/astrsomn-vector-custom-0.2.0-SNAPSHOT.jar plugins/

相关文档