ID-based RAG FastAPI 使用教程
1. 项目介绍
ID-based RAG FastAPI 是一个开源项目,它整合了 Langchain 与 FastAPI,以异步、可扩展的方式提供了文档索引和检索的框架。该项目使用 PostgreSQL/pgvector 作为后端存储,主要适用于需要基于文件级别的嵌入使用场景。其主要用途是与 LibreChat 集成,但也适用于任何基于 ID 的使用场景。
2. 项目快速启动
环境准备
确保你的系统中已经安装了 Docker 和 PostgreSQL。
克隆项目
git clone https://github.com/danny-avila/rag_api.git
cd rag_api
配置环境变量
在项目根目录下创建一个 .env
文件,并设置以下环境变量:
RAG_OPENAI_API_KEY=your_openai_api_key
POSTGRES_DB=your_db_name
POSTGRES_USER=your_db_user
POSTGRES_PASSWORD=your_db_password
DB_HOST=your_db_host
DB_PORT=your_db_port
RAG_HOST=0.0.0.0
RAG_PORT=8000
确保替换上述变量值为你的实际配置。
启动服务
使用 Docker Compose 启动数据库和服务:
docker-compose up
或者,如果你想单独启动 API 服务,可以使用以下命令:
docker-compose -f ./api-compose.yaml up
如果你想在本地环境中运行,首先确保安装了所有依赖:
pip install -r requirements.txt
然后运行:
uvicorn main:app
3. 应用案例和最佳实践
添加文档
使用以下 API 将文档添加到系统中:
curl -X POST "http://localhost:8000/documents" -H "Content-Type: application/json" -d '{"file_id": "unique_id", "content": "Document content goes here."}'
确保替换 unique_id
和 Document content goes here.
为你的文件 ID 和文档内容。
检索文档
使用以下 API 来检索文档:
curl -X GET "http://localhost:8000/documents?file_id=unique_id"
替换 unique_id
为你想要检索的文档的 ID。
删除文档
使用以下 API 来删除文档:
curl -X DELETE "http://localhost:8000/documents?file_id=unique_id"
替换 unique_id
为你想要删除的文档的 ID。
4. 典型生态项目
ID-based RAG FastAPI 可以与多种服务和框架集成,例如:
- LibreChat: 用于集成聊天功能。
- Langchain: 用于处理和存储文档嵌入。
- PostgreSQL/pgvector: 用于存储向量数据。
- Atlas MongoDB: 作为替代的向量数据库。
以上是 ID-based RAG FastAPI 的基本使用教程,你可以根据自己的需求进行相应的调整和扩展。