Ollama + Open WebUI 本地部署DeepSeek

文章目录


前言

由于官网的deepseek经常问一个问题回答后经常处于繁忙状态,所以为了避免这种情况我们可以自己在本地部署个deepseek进行使用,我们可以本地使用Ollama和Open WebUI部署DeepSeek模型。deepseek模型有多个版本,相应对配置要求也不一样,要想获得最好的体验,这需要非常高的配置。


一、环境准备

最低系统要求

组件 要求
操作系统 Windows 10/11, macOS 12+, Ubuntu 20.04+
处理器 支持 AVX2 的 x86_64 CPU(Intel/AMD)
内存 16GB(7B 模型) / 32GB+(更大模型)
存储 至少 50GB 可用空间
GPU(可选) NVIDIA GPU(需 CUDA 11+)

必要软件

  1. Docker Desktop
    官方下载地址

    安装后需启用 Linux 容器(Windows)并分配至少 8GB 内存

  2. Git (可选)

    用于克隆 Open WebUI 仓库:

    bash 复制代码
    sudo apt install git  # Ubuntu
    brew install git     # macOS

二、安装 Ollama

通过 Docker 部署

bash 复制代码
# 创建持久化存储卷
docker volume create ollama_data

# 启动 Ollama 容器
docker run -d \
  --name ollama \
  -p 11434:11434 \
  -v ollama_data:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama

验证安装

bash 复制代码
docker logs ollama | grep "Listening"
# 应显示:Listening on [::]:11434

三、部署 Open WebUI

快速启动

bash 复制代码
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -e OLLAMA_API_BASE_URL=http://host.docker.internal:11434 \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

配置说明

  • OLLAMA_API_BASE_URL: Ollama 服务的地址
  • -v open-webui:/app/backend/data: 持久化聊天记录和用户数据
  • 访问地址:http://localhost:3000

四、加载 DeepSeek 模型

通过 Ollama 拉取模型

bash 复制代码
# 查看可用模型
curl http://localhost:11434/api/tags

# 拉取 DeepSeek 模型(示例)
docker exec ollama ollama pull deepseek-ai/deepseek-math-7b-base

支持模型列表

模型名称 大小 推荐配置
deepseek-7b 13GB 16GB RAM
deepseek-math-7b 13GB 16GB RAM
deepseek-coder-7b 13GB 16GB RAM

五、使用 Web 界面交互

首次使用

  1. 访问 http://localhost:3000
  2. 创建账户(首次会自动注册管理员账户)
  3. 在模型选择栏选择已加载的 DeepSeek 模型

功能特性

  • 对话模式:支持多轮上下文对话

  • 参数调整

    yaml 复制代码
    temperature: 0.7  # 控制随机性 (0-1)
    top_p: 0.9        # 输出多样性
    max_tokens: 2048  # 最大生成长度
  • 文件上传:支持 PDF/TXT 文件分析

  • 提示词库:内置常用提示模板


六、高级配置

GPU 加速(NVIDIA)

bash 复制代码
# 先安装 NVIDIA 容器工具包
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
  && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 重启容器时添加 GPU 支持
docker run --gpus all -d ... ollama/ollama

多模型管理

bash 复制代码
# 查看已下载模型
docker exec ollama ollama list

# 删除模型
docker exec ollama ollama rm deepseek-7b

七、常见问题

模型加载失败

现象Error: insufficient memory
解决

  1. 调整 Docker 内存限制至 16GB+

  2. 使用量化模型(添加 -q4 后缀):

    bash 复制代码
    ollama pull deepseek-7b-q4_0

WebUI 无法连接 Ollama

  1. 检查容器网络:

    bash 复制代码
    docker network inspect bridge
  2. 测试 API 连通性:

    bash 复制代码
    curl http://host.docker.internal:11434/api/tags

八、安全建议

  1. 身份验证

    在 Open WebUI 的启动命令中添加:

    bash 复制代码
    -e WEBUI_SECRET_KEY=your_secure_key
  2. 网络隔离

    使用自定义 Docker 网络:

    bash 复制代码
    docker network create ai-net
    docker run --network ai-net ... ollama/ollama
    docker run --network ai-net ... open-webui
  3. 防火墙规则

    仅允许本地访问:

    bash 复制代码
    ufw allow from 127.0.0.1 to any port 3000

总结

通过本教程,您已经实现了:

  1. 基于 Docker 的 Ollama 服务部署
  2. Open WebUI 可视化界面搭建
  3. DeepSeek 系列模型的加载与测试

扩展建议

  • 结合 LangChain 构建复杂 AI 应用
  • 使用 NGINX 添加 HTTPS 支持
  • 配置定时模型更新任务(需修改 Ollama 容器)

如需更新 Open WebUI,运行:

bash 复制代码
docker compose pull open-webui && docker compose up -d

官方文档参考 | Ollama 模型库

相关推荐
电鱼智能的电小鱼1 小时前
eFish-SBC-RK3576 工业HMI硬件方案设计
大数据·人工智能·嵌入式硬件·智慧城市·边缘计算
viperrrrrrrrrr75 小时前
大数据学习(74)-Hue元数据
大数据·hive·impala·hue·metasrore
程序员一一涤生6 小时前
数据、信息、知识、智慧:AI时代我们该如何思考?
ai·知识·dikw
铭毅天下10 小时前
《一本书讲透 Elasticsearch》勘误表
大数据·elasticsearch·搜索引擎·全文检索
扣丁梦想家10 小时前
Elasticsearch基础教程:从入门到上手
大数据·elasticsearch·搜索引擎
千亿的星空10 小时前
部队仓储信息化手段建设:基于RFID、IWMS、RCS三大技术的仓储物流全链路效能优化方案
大数据·人工智能·信息可视化·信息与通信·数据库开发·可信计算技术
居然鼬个高手10 小时前
mac电脑如何将wps接入deepseek (傻瓜式教学)
ai·wps·deepseek
ui设计前端开发老司机12 小时前
在大数据开发中ETL是指什么?
大数据·数据仓库·etl
青云交12 小时前
Java 大视界 -- Java 大数据在智慧交通自动驾驶仿真与测试数据处理中的应用(136)
java·大数据·自动驾驶·数据存储·仿真·智慧交通·测试数据处理