RAG问答系统

基于文档的RAG(检索增强生成)问答系统,用于处理PDF文档并进行自动问答。

  • by dwhouse
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 dwhouse/252R_DL

使用说明

252R深度学习应用(LlamaIndex•RAG)

这个报告 252R深度学习应用课程实践(Chapter 1~10)和, 2025-2学期深度学习应用项目(基于RAG的校规/学士运营规范Q&A)一起管理。

  • practice/:按Chapter分类的实践笔记本电脑/代码
  • theory/:理论资料(PDF)和笔记本电脑
  • project/:基于校规PDF的RAG问答项目(ChromaDB+LlamaIndex)
  • dla/: uv 基于的python环境(依赖性捆绑)

按Chapter分类的实践内容

Chapter 主题 主要文件/文件夹 简单摘要
1LlamaIndex入门 practice/ch01/starter.ipynb 基本概念/安装/首次运行
2 RAG管线 practice/ch02/ch02_practice.ipynb 加载→收听→索引→查询流
3 矢量DB/存储库 practice/ch03/01_chroma_example.ipynb Chroma/Pinecone/Qdrant比较练习
4 文档RAG(PDF等) practice/ch04/ch04_practice.ipynb 基于PDF的RAG基本功能
5 多模式RAG practice/ch05/multimodal_rag.ipynb 搜索/查询文本+图像
6 RAG代理 practice/ch06/ch06_agentic_rag.ipynb 利用代理配置和工具
7 高级RAG practice/ch07/ch07_advanced_rag.ipynb Reranking/HyDE等高级技术
8 函数调用 practice/ch08/ch08_practice.ipynb 基于外部工具调用的代理
9 文本到SQL practice/ch09/ch09_text_to_sql.ipynb 自然语言→SQL查询代理
10微克 practice/ch10/server.py MCP服务器/客户端和示例

摘要:第1-4章奠定了“文档→矢量→搜索→回答”RAG的基本知识,第5-10章扩展到多模式/代理/高级搜索/工具(MCP)。

报告结构

.
├── practice/              # Chapter별 실습(노트북/스크립트/샘플 데이터)
├── theory/                # Transformer/LLM 등 이론 자료
├── project/               # 2025-2 프로젝트: 학칙 PDF RAG Q&A
│   ├── data/              # 제공 PDF(7개) — 이 폴더의 PDF만 사용
│   ├── main.py            # 제출 파일(단일 파일)
│   ├── test/              # 예시 queries/outputs
│   └── chroma_db_test/    # (--save) 실행 시 생성/갱신
└── dla/                   # uv 환경(의존성)

运行/开发环境

  • 建议使用Python3.10+
  • 依赖性安装(建议: uv): dla/是包含LlamaIndex/Chroma/Jupyter等的实习环境。
cd dla
uv sync
source .venv/bin/activate

环境变量(.env)

在项目/实践中,API键是根的 .env使用。

OPENAI_API_KEY=...

# (선택) 실습/확장에 따라 필요
GOOGLE_API_KEY=...
PINECONE_API_KEY=...
OPENWEATHER_API_KEY=...

2025-2学期深度学习应用项目

高丽大学 校规和学士运营规定PDF基于,自动回答与法规相关的问题 基于RAG的问答系统(聊天机器人) 实施是我们的目标。

概述(管线)

  1. --save:加载PDF→段落/区块分割→嵌入生成(OpenAI)→保存ChromaDB
  2. --infer: queries.json 输入→搜索ChromaDB(根据段落)→生成LLM答案→ outputs.json 保存

outputs.json在 id, question, answer(A/B/C/D), elapsed_sec, citations包括(参考依据)。

执行方法

project/ 路径必须在文件夹中运行。

cd project

# 1) ChromaDB 생성/갱신
python main.py --save

# 2) 질의응답 수행
python main.py --infer test/queries.json test/outputs.json

提交/评估备忘录

  • 截止日期:2025年12月19日(周五)23:59
  • 提交: project/main.py (单个文件)
  • 运行: --save, --infer 所有操作都必须无误
  • 评估:测试查询→ outputs.json的 "answer"(A/B/C/D)正确率比较
  • 实施限制:根据挑战指南 save_to_chroma(), infer() 禁止修改外部内容(请参见详细注释)

许可证

MIT许可证