使用说明
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
这允许您独立管理和搜索每个文档集。
