Super-Rag 项目介绍
项目概述
Super-Rag 是一个专为 AI 应用设计的高效 RAG(Retrieval-Augmented Generation)管道。它的设计初衷是帮助开发者轻松地构建和管理文档检索与生成任务,特别是在大规模数据处理场景中。Super-Rag 通过其丰富的特性,为用户提供了灵活的开发环境和强大的功能支持。
主要特性
- 支持多种文档格式和向量数据库:Super-Rag 可以处理各种类型的文档,并能与多个主流向量数据库进行集成。
- 提供可用于生产环境的 REST API:用户可以利用 API 轻松地将服务整合到现有的应用中。
- 可定制的拆分/分块功能:允许用户根据需要对文档进行拆分,以便更好地进行数据处理和分析。
- 多样的编码模型选项:支持使用多种编码模型对数据进行编码,包括开源和专有的模型。
- 内置代码解释模式:特别适合需要计算能力的问答场景,让用户在同一环境中获得计算解答。
- 支持会话管理:通过唯一的 ID 进行缓存管理,提高数据处理的效率和响应速度。
云端 API
Super-Rag 提供了一个简单易用的云端 API,用户可以通过 Cloud API 轻松启动和使用。这项服务在合理的范围内是免费的,能够满足大多数基础需求。
安装步骤
-
克隆仓库
git clone https://github.com/superagent-ai/super-rag cd super-rag
-
设置虚拟环境
virtualenv env source env/bin/activate
-
安装所需的包
poetry install
-
重命名
.env.example
为.env
,并设置环境变量 -
运行服务器
uvicorn main:app --reload
如何使用
Super-Rag 提供了内置的 REST API,基于 FastApi 开发,用户可以进行如下操作:
文档导入
通过 POST 请求将文档数据进行导入,并指定文档处理器和向量数据库相关配置。支持自定义编码和文档拆分策略,例如:
{
"files": [
{
"name": "My file",
"url": "https://path-to-my-file.pdf"
}
],
...
}
文档查询
通过 POST 请求查询已导入的文档,并可选择启用代码解释模式来处理需要计算解答的任务:
{
"input": "What is ReAct",
...
}
删除文档
可以通过 POST 请求指定要删除的文档,支持选择对应的向量数据库和索引:
{
"file_url": "A file url to delete",
...
}
支持的编码器
- OpenAi
- Cohere
- HuggingFace
- FastEmbed
- Mistral(即将支持)
- Anthropic(即将支持)
支持的向量数据库
- Pinecone
- Qdrant
- Weaviate
- Astra
- PGVector
- Chroma(即将支持)
通过 Super-Rag,开发者可以更加高效地搭建与管理 AI 应用的文档检索和生成任务,从而提升整体应用的智能性和响应速度。