Skip to main content

Bella-RAG - 智能检索增强生成系统

Bella-RAG是一个基于Django和LlamaIndex框架的RAG(Retrieval-Augmented Generation)最佳实践,提供文档理解、索引构建、检索问答等完整的RAG基础能力。

🚀 核心特性

🏆 技术优势

  • 🔥 业界领先的文档解析: 文档结构化解析效果业界领先,支持复杂版面和多模态内容理解,文档解析能力见bella-domify
  • 🎯 高精度检索技术: 利用多路召回、small2big、rerank等技术,兼顾语义检索效果与信息完整度,多场景验证综合结果可用率 > 85%
  • 🧠 Contextual RAG增强: 支持Contextual RAG技术,在chunk编码前预先添加解释性的上下文信息,大幅提升检索准确率
  • 🚀 Deep RAG智能agent模式: 基于Planning and Solve模式的智能agent,通过自动制定执行计划(圈定文件范围 → 阅读文件 → 反思)、步骤式执行和动态重规划,实现比传统RAG更优的问答效果
  • 🔧 策略插件化架构: 检索策略完全可插拔,调用方可根据业务场景灵活调整检索策略及参数,满足不同领域需求

🛠️ 系统特性

  • 多格式文档支持: 支持PDF、Word、Excel、HTML、Markdown等多种文档格式
  • 向量化存储: 集成Qdrant向量数据库(可自部署)或腾讯向量数据库,提供高效的向量存储和检索
  • 安全的混合架构: 向量数据库仅存储向量,原始文档内容安全存储在MySQL中
  • 灵活的检索策略: 支持多种检索模式和重排序算法
  • 完整的API: 提供完整的RESTful API接口
  • 异步处理: 与file-api打通,支持Kafka异步任务处理
  • 一键初始化: 提供自动化脚本快速完成环境配置

🏗️ 系统架构

整体架构图

框架图.png

处理流程图

流程图.png 从文档上传到检索问答的完整处理流程

数据存储架构

Bella-RAG采用混合存储架构,将数据安全性和检索效率相结合:

向量数据库(Qdrant/腾讯云向量数据库)

  • 存储文档和问答的向量化表示
  • 不存储原始文本内容(安全考虑)
  • 支持高效的相似度检索
  • 包含三个集合:主文档向量、QA向量、文档总结向量
  • 支持使用Qdrant自部署,或者企业版的腾讯云向量数据库

关系型数据库(MySQL)

  • 存储文档的原始内容和元数据
  • 提供结构化数据查询能力
  • 确保数据的持久性和一致性

搜索引擎(Elasticsearch)

  • 提供关键词检索能力
  • 补充向量检索的不足
  • 支持复杂的文本查询和过滤

📋 环境要求

  • Docker >= 20.0
  • Docker Compose >= 2.0
  • 可用内存 >= 4GB
  • OpenAI API密钥(或兼容的API服务)

💡 提示: 所有服务通过 Docker Compose 一键部署,无需手动安装 MySQL、Redis、Qdrant 等组件

🎯 向量数据库选择

Bella-RAG 支持多种向量数据库,您可以根据需求选择:

🔥 Qdrant

  • 完全开源免费:MIT许可证,无使用限制
  • 本地部署:数据完全可控,无需依赖第三方服务
  • 一键启动:Docker Compose 自动部署和初始化
  • 易扩展:支持水平扩展和分布式部署

🏢 腾讯云向量数据库=

  • 托管服务:无需运维,自动备份和高可用
  • 企业级:支持大规模数据和高并发访问
  • 完整生态:与腾讯云其他服务深度集成
  • ⚙️ 需要配置:需要腾讯云账号和API密钥

📚 相关文档

📄 许可证

本项目采用 MIT许可证

项目地址: GitHub