能力标签
🛠
AI工具

general-rag-system

基于 Java · 开源免费,本地部署,数据完全自主可控
⭐ 35 Stars 🍴 3 Forks 💻 Java 📄 Apache-2.0 🏷 AI 6.0分
6.0AI 综合评分
installablejava
✦ AI Skill Hub 推荐

general-rag-system 是 AI Skill Hub 本期精选AI工具之一。综合评分 6.0 分,整体质量稳定。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析
general-rag-system 是一款基于 Java 的开源工具,在 GitHub 上收获 0k+ Star,是installable、java领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
general-rag-system 依赖 Java 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Java 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 general-rag-system 的版本更新,及时通知重要功能变化。
📋 工具概览

general-rag-system 是一款基于 Java 开发的开源工具,专注于 installable、java 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 35
开发语言
Java
支持平台
Windows / macOS / Linux / Android
维护状态
轻量级项目,按需更新
开源协议
Apache-2.0
AI 综合评分
6.0 分
工具类型
AI工具
Forks
3
📖 中文文档
以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

general-rag-system 是一款基于 Java 开发的开源工具,专注于 installable、java 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 克隆仓库
git clone https://github.com/upupmake/general-rag-system
cd general-rag-system

# 查看安装说明
cat README.md

# 按 README 完成环境依赖安装后即可使用
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 查看帮助
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"
📑 README 深度解析 真实文档 完整度 95/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

General RAG System

Version License Spring Boot Vue.js Python

企业级 Agentic RAG 知识库问答系统

支持多用户、多工作空间、智能代理检索、文档向量化等功能

功能特性快速开始系统架构配置指南Agentic RAG

</div>

---

📖 项目简介

General RAG System 是一个基于检索增强生成(Retrieval-Augmented Generation)智能代理(Agentic AI)技术的企业级知识库问答系统。通过将文档向量化存储,结合 LangGraph 状态机和大语言模型的决策能力,实现自主、精准、可靠的智能问答服务。

✨ 功能特性

核心功能

  • 📄 文档管理
  • 支持 PDF、TXT、Markdown 等多种格式
  • 自动解析文档内容和结构
  • 智能分块(Chunk)和向量化
  • 文档版本管理和更新
  • MinIO 对象存储,支持大文件

- 🤖 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轮检索,自动补全上下文 - 智能停止机制:检索到足够信息后自动停止,节省资源 - 实时过程反馈:检索过程、工具调用、决策理由实时流式输出

  • 🔍 智能检索
  • Agentic RAG: 基于 LangGraph 的智能代理检索系统
  • 自主决策检索策略(5种工具自动选择)
  • 多轮迭代检索优化
  • 动态上下文补全
  • 语义相似度搜索(向量检索 + 自动关键词融合)
  • 关键词精确检索(grep风格,支持全库/单文件/多文件)
  • 混合检索与重排序(Rerank)优化
  • 智能文档分块与范围获取
  • 💬 对话问答
  • 基于 RAG 的准确回答
  • 流式输出(SSE)
  • 多轮对话上下文
  • 引用来源标注
  • 👥 多租户管理
  • 工作空间隔离
  • 成员权限控制
  • 知识库共享
  • 操作审计日志
  • 🎨 用户体验
  • Markdown 渲染(markdown-it)
  • 代码高亮(highlight.js)
  • 数学公式支持(MathJax3)
  • 任务列表、Emoji 支持
  • 深色/浅色主题
  • 响应式布局

技术支持

</div>

依赖服务部署

使用 Docker Compose 一键部署所有依赖服务(推荐):

```bash

🚀 快速开始

创建 docker-compose.yml 后执行

docker-compose up -d ```

或手动安装: - MySQL 8.0+ - 业务数据库 - Redis 6.x/7.x - 缓存、Session、JWT 黑名单 - Milvus 2.6+ - 向量数据库(需配置认证) - MinIO Latest - 对象存储(S3 兼容) - RabbitMQ 3.x - 消息队列(需配置用户名密码)

快速开始贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: add some amazing feature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

1. 编辑 model_config.json(参考 model_config.json.example)

生产环境建议使用环境变量替代硬编码

```

⚠️ 注意: - model_config.json 不要提交到 Git - main.py 中的基础设施配置为硬编码,生产环境需修改或使用环境变量

📖 详细配置说明:rag-llm/README.md

📚 安全配置指南SECURITY.md

启动服务

1. 启动前端(端口 5173)

```bash cd rag-client npm install npm run dev

后端运行在 http://localhost:8080/api


⚠️ **注意**:必须使用 Java 11(不支持其他版本)

📖 详细配置请参考:[rag-server/README.md](./rag-server/README.md)

#### 3. 启动 LLM 服务(端口 8888,root_path /rag)
bash cd rag-llm

LLM 服务运行在 http://localhost:8888


📖 详细配置请参考:[rag-llm/README.md](./rag-llm/README.md)

#### 4. 启动本地向量化服务(可选,需 GPU)

如果需要使用本地向量化和重排序服务(不依赖外部 API),需要 GPU 支持:
bash cd embedding_rerank

启动 Embedding 服务(端口 8890)

python embedding_start.py

启动 Rerank 服务(端口 8891)

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 排除。您需要手动创建配置文件:

1. 后端配置(rag-server)

```bash cd rag-server/src/main/resources

2. 编辑 main.py 中的基础设施连接配置(约第 30-40 行):

编辑 src/main/resources/application-dev.yml 配置数据库等信息

mvn clean install mvn spring-boot:run

编辑 model_config.json 配置各 LLM 的 API Key

🔧 配置指南

环境变量方式(推荐生产环境)

```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

LLM服务环境变量

export OPENAI_API_KEY=sk-xxxxx export DEEPSEEK_API_KEY=sk-xxxxx export QWEN_API_KEY=sk-xxxxx ```

在 config.py 中查找端口配置

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)

在 main.py 中配置

EMBEDDING_SERVICE_URL = "http://localhost:8890" RERANK_SERVICE_URL = "http://localhost:8891"

- MinIO 访问密钥(endpoint, access-key, secret-key)

填入各 LLM 的 API Key:

- MinIO 访问密钥(endpoint, access-key, secret-key)

在多个 controller 文件中查找 API 端点

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轮:迭代优化(如需)            │
│  ├─ 评估当前检索结果                 │
│  ├─ 决定继续/停止                    │
│  ├─ 补全上下文/换角度检索            │
│  └─ 更新检索历史                     │
│                                     │
│  构建上下文                          │
│  ├─ 合并检索结果                     │
│  ├─ 去重并排序                       │
│  └─ 格式化为上下文                   │
└─────────────────────────────────────┘
   ↓
生成回答(流式输出)

优势对比

特性传统RAGAgentic 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

🇨🇳 中文文档镜像 AI 翻译 2026-05-23
英文原文章节由系统翻译为中文摘要,便于快速理解。完整原文见上方 "📑 README 深度解析"。
📌 简介

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 一键部署所有依赖服务(推荐)

🛠 安装步骤(Docker/pip/源码)

快速开始贡献包括 Fork 本仓库、创建特性分支、提交更改、推送到分支、开启 Pull Request 等步骤。快速开始贡献需要 Fork 本仓库并创建特性分支

🚀 使用教程

使用 General RAG System 需要编辑 model_config.json(参考 model_config.json.example),生产环境建议使用环境变量替代硬编码。启动服务包括启动前端(端口 5173)和启动后端服务

⚙️ 配置说明(含 MCP / env)

配置文件包含敏感信息(API 密钥、数据库密码等),已被 .gitignore 排除。您需要手动创建配置文件:后端配置(rag-server)和编辑 main.py 中的基础设施连接配置

🔌 API 说明

API/接口说明包括 MinIO 访问密钥(endpoint, access-key, secret-key)和填入各 LLM 的 API Key

🔄 工作流/模块

工作流包括用户提问、Agentic RAG Controller (LangGraph) 分析问题类型、选择工具(5选1)执行检索、第2-5轮:迭代优化(如需)等步骤

❓ FAQ 摘要

常见问题包括如何选择合适的 LLM 模型和 Agentic RAG 和传统 RAG 有什么区别

📚 实用指南(长尾问题)
适合谁
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
  • 需要从图片、PDF 提取文字的文档自动化场景
最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
  • 显存不足直接 OOM — 优先降低 context 或换更小的量化模型
部署方案
  • Docker:general-rag-system 提供官方镜像,docker compose up 一键启动
  • 本地部署:CPU 8GB 起,GPU 推荐 16GB+ 显存
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
general-rag-system 中文教程general-rag-system 安装报错怎么办general-rag-system Docker 部署general-rag-system Agent 工作流general-rag-system 与同类工具对比general-rag-system 最佳实践general-rag-system 适合谁用
⚡ 核心功能
👥 适合谁
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
  • 需要从图片、PDF 提取文字的文档自动化场景
⭐ 最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
  • 显存不足直接 OOM — 优先降低 context 或换更小的量化模型
👥 适合人群
AI 技术爱好者研究人员和学生开发者和工程师技术创业者
🎯 使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
⚖️ 优点与不足
✅ 优点
  • +Apache-2.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。

🔗 相关工具推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合
❓ 常见问题 FAQ
根据工具类型不同,要求也有差异。Python 工具通常需要安装 Python 3.8+ 和 pip;Node.js 工具需要 Node 16+;Docker 工具只需安装 Docker Desktop 即可。对于没有命令行基础的用户,建议先通过教程了解基本的终端操作,再尝试安装。
💡 AI Skill Hub 点评

经综合评估,general-rag-system 在AI工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

📚 深入学习 general-rag-system
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 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
🔗 原始来源
🐙 GitHub 仓库  https://github.com/upupmake/general-rag-system 🌐 官方网站  https://rag.forwardforever.top/

收录时间:2026-05-22 · 更新时间:2026-05-22 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。