Skip to content

Resurgamm/NewsRAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsRAG - 本地新闻知识库问答系统

基于本地部署的 LLM(Qwen3.5:4b)和 RAG(Retrieval-Augmented Generation)技术,从中文新闻数据集构建私有知识库,实现基于事实的问答。

架构

用户问题
   │
   ▼
┌──────────────┐    相似度检索    ┌──────────────┐
│  Embedding   │ ──────────────► │   ChromaDB   │
│ bge-small-zh │                 │  向量数据库   │
└──────────────┘                 └──────┬───────┘
                                       │ Top-K chunks
                                       ▼
                                ┌──────────────┐
                                │ Prompt 构建   │
                                │ (上下文+问题) │
                                └──────┬───────┘
                                       │
                                       ▼
                                ┌──────────────┐
                                │  Qwen3.5:4b  │
                                │  (Ollama)    │
                                └──────┬───────┘
                                       │
                                       ▼
                                   回答 + 来源

技术栈

组件 技术 说明
LLM Qwen3.5:4b via Ollama 本地推理,支持 thinking 模式
Embedding BAAI/bge-small-zh-v1.5 中文语义向量模型,GPU 加速
向量数据库 ChromaDB 轻量级本地持久化
数据源 OpenNewsArchive (HuggingFace) 880万篇中文新闻
框架 LangChain RAG 编排
CLI Rich 终端美化输出

安装

# 1. 创建 conda 环境
conda create -n myrag python=3.10 -y
conda activate myrag

# 2. 安装 PyTorch(CUDA 版本)
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu130

# 3. 安装项目依赖
pip install -r requirements.txt

# 4. 拉取 LLM 模型
ollama pull qwen3.5:4b

使用

第一步:构建知识库

# 导入 500 篇新闻(默认)
python ingest.py

# 或指定数量
python ingest.py -n 100

# 自定义切块参数
python ingest.py -n 200 --chunk-size 500 --chunk-overlap 100

运行后会在当前目录生成 chroma_db/ 文件夹。

第二步:交互问答

python main.py

进入交互界面后:

  • 直接输入中文问题进行查询
  • 输入 /think 切换推理模式(ON: 显示思维链推理过程 / OFF: 快速回答)
  • 输入 quit 退出

示例

你的问题 > 股市近期表现如何?

─────────────────── 推理过程 ───────────────────
(模型的思维链推理...)

───────────────────── 回答 ─────────────────────
根据检索到的新闻报道,近期A股市场表现强劲...

─────────────────── 参考来源 ───────────────────
  [1] 后市将展开慢牛行情
  [2] 沪深股市再创新高
  ...

耗时统计: 检索 0.3s | LLM 生成 45.2s | 总计 45.5s

项目结构

NewsRAG/
├── README.md           # 本文件
├── requirements.txt    # Python 依赖
├── ingest.py           # 数据导入管线(加载→切块→向量化→存储)
├── rag.py              # RAG 查询引擎(检索→构建 Prompt→调用 LLM)
├── main.py             # CLI 交互界面
└── chroma_db/          # (运行后生成)持久化的向量数据库

配置

可在 rag.py 中修改以下常量:

常量 默认值 说明
LLM_MODEL qwen3.5:4b Ollama 模型名称
EMBEDDING_MODEL BAAI/bge-small-zh-v1.5 Embedding 模型
OLLAMA_URL http://localhost:11434 Ollama 服务地址

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages