DeepSeek11-Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南

🛠️ Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南

💻 一、环境准备
bash 复制代码
# 1. 安装 Docker 和 Docker Compose
sudo apt update && sudo apt install docker.io docker-compose -y

# 2. 添加用户到 docker 组(避免 sudo 权限)
sudo usermod -aG docker $USER && newgrp docker

# 3. 安装 Ollama(模型运行引擎)
curl -fsSL https://ollama.com/install.sh | sh
🐋 二、部署核心组件
bash 复制代码
# 1. 创建项目目录
mkdir ollama-rag && cd ollama-rag

# 2. 创建 docker-compose.yml 配置文件
cat > docker-compose.yml << EOF
version: '3.8'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"  # Web 访问端口
    volumes:
      - ./data:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"  # Ollama API 端口
    volumes:
      - ./ollama:/root/.ollama  # 模型存储目录
    restart: unless-stopped
EOF

# 3. 启动服务
docker-compose up -d
⚙️ 三、模型配置与知识库构建
bash 复制代码
# 1. 下载嵌入模型(示例用 BGE-M3)
docker exec -it ollama ollama pull bge-m3

# 2. 下载推理模型(示例用 Qwen2:7B)
docker exec -it ollama ollama pull qwen2:7b

# 3. 下载重排序模型
docker exec -it ollama ollama pull qwen-reranker:4b-q4_k

# 4. 访问 Open WebUI
# 浏览器打开:http://localhost:3000
# 首次登录创建管理员账户
📂 四、知识库配置(Open WebUI 操作)
1. 进入配置界面:
  • 点击"左下角"的【用户图标】,弹出快捷菜单,然后点击【Admin Panel】(【管理员面板】)
  • 顶部菜单选择【设置】(【Settings】),然后左侧菜单选择【文档】(【Documents】)
2. 配置模型
复制代码
嵌入(Embedding)
语义向量模型引擎(Embedding Model Engine):选择Ollama
http://localhost:11434    API 密钥:(不填)
语义向量模型(Embedding Model)
quentinz/bge-large-zh-v1.5:latest 
警告:如果您修改了语义向量模型,则需要重新导入所有文档
嵌入层批处理大小 (Embedding Batch Size):1

检索(Retrieval)
完整上下文模式(Full Context Mode)【关闭】

混合搜索(Hybrid Search)【打开】
重排序引擎(Reranking Engine) :选择 外部(External)
http://localhost:11434     API Key:(不填)
重排序模型(Reranking Model)
设置重排序模型(例如:BAAI/bge-reranker-v2-m3)
Top K  :3
Top K Reranker: 3
相关性阈值: 0
注意:如果设置了最低分数,搜索只会返回分数大于或等于最低分数的文档。
3.上传文档
  • 左侧菜单 → RAG → 点击 Upload
  • 支持格式:PDF/DOCX/TXT/Markdown(建议单个文件<20MB)
4. 高级设置
yaml 复制代码
chunk_size: 1024       # 文本切片长度
chunk_overlap: 128     # 切片重叠区域
hybrid_search: true    # 启用稠密+稀疏混合检索
instruction: "请用专业术语回答医疗问题" # 领域指令
🔍 五、验证 RAG 工作流

用户提问 Open WebUI 前端 Ollama 调用 bge-m3 生成查询向量 向量库检索 Top10 文档 Qwen-Reranker-4B 精排 Top3 Qwen2:7B 生成最终答案

⚠️ 六、性能优化技巧
  1. 硬件加速
    • NVIDIA GPU 用户:在 docker-compose.yml 添加:
yaml 复制代码
ollama:
  environment:
    - NVIDIA_VISIBLE_DEVICES=all
  runtime: nvidia
  1. 模型量化(降低显存占用)
bash 复制代码
# 转换 7B 模型为 Q4_K_M 量化版(显存需求从 14GB → 6GB)
docker exec -it ollama ollama quantize qwen2:7b q4_k_m
  1. 中文优化配置
    • 嵌入模型切换为 bge-large-zh
bash 复制代码
docker exec -it ollama ollama pull bge-large-zh
  • 在 WebUI 的 RAG 设置中修改嵌入模型
🚨 七、故障排查
问题现象 解决方案
上传文档后检索无结果 检查文档编码(需 UTF-8)
重排序模型加载超时 增加 Ollama 内存:docker-compose.yml 添加 shm_size: '2gb'
中文回答质量差 1. 切换中文优化模型 2. 添加指令:instruction: "请用简体中文回答"

💡 生产环境建议

  • 敏感数据场景:启用 WebUI 的 HTTPS 加密(参考官方 TLS 配置文档)
  • 高并发需求:部署 Redis 缓存检索结果(可提升 3-5 倍响应速度)

✅ 部署完成效果

访问 http://localhost:3000 体验功能:

  • 左侧聊天:直接与大模型对话
  • RAG 入口:上传/管理知识库文档
  • 问答测试:输入问题自动检索知识库生成答案

© 著作权归作者所有

相关推荐
雨辰AI8 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹8 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧9 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
星栈独行9 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
没有梦想的咸鱼185-1037-16639 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
kirs_ur10 小时前
SSD 在 AI 训练中的角色
大数据·服务器·人工智能
冬奇Lab10 小时前
AI 评测系列(06):DeepEval 实战——企业级 Agent 评测套件
人工智能
冬奇Lab10 小时前
开源项目第166期:worldmonitor — 实时全球情报仪表盘,73k Star 的 AI 驱动地缘政治监控平台
人工智能·开源·资讯
AI探索先锋10 小时前
AMD 2nm 芯片炸裂、欧洲首家人形机器人独角兽诞生、AI Agent 互联标准打响:10 条信号看懂产业变局|今日科技 AI 机器人快讯
大数据·人工智能·深度学习·搜索引擎·机器人
卡梅德生物科技小能手10 小时前
卡美德生物科普:RSPO3(R - 脊椎蛋白 3)
经验分享·深度学习·生活