Skip to content

code-corey/simple-rag

Repository files navigation

simple-rag

需求背景:我们公司在新人入职的时候,总是需要考试,因为需要学习很多的资料,才行。所以我就想能否做一个RAG出来,然后做一个网页,整个项目运行后,就可以进行项目搜索了

前端的功能

1、可以选择指定的文件夹目录,该文件夹下可以有很多的不同类型的文件,如Doc,Excel,txt,Md等 2、在对话框中,还可以选择不同的大模型 3、可以在对话框中,针对你想要问的问题进行搜索,进行回答,还可以联网进行搜索 4、使用react框架,还有Ant Design来设计,Vite技术来写

后端的功能

1、使用自己搭建大模型的技术,去部署一个Eembbings模型,这样就可以不需要购买服务了(这里有很多种技术,得待会研究一下) 2、后端使用langchain技术,使用Python的 FastAPI,作为后端 3、数据库使用Milvs,再搭建一个后端,用于管理整个向量数据库

大模型的选项

1、使用火山大模型,比较经济实惠

$env:UV_DEFAULT_INDEX = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

安装完后,在项目下执行命令,对项目进行初始化

uv init

当我们输入完命令后:我们会发现,下面会生成4个文件

.python-version 这里说明了当前项目使用的什么Python版本

pyproject.toml 这里记录了项目的信息

Simple-RAG: 企业级新人入职知识库助手

Simple-RAG 是一个基于检索增强生成(RAG)技术的私有化知识库解决方案。它旨在解决新人入职时面临的资料繁杂、学习成本高的问题。通过本地化部署 Embedding 模型和集成高性能 LLM,实现针对企业内部文档(Doc, Excel, PDF, MD)的精准问答。


🛠️ 技术架构

本系统采用前后端分离架构,核心链路如下:

  • 前端: React 18 + Ant Design + Vite
  • 后端: Python 3.12 + FastAPI + LangChain
  • 向量数据库: Milvus (Standalone) + Attu (GUI)
  • 模型层:
    • Embedding: 本地部署 bge-small-zh-v1.5 (由 HuggingFace/ModelScope 提供支持)
    • LLM: 火山引擎 (Volcengine Ark) 提供高性价比推理服务

✨ 核心特性

  • 多格式扫描: 自动递归解析指定文件夹下的 Doc, Excel, Txt, Markdown 等文件。
  • 本地向量化: 无需购买外部向量化服务,本地部署模型保证数据隐私。
  • 双模式问答: 支持基于私有知识库的问答及互联网实时搜索扩展。
  • 流式输出: 仿 ChatGPT 的 SSE 流式响应,极速交互体验。
  • 可视化管理: 通过 Attu 实时监控向量数据库索引状态。

🚀 快速开始

1. 环境准备

确保你的系统已安装:

  • Docker & Docker Compose
  • uv (高性能 Python 包管理器)
  • Node.js 18+ & pnpm

2. 后端部署

# 增加 
$env:UV_DEFAULT_INDEX = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

# 安装 uv (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 初始化环境
uv init
uv add fastapi uvicorn langchain langchain-community langchain-huggingface pymilvus python-dotenv

# 启动向量数据库 (Docker)
docker-compose up -d

# 配置环境变量 (.env)
ARK_API_KEY=your_key_here
ARK_ENDPOINT_ID=your_endpoint_here

3. 前端部署

cd frontend
pnpm install
pnpm dev

📂 项目结构

simple-rag/
├── backend/                # FastAPI 后端服务
│   ├── core/               # RAG 核心逻辑 (LangChain)
│   ├── models/             # 本地 Embedding 模型存放
│   └── api/                # 接口路由
├── frontend/               # React + Ant Design 前端
├── data/                   # 默认文档存放目录
├── docker-compose.yml      # Milvus 服务编排
└── pyproject.toml          # uv 项目管理

📝 路线图 (TODO)

  • Phase 1: 跑通本地 bge-small-zh 模型与 Milvus 的向量入库流程。
  • Phase 2: 开发基于《三国演义》文档的测试问答 Demo。
  • Phase 3: 集成火山大模型流式 API。
  • Phase 4: 前端 Ant Design 界面适配与引用溯源展示。

🤝 贡献说明

欢迎提 Issue 或 Pull Request 来完善这个项目。作为一个旨在通过 西蒙学习法 实践的开源项目,我们鼓励一切能够简化架构或提升检索准确度的改进。


📄 许可证

MIT License


*### 💡 提示:

你可以根据实际情*况修改其中的 ARK_API_KEY 等占位符。这份文档不仅适合 GitHub 仓库展示,也能在公司内部评审中显得非常专业。需要我帮你写一份 docker-compose.yml 来配合这个仓库吗?

About

使用AI技术,对学习资料进行针对性的搜索和学习

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors