【RAG】Qwen 本地 RAG 推理智能体案例讲解
目录
一、案例目标
1.1 核心功能
1.2 技术要点
1.3 预期效果
二、技术栈与核心依赖
2.1 核心技术栈
2.2 核心依赖库
2.3 大语言模型选项
三、项目配置
3.1 环境准备
步骤 1:安装 Ollama
步骤 2:拉取所需模型
步骤 3:启动 Qdrant 向量数据库
3.2 依赖安装
3.3 可选配置:网络搜索
四、项目结构
文件说明
五、核心代码实现
5.1 自定义嵌入类
5.2 文档处理函数
PDF 文档处理
网页内容处理
5.3 向量存储管理
5.4 智能体初始化
RAG 智能体
网络搜索智能体
5.5 核心查询流程
六、运行与测试
6.1 启动应用
6.2 使用流程
6.3 测试示例
示例 1:PDF 文档问答
示例 2:网页内容问答
示例 3:网络搜索回退
七、实现思路与扩展建议
7.1 核心设计思想
1. 本地优先原则
2. 智能回退机制
3. 灵活配置
4. 来源追溯
7.2 架构优势
7.3 扩展建议
功能扩展
性能优化
部署优化
八、常见问题与解决方案
8.1 Qdrant 连接失败
8.2 模型加载失败
8.3 内存不足
8.4 检索结果不准确
九、完整源码
qwen_local_rag_agent.py
requirements.txt
项目概述:这是一个基于 Agno v2.0 框架构建的检索增强生成(RAG)系统,使用本地运行的 Qwen 3 和 Gemma 3 模型,结合文档处理、向量搜索和网络搜索功能,为用户查询提供准确、上下文感知的响应。
一、案例目标
1.1 核心功能
- 本地大语言模型支持:支持多种本地运行的 LLM,包括 Qwen3(1.7b/8b)、Gemma3(1b/4b)、DeepSeek(1.5b)
- 全面的 RAG 系统:支持 PDF 文档和网页内容的上传、处理、分块和嵌入
- 智能向量检索:使用 Qdrant 向量数据库进行高效的相似度搜索
- 网络搜索回退:当文档知识不足时,自动回退到网络搜索(通过 Exa API)
- 灵活的操作模式:支持 RAG 模式和直接 LLM 对话模式切换
