general-rag-system 是 AI Skill Hub 本期精选AI工具之一。综合评分 6.0 分,整体质量稳定。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
general-rag-system 是一款基于 Java 开发的开源工具,专注于 installable、java 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
general-rag-system 是一款基于 Java 开发的开源工具,专注于 installable、java 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 克隆仓库 git clone https://github.com/upupmake/general-rag-system cd general-rag-system # 查看安装说明 cat README.md # 按 README 完成环境依赖安装后即可使用
# 查看帮助 general-rag-system --help # 基本运行 general-rag-system [options] <input> # 详细使用说明请查阅文档 # https://github.com/upupmake/general-rag-system
# general-rag-system 配置说明 # 查看配置选项 general-rag-system --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export GENERAL_RAG_SYSTEM_CONFIG="/path/to/config.yml"
企业级 Agentic RAG 知识库问答系统
支持多用户、多工作空间、智能代理检索、文档向量化等功能
功能特性 • 快速开始 • 系统架构 • 配置指南 • Agentic RAG
</div>
---
General RAG System 是一个基于检索增强生成(Retrieval-Augmented Generation)和智能代理(Agentic AI)技术的企业级知识库问答系统。通过将文档向量化存储,结合 LangGraph 状态机和大语言模型的决策能力,实现自主、精准、可靠的智能问答服务。
- 🤖 Agentic RAG(智能代理检索) - 自主决策检索策略:基于 LangGraph 状态机,LLM 自主选择最优检索工具 - 5种检索工具: 1. search_by_grep - 关键词精确检索(支持全库/单文件/多文件) 2. search_by_document_and_chunk_range - 按文档ID获取chunk范围 3. search_by_filename_and_chunk_range - 按文件名获取chunk范围 4. search_by_multi_queries_in_database - 多角度语义检索+Rerank 5. list_filename_by_like - 文件名模糊匹配列表 - 多轮迭代优化:支持最多5轮检索,自动补全上下文 - 智能停止机制:检索到足够信息后自动停止,节省资源 - 实时过程反馈:检索过程、工具调用、决策理由实时流式输出
</div>
使用 Docker Compose 一键部署所有依赖服务(推荐):
```bash
docker-compose up -d ```
或手动安装: - MySQL 8.0+ - 业务数据库 - Redis 6.x/7.x - 缓存、Session、JWT 黑名单 - Milvus 2.6+ - 向量数据库(需配置认证) - MinIO Latest - 对象存储(S3 兼容) - RabbitMQ 3.x - 消息队列(需配置用户名密码)
git checkout -b feature/AmazingFeature)git commit -m 'feat: add some amazing feature')git push origin feature/AmazingFeature)```
⚠️ 注意: - model_config.json 不要提交到 Git - main.py 中的基础设施配置为硬编码,生产环境需修改或使用环境变量
📖 详细配置说明:rag-llm/README.md
📚 安全配置指南:SECURITY.md
```bash cd rag-client npm install npm run dev
⚠️ **注意**:必须使用 Java 11(不支持其他版本)
📖 详细配置请参考:[rag-server/README.md](./rag-server/README.md)
#### 3. 启动 LLM 服务(端口 8888,root_path /rag)
bash cd rag-llm
📖 详细配置请参考:[rag-llm/README.md](./rag-llm/README.md)
#### 4. 启动本地向量化服务(可选,需 GPU)
如果需要使用本地向量化和重排序服务(不依赖外部 API),需要 GPU 支持:
bash cd embedding_rerank
python embedding_start.py
python rerank_start.py ```
系统要求: - GPU: NVIDIA GPU(推荐 4GB+ 显存,最佳 8GB+) - CUDA: 11.8+ - Python: 3.8+ - vLLM: 0.8.5+
📖 详细配置请参考: - Embedding 服务文档 - Rerank 服务文档
export EMBEDDING_SERVICE_URL="http://localhost:8890" export RERANK_SERVICE_URL="http://localhost:8891" ```
然后在 RAG 流程中调用本地服务替代外部API。 </details>
<details> <summary><b>Q: 本地向量化服务需要什么硬件配置?</b></summary>
A: 最低配置: - GPU: NVIDIA GPU (4GB显存,如GTX 1650) - CPU: 4核 - 内存: 8GB - 硬盘: 10GB
推荐配置: - GPU: NVIDIA GPU (8GB+显存,如RTX 3060) - CPU: 8核+ - 内存: 16GB+ - 硬盘: 20GB+ SSD - CUDA: 11.8+
性能对比: - 4GB显存: 可运行,需调低 gpu_memory_utilization - 8GB显存: 流畅运行,推荐配置 - 16GB+显存: 可同时运行多个服务或更大模型 </details>
⚠️ 重要:配置敏感信息
本项目的配置文件包含敏感信息(API 密钥、数据库密码等),已被 .gitignore 排除。您需要手动创建配置文件:
```bash cd rag-server/src/main/resources
mvn clean install mvn spring-boot:run
```bash
export MYSQL_PASSWORD=your_password export JWT_SECRET=your_jwt_secret_key export MINIO_SECRET_KEY=your_minio_key export REDIS_PASSWORD=your_redis_password
export OPENAI_API_KEY=sk-xxxxx export DEEPSEEK_API_KEY=sk-xxxxx export QWEN_API_KEY=sk-xxxxx ```
search_by_grep(keywords=["port"], file_names=["config.py"])
list_filename_by_like(pattern="%config%", limit=30)
在 agentic_rag_controller.py 中可配置: - max_rounds: 最大检索轮次(默认5) - grade_score_threshold: Rerank分数阈值(默认0.4) - top_k: 每轮检索返回数量(默认10)
EMBEDDING_SERVICE_URL = "http://localhost:8890" RERANK_SERVICE_URL = "http://localhost:8891"
search_by_grep(keywords=["@app.route", "POST"], file_names=["user_controller.py", "auth_controller.py"])
#### 2 & 3. chunk_range 工具 - 文档片段获取
**适用场景**:补全上下文、扩展文档范围、绕过检索失败
- `search_by_document_and_chunk_range` - 按文档ID获取
- `search_by_filename_and_chunk_range` - 按文件名获取
- 解决语义检索和关键词检索都失效的情况
**示例**:python
📚 各模块详细技术文档: - rag-client 前端文档 - Vue 3 开发指南、页面路由、状态管理 - rag-server 后端文档 - Spring Boot 配置、API 路由、MyBatis 使用 - rag-llm AI 服务文档 - Agentic RAG 实现、LLM 集成、RabbitMQ 消费者 - embedding_rerank 本地向量化文档 - vLLM 部署、性能调优
用户提问
↓
┌─────────────────────────────────────┐
│ Agentic RAG Controller (LangGraph) │
├─────────────────────────────────────┤
│ 第1轮:决策检索策略 │
│ ├─ 分析问题类型 │
│ ├─ 选择工具(5选1) │
│ └─ 执行检索 │
│ │
│ 第2-5轮:迭代优化(如需) │
│ ├─ 评估当前检索结果 │
│ ├─ 决定继续/停止 │
│ ├─ 补全上下文/换角度检索 │
│ └─ 更新检索历史 │
│ │
│ 构建上下文 │
│ ├─ 合并检索结果 │
│ ├─ 去重并排序 │
│ └─ 格式化为上下文 │
└─────────────────────────────────────┘
↓
生成回答(流式输出)
| 特性 | 传统RAG | Agentic RAG |
|---|---|---|
| 检索策略 | 固定单一 | 自主选择(5种工具) |
| 检索轮次 | 单次 | 多轮迭代(最多5轮) |
| 上下文补全 | 不支持 | 自动补全不连续chunk |
| 工具组合 | 不支持 | 支持工具链式调用 |
| 过程透明 | 黑盒 | 实时流式输出 |
| 适应性 | 差 | 强(根据问题动态调整) |
<details> <summary><b>Q: 如何选择合适的 LLM 模型?</b></summary>
A: 建议根据场景选择: - 快速响应:GPT-3.5、DeepSeek-Chat、Qwen-Plus - 高质量:GPT-4、Claude-3、Qwen-Max - 成本优化:本地部署开源模型(LLaMA、ChatGLM) </details>
<details> <summary><b>Q: Agentic RAG 和传统 RAG 有什么区别?</b></summary>
A: 主要区别: - 检索策略:传统RAG单一固定,Agentic RAG自主选择5种工具 - 检索轮次:传统RAG单次检索,Agentic RAG支持最多5轮迭代 - 上下文处理:Agentic RAG自动补全不连续chunk,提供完整上下文 - 适应性:Agentic RAG根据问题类型动态调整策略 - 透明度:Agentic RAG实时展示检索过程和决策理由
推荐在复杂问答、代码搜索、多文档关联等场景使用 Agentic RAG。 </details>
<details> <summary><b>Q: Agentic RAG 的5种工具如何选择?</b></summary>
A: LLM会根据问题类型自动选择: - 结构化查找(如"XXX方法在哪")→ search_by_grep - 概念理解(如"什么是XXX")→ search_by_multi_queries_in_database - 文件探索(如"有哪些配置文件")→ list_filename_by_like - 上下文补全(检索到不连续chunk)→ chunk_range 工具 - 检索失效(其他工具无法命中)→ chunk_range 兜底
系统会在每轮检索后评估结果,决定是否继续、使用哪个工具。 </details>
<details> <summary><b>Q: 向量数据库可以替换为其他方案吗?</b></summary>
A: 可以,本项目基于 LangChain,理论上支持: - Milvus(当前方案,推荐) - Pinecone、Weaviate、Qdrant - Elasticsearch(需要修改部分代码) </details>
<details> <summary><b>Q: 支持哪些文档格式?</b></summary>
A: 当前支持: - PDF(通过 PyMuPDF / pdfplumber) - TXT、MD(纯文本、Markdown) - 图片OCR(通过 Tesseract,需要额外安装)
可通过扩展 rag_utils.py 支持更多格式(Word、Excel、HTML等) </details>
<details> <summary><b>Q: LLM服务为什么运行在8888端口?</b></summary>
A: 这是在 main.py 中配置的,建议使用:
uvicorn main:app --host 0.0.0.0 --port 8888 --workers 2 可根据需要修改端口,但需同步更新 rag-server 中的配置。 </details>
<details> <summary><b>Q: embedding_rerank 模块的作用是什么?</b></summary>
A: embedding_rerank 提供本地向量化和重排序服务,包含两个独立的微服务:
Embedding 服务 (端口: 8890) - 基于 Qwen3-Embedding-0.6B 模型 - 将文本转换为768维向量 - 支持批量向量化(最多1024条/次) - 兼容 OpenAI Embeddings API 格式
Rerank 服务 (端口: 8891) - 基于 Qwen3-Reranker-0.6B 模型 - 对检索结果进行精确重排序 - 提高召回文档的相关性 - 支持批量重排序
适用场景: - ✅ 对数据隐私有严格要求 - ✅ 希望降低外部API调用成本 - ✅ 有本地GPU资源(推荐4GB+显存) - ✅ 需要完全离线部署
技术栈: - vLLM 0.8.5+ (高性能推理引擎) - FastAPI (异步Web框架) - PyTorch (深度学习框架)
性能参考: - Embedding: ~100条/秒 (单GPU, batch_size=32) - Rerank: ~50对/秒 (单GPU, batch_size=16)
详见: Embedding文档 | Rerank文档 </details>
<details> <summary><b>Q: 如何在 rag-llm 中使用本地向量化服务?</b></summary>
A: 配置 rag-llm/main.py 或使用环境变量:
```python
General RAG System 是一个基于检索增强生成(Retrieval-Augmented Generation)和智能代理(Agentic AI)技术的企业级知识库问答系统。通过将文档向量化存储,结合 LangGraph 状态机和大语言模型的决策能力,实现自主、精准、可靠的智能问答服务。
General RAG System 支持多用户、多工作空间、智能代理检索、文档向量化等功能。核心功能包括文档管理、Agentic RAG(智能代理检索)等。
依赖服务部署包括 MySQL 8.0+、Redis 6.x/7.x、Milvus 2.6+、MinIO Latest、RabbitMQ 3.x 等。使用 Docker Compose 一键部署所有依赖服务(推荐)
快速开始贡献包括 Fork 本仓库、创建特性分支、提交更改、推送到分支、开启 Pull Request 等步骤。快速开始贡献需要 Fork 本仓库并创建特性分支
使用 General RAG System 需要编辑 model_config.json(参考 model_config.json.example),生产环境建议使用环境变量替代硬编码。启动服务包括启动前端(端口 5173)和启动后端服务
配置文件包含敏感信息(API 密钥、数据库密码等),已被 .gitignore 排除。您需要手动创建配置文件:后端配置(rag-server)和编辑 main.py 中的基础设施连接配置
API/接口说明包括 MinIO 访问密钥(endpoint, access-key, secret-key)和填入各 LLM 的 API Key
工作流包括用户提问、Agentic RAG Controller (LangGraph) 分析问题类型、选择工具(5选1)执行检索、第2-5轮:迭代优化(如需)等步骤
常见问题包括如何选择合适的 LLM 模型和 Agentic RAG 和传统 RAG 有什么区别
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
经综合评估,general-rag-system 在AI工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | general-rag-system |
| 原始描述 | 开源AI工具:A RAG (Retrieval-Augmented Generation) knowledge base system with Vue.js fronten。⭐35 · Java |
| Topics | installablejava |
| GitHub | https://github.com/upupmake/general-rag-system |
| License | Apache-2.0 |
| 语言 | Java |
收录时间:2026-05-22 · 更新时间:2026-05-22 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。