✅ 主要功能
- 支持多种文档格式和向量数据库。
- 提供可用于生产的REST API。
- 可定制的拆分/分块功能。
- 包括使用不同编码模型(专有和开源)编码数据的选项。
- 内置代码解释器模式,适用于计算型问答场景。
- 通过唯一ID进行会话管理,以实现缓存功能。
☁️ 云API
最简单的入门方式是使用我们的云API。该API可免费使用(在合理范围内)。
📦 安装
-
克隆仓库
git clone https://github.com/superagent-ai/super-rag cd super-rag
-
设置虚拟环境
# 使用virtualenv virtualenv env source env/bin/activate # 或者使用venv python3 -m venv env source env/bin/activate
-
安装所需的包
poetry install
-
将
.env.example
重命名为.env
并设置您的环境变量 -
运行服务器
uvicorn main:app --reload
🤖 解释器模式
Super-Rag内置支持使用由E2B.dev定制运行时提供支持的代码解释器来运行计算型问答。您可以注册以获取API密钥,在云环境中利用他们的沙盒,或者按照这些说明设置您自己的环境。
🚀 使用方法
Super-Rag内置了由FastApi驱动的REST API。
导入文档
// POST: /api/v1/ingest
// 负载
{
"files": [
{
"name": "我的文件", // 可选
"url": "https://path-to-my-file.pdf",
"metadata": { // 可选
"key": "value"
}
}
],
"document_processor": { // 可选
"encoder": {
"dimensions": 384,
"model_name": "embed-multilingual-light-v3.0",
"provider": "cohere"
},
"unstructured": {
"hi_res_model_name": "detectron2_onnx",
"partition_strategy": "auto",
"process_tables": false
},
"splitter": {
"max_tokens": 400,
"min_tokens": 30,
"name": "semantic",
"prefix_summary": true,
"prefix_title": true,
"rolling_window_size": 1
}
},
"vector_database": {
"type": "qdrant",
"config": {
"api_key": "您的API密钥",
"host": "QDRANT主机地址"
}
},
"index_name": "我的索引",
"webhook_url": "https://我的webhook-url"
}
查询文档
// POST: /api/v1/query
// 负载
{
"input": "什么是ReAct",
"vector_database": {
"type": "qdrant",
"config": {
"api_key": "您的API密钥",
"host": "QDRANT主机地址"
}
},
"index_name": "您的索引",
"interpreter_mode": true,
"encoder": {
"provider": "cohere",
"name": "embed-multilingual-light-v3.0",
"dimensions": 384
},
"filter": { // 可选
// 每个提供商有其自己的过滤器架构,
// 对于Qdrant来说,结构如下:
"must": [
{
"key": "key",
"match": {
"value": "value"
}
}
]
},
"exclude_fields": ["metadata"], // 排除特定字段
"interpreter_mode": false, // 如果您希望使用代码解释器进行计算型问答,请设置为true
"session_id": "我的会话ID" // 保持微型虚拟机会话并启用缓存
}
删除文档
// POST: /api/v1/delete
// 负载
{
"file_url": "要删除的文件URL",
"vector_database": {
"type": "qdrant",
"config": {
"api_key": "您的API密钥",
"host": "QDRANT主机地址"
}
},
"index_name": "我的索引",
}
🧠 支持的编码器
- OpenAi
- Cohere
- HuggingFace
- FastEmbed
- Mistral(即将推出)
- Anthropic(即将推出)
🗃 支持的向量数据库
- Pinecone
- Qdrant
- Weaviate
- Astra
- PGVector
- Chroma(即将推出)