RAG API
该项目是基于FastAPI的API服务器,实现了基于文档的问答系统。
功能
- 上载文档并保存矢量存储
- PDF和CSV文件支持 - 自动拆分和嵌入文档 - 保存到Chroma矢量商店
- 搜索文档
- 基于自然语言查询的搜索 - 基于相似度的文档搜索
安装方法
- 安装所需的软件包:
pip install -r requirements.txt- 设置环境变量:
export OPENAI_API_KEY="your-api-key"执行方法
python main.py服务器http://localhost:8000在中运行。
API端点
- 上载文档
- POST/上传 - multipart/form-data格式上载文件 - 支持格式:PDF、CSV - 参数: - files:要上载的文件列表(必需) - vector_store_dir:存储矢量存储的目录路径(可选,默认为“vector_store”)
- 搜索文档
- POST/查询 - form-data格式传递参数 - 参数: - query:搜索查询(必需) - vector_store_dir:矢量商店目录路径(可选,默认为“vector_store”) - k:要搜索的文档数(选择,默认值:2)
API文档
FastAPI的自动生成文档可在以下URL中找到:
- http://localhost:8000/docs
- http://localhost:8000/redoc
在矢量商店之前
要在其他项目中重复使用存储在矢量存储库中的文件,可以执行以下操作:
- 将所需的矢量存储目录复制到其他项目的同一路径。
- 其他项目也必须安装以下软件包:
- langchain色度 - 兰开夏 - 其他必要的依赖性软件包
- 必须使用相同的嵌入模型(OpenAI Embeddings)。
- 必须正确设置所需的环境变量(例如OpenAI API密钥)。
将矢量存储迁移到其他项目时,只需复制目录即可。这将同时保留文档的嵌入和元数据,以便在新项目中使用。
使用多个矢量商店
该项目旨在同时使用多个矢量商店。每个矢量存储库存储在不同的目录中,调用API时 vector_store_dir 可以通过参数指定所需的矢量存储。
例如,您可以为不同的项目或文档集创建和管理单独的矢量存储:
project1_docs -> vector_store_project1
project2_docs -> vector_store_project2
research_papers -> vector_store_research这允许您独立管理和搜索每个文档集。
