Skip to content
aboutguyuanPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

RAG System:中文知识库检索增强问答项目

这是一个面向 LLM 算法岗 / 大模型应用开发 / RAG 工程实习 的完整可运行项目。项目实现从资料加载、文本切分、向量化、Chroma 持久化检索,到 MiMo 大模型生成回答和来源引用的完整 RAG 链路,并提供 CLI 与 Web UI 两种演示方式。

项目路径:

/Users/zzb/Desktop/面试实习准备/RAG

项目亮点

  • 完整 RAG 闭环:支持 .md/.txt/.pdf/.docx 资料加载、chunk 切分、本地 embedding、Chroma 检索、LLM 生成和来源引用。
  • 默认中文友好:Embedding 使用 BAAI/bge-small-zh-v1.5,适合中文学习资料和面试文档。
  • MiMo API 接入:默认按 OpenAI-compatible Chat API 接入 Xiaomi MiMo,配置项集中在 .env 和 configs/settings.yaml。
  • CLI + Web 双入口:命令行方便复现,Web 页面方便演示、截图和面试讲解。
  • 工程化结构:代码、配置、测试、运行手册、学习清单和面试讲解材料完整分层。

快速开始

cd /Users/zzb/Desktop/面试实习准备/RAG
/opt/anaconda3/bin/python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e ".[dev]"
cp .env.example .env

如果你的 python --version 已经是 3.12,也可以直接使用 python -m venv .venv。

编辑 .env,填写 MiMo Key:

XIAOMI_API_KEY=你的密钥
XIAOMI_BASE_URL=https://api.mimo-v2.com/v1
XIAOMI_MODEL=mimo-v2.5-pro

检查环境:

rag-system doctor

构建知识库索引:

rag-system ingest --source data/raw --reset

命令行问答:

rag-system ask "RAG 系统包含哪些步骤?" --top-k 5

启动 Web:

rag-system serve --host 127.0.0.1 --port 8010

打开:

http://127.0.0.1:8010/

无 MiMo Key 冒烟测试

如果只是验证检索和工程链路,可以使用 fake LLM。仍然需要先安装依赖,但不会调用真实模型 API。

RAG_LLM_PROVIDER=fake rag-system ingest --source data/raw --reset
RAG_LLM_PROVIDER=fake rag-system ask "RAG 是什么?" --fake-llm

如果想跳过 sentence-transformers 模型下载,可临时使用轻量 Hashing embedding:

RAG_EMBEDDING_PROVIDER=hash RAG_LLM_PROVIDER=fake rag-system ingest --source data/raw --reset
RAG_EMBEDDING_PROVIDER=hash RAG_LLM_PROVIDER=fake rag-system ask "RAG 是什么?" --fake-llm

目录结构

RAG/
  configs/settings.yaml          项目默认配置
  data/raw/                      默认知识库资料目录
  storage/chroma/                Chroma 持久化索引目录,运行后生成
  src/rag_system/                核心代码
    documents.py                 文档加载
    chunking.py                  文本切分
    embeddings.py                Embedding 封装
    vector_store.py              Chroma 和内存向量库
    llm.py                       MiMo 和 fake LLM 客户端
    rag.py                       RAG 编排
    cli.py                       命令行入口
    web/                         FastAPI Web UI
  tests/                         单元测试和 Web/CLI 冒烟测试
  docs/系统设计.md               架构和数据流说明
  docs/面试讲解稿.md             简历与面试表达
  docs/排障指南.md               常见问题处理
  详细运行手册.md                 从零运行说明
  项目学习清单.md                 学习路线和检查清单

常用命令

rag-system doctor
rag-system ingest --source data/raw --reset
rag-system ask "你的问题" --top-k 5
rag-system serve --host 127.0.0.1 --port 8010
pytest

简历表述

构建中文 RAG 知识库问答系统,支持 Markdown/txt/PDF/docx 资料解析、本地 BGE embedding、Chroma 向量检索和 MiMo OpenAI-compatible API 生成回答;实现 CLI 与 FastAPI Web 双入口,并在回答中返回来源 chunk、文件名和相关度,提升问答可追溯性。

进一步阅读

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages