# rag **Repository Path**: qsy0818/rag ## Basic Information - **Project Name**: rag - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-19 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAG 问答系统 基于检索增强生成(Retrieval-Augmented Generation)的文档问答系统。 ## 项目结构 ``` rag/ ├── config/ # 配置文件 │ └── config.json # 系统配置 ├── data/ # 数据目录 │ ├── raw/ # 原始文档 │ ├── processed/ # 处理后的索引 │ └── test_data/ # 测试数据 ├── src/ # 源代码 │ ├── build_index.py # 构建索引脚本 │ ├── run_query.py # 交互式问答脚本 │ ├── test_query.py # 测试脚本 │ ├── utils/ # 工具模块 │ ├── retrieval/ # 检索模块 │ └── generation/ # 生成模块 └── requirements.txt # 依赖包 ``` ## 安装依赖 ```bash # 激活虚拟环境 source .venv/bin/activate # 安装依赖(如果还没安装) pip install -r requirements.txt ``` ## 使用方法 ### 1. 构建索引 首次使用或添加新文档后,需要构建索引: ```bash cd src python build_index.py ``` 索引会自动从 `../data/raw` 目录加载文档,并保存到 `../data/processed/index`。 ### 2. 交互式问答 索引构建完成后,可以启动交互式问答: ```bash cd src python run_query.py ``` 然后输入你的问题,系统会: 1. 检索相关文档片段 2. 显示检索结果和相似度 3. 生成回答 输入 `exit` 或 `quit` 退出系统。 ### 3. 测试脚本 使用测试脚本快速验证系统功能: ```bash cd src python test_query.py ``` 会自动测试几个预设问题并显示结果。 ## 配置说明 配置文件 `config/config.json`: ```json { "language": "zh", # 语言(zh: 中文, en: 英文) "embedding_model": "tfidf", # 向量模型(tfidf: 轻量级) "generation_model": "rule_based", # 生成模型(rule_based: 规则生成) "max_segment_length": 500, # 文档分段长度 "segment_overlap": 50, # 分段重叠长度 "max_answer_length": 256, # 最大回答长度 "retrieval_top_k": 5 # 检索文档数量 } ``` ## 添加新文档 1. 将文档(.txt, .pdf, .docx)放入 `data/raw/` 目录 2. 重新构建索引:`cd src && python build_index.py` 3. 运行问答系统:`python run_query.py` ## 技术栈 - **文档加载**: PyMuPDF, python-docx - **文本处理**: jieba (中文分词) - **向量化**: TF-IDF (scikit-learn) - **向量检索**: FAISS - **生成**: 基于规则的文本生成 ## 示例问题 - 什么是临床营养学? - 维生素A缺乏会导致什么疾病? - 如何治疗维生素C缺乏? - 临床营养评估包括哪些内容? ## 注意事项 - 所有脚本都需要在 `src/` 目录下运行 - 确保虚拟环境已激活 - 使用统一的日志标签 `[RAG_TAG]` 便于查看