Skip to content

Repository files navigation

DouKu 视频 RAG 智能问答系统

基于 RAG(检索增强生成) 架构的抖音视频智能问答系统。用户可以用自然语言提问,系统从 4,554 条真实视频数据中检索相关内容,并生成准确回答。

非教程跟随项目,独立设计并开发。


功能特性

能力 实现方式
混合检索 FAISS 向量语义检索 (α=0.7) + jieba BM25 关键词检索 (α=0.3) 加权融合
重排序 DashScope qwen3-rerank API 对候选结果精排
阈值门控 置信度 < 0.5 时拒绝回答,防止模型幻觉
LLM 生成 LangChain + 通义千问 qwen-plus 基于上下文生成答案
评估体系 RAGAS 自动评估 + 手动 Faithfulness 双重量化
Web 界面 Streamlit 交互式问答页面

技术栈

  • Python 3.13
  • FAISS(向量索引)
  • LangChain(LLM 编排)
  • 通义千问 Embedding API / qwen-plus / qwen3-rerank
  • jieba(中文分词)+ rank_bm25
  • Streamlit(Web UI)
  • RAGAS(评估框架)

项目结构

RAG_first/
├── extract_all.py        # 数据提取:SQLite → pickle/txt
├── build_index_v2.py     # 批量向量化 + FAISS 索引构建
├── embedding_engine.py   # 通义 Embedding API 封装
├── retriever.py          # 混合检索器核心(FAISS+BM25+Rerank)
├── generator.py          # RAG 生成链 + 纯生成链
├── app.py                # Streamlit Web 界面
├── main.py               # 命令行入口(多轮测试)
├── evaluate.py           # RAGAS + Faithfulness 评估
├── ragas_config.py       # 评估配置
├── test_rerank.py        # Rerank 单元测试
├── .env.example          # 环境变量模板
└── README.md             # 项目说明

快速开始

1. 安装依赖

pip install langchain langchain-community faiss-cpu dashscope streamlit jieba rank_bm25 ragas

2. 配置环境变量

cp .env.example .env
# 编辑 .env,填入你的 API Key:
# DASHSCOPE_API_KEY=sk-xxxxx

3. 构建向量索引

python build_index_v2.py

4. 启动 Web 界面

streamlit run app.py

5. 或使用命令行

python main.py

评估数据

使用 RAGAS 框架 + 手动 Faithfulness 进行双重评估:

指标 含义 初始值 优化后
Answer Relevancy 回答与问题的相关性 0.26 0.73 ⬆️ +181%
Context Precision 检索上下文精确度 1.00 1.00 💯 满分
Faithfulness 回答忠实于上下文 0.40 1.00 ⬆️ +150%

核心架构流程

用户提问
   ↓
[标签过滤] 可选,按标签缩小候选范围
   ↓
[向量检索] FAISS IndexFlatIP + 通义 Embedding (1536维)
   ↓
[关键词检索] jieba 分词 + BM25Okapi
   ↓
[加权融合] α=0.7(向量) + α=0.3(BM25)
   ↓
[重排序] qwen3-rerank API 精排
   ↓
[阈值门控] score < 0.5 → 拒绝回答(防幻觉)
   ↓
[LLM 生成] 通义千问 qwen-plus → 输出回答

已知局限 & 改进方向

  • 测试集仅 5 条,计划扩充至 20+
  • 当前仅支持单轮对话,计划加入多轮记忆
  • 文件级 FAISS 索引,未来可迁移至 Milvus / Qdrant
  • 新数据需手动重建索引,计划支持增量更新

License

MIT

About

基于 RAG 架构的抖音视频智能问答系统 — FAISS+BM25混合检索 | qwen3-rerank重排序 | RAGAS评估

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages