VectorFlow是一个开源的、高吞吐量的、容错的向量嵌入流水线。利用简单的API请求,用户可以发送原始数据,进行分块、嵌入,并存储到任何向量数据库中,或者直接返回处理结果。无论数据量有多大,VectorFlow都能快速、可靠地完成处理。
克隆项目库:
git clone https://github.com/dgarnitz/vectorflow.git
cd vectorflow
./setup.sh
安装Python客户端,在Python应用的虚拟环境中使用:
pip install vectorflow-client
Docker-Compose是运行VectorFlow的推荐方式。以下是简要步骤:
设置环境变量:在项目根目录创建env_scripts
文件夹,在其中创建env_vars.env
文件来配置所有需要的环境变量。
拉取并启动服务:确保下载RabbitMQ、Postgres、Min.io和使用中的向量数据库的镜像。
docker pull rabbitmq
docker pull postgres
docker pull qdrant/qdrant | docker pull semitechnologies/weaviate
docker pull minio/minio
启动Docker-Compose:
docker-compose build --no-cache
docker-compose up -d
最佳使用方式是结合Python客户端,通过HTTP请求来进行数据的嵌入和处理。
单文件嵌入:发送包含文件的POST请求至/embed
端点,指定文件路径和相关元数据。
{
'SourceData=path_to_txt_file',
...
}
多文件嵌入:发送多个文件至/jobs
端点,确保通过流式请求上传文件,成功后将返回上传结果。
任务状态查询:可以通过/jobs/<int:job_id>/status
端点查询任务状态,确保进度透明。
VectorFlow对上传到向量存储中的数据应用标准化模式,确保数据的可追溯性和去重能力。
使用内建的分块器可以按需定义分块策略,用户也可以通过自定义代码实现更特定的分块需求。
支持AWS S3的预签名URL,用于文件的远程上传和处理,同时提供原始嵌入和分块验证的Webhook功能。
我们鼓励社区参与到VectorFlow的开发中,通过GitHub议题和PR贡献想法和代码。项目的后续计划包括多文件目录数据导入、重试机制、动态配置数据库模式等。
VectorFlow是一个功能强大的工具,旨在帮助用户更高效地管理和处理海量数据,希望通过持续的更新与完善,使得更多用户能够从中获益。