DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

109次阅读

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

前言

在人工智能技术迅猛发展的今天,本地化部署大语言模型(LLM)已成为开发者、研究人员乃至技术爱好者、业余普通人群的重要需求。本文将详细讲述:软硬件环境配置、容器化部署的以及模型与应用的集成。

本文以OllamaOpen-Webui为核心,深入剖析从零开始搭建私有化AI服务的完整流程。无论是是拥有高性能显卡的人员,还是仅依赖CPU集显的入门用户,均可通过本文获得清晰指引。文中不仅涵盖基础环境搭建、模型部署、多容器通信配置,更拓展至其他应用场景:

  • 知识库集成:通过Nomic Embed模型实现文档语义理解,构建可检索的智能问答系统;

  • 多模型API融合:无缝接入DeepSeek等云端模型,突破本地算力限制;

  • AI联网搜索:结合Tavily API赋予模型实时信息获取能力;

  • 图像生成生态:联动Stable Diffusion,实现文生图一站式解决方案。

适用人群和人员门槛

适用人群

  1. 技术开人员

    • 需在本地或私有云环境部署AI服务的个人、中小型团队;
    • 希望将大语言模型(LLM)与企业知识库、业务系统集成的全栈开发者;
  2. AI研究者与学习者
    • 需低成本探索多模态AI落地的学术研究人员;
    • 渴望理解从模型部署到应用层开发完整链路的技术爱好者;
    • 有意构建个人智能助手、文档分析工具的自学者。
  3. 企业决策者、管理者、想要提高工作效率的职员
    • 计划搭建内部智能问答系统、知识管理平台的中小企业技术负责人;
    • 关注数据隐私安全,需完全本地化AI服务的企业架构师。

人员门槛要求

为顺利完成本文示例部署,建议具备以下基础技能:

能力维度 最低要求 学习补给建议
操作系统基础 熟悉Windows/Linux终端基础操作(文件路径管理、权限设置、服务进程查看) 如果无Linux基础的,需要最起码知道什么叫命令行和怎么打开CMD和powershell,建议全程使用Windows桌面版系统完成
容器技术入门 理解Docker核心概念(镜像/容器/卷),能执行docker rundocker logs等基础命令,最起码能够使用Docker桌面版 Docker官方文档Docker 菜鸟教程
硬件认知 了解CPU/GPU基础参数(显存/指令集),会通过任务管理器/nvidia-smi查看硬件状态 最起码对自身使用的计算机硬件参数有基本认知
故障排查能力 会查IP地址、会ping网络设备 最好会魔法上网,遇到网络不通,最起码知道使用PING 之类命令排查
网络基础 理解IP/端口概念,会配置防火墙规则开放指定端口(如11434/3000/7860) 最起码知道怎么操作Windows桌面版本的防火墙怎么放行、禁用某个应用或者端口

零基础友好性说明

  • 教程已规避需编译、python安装方式、手动配置等复杂操作,几乎所有依赖均通过Docker自动化部署
  • 关键步骤配备多环境适配说明(如Windows/Linux路径差异、GPU低配优化参数等)
  • 提供逐按需注释的命令行代码,可直接复制执行(无需Shell/PowerShell基础)
  • 设置避坑指南模块(如向量模型替换警告、容器网络隔离方案)降低试错成本

小白建议

💡 对于完全无技术背景的用户的建议
1. 优先体验基础模型(1.5B小模型对话)
2. 掌握基础操作后再去逐步拓展模型规模/知识库模块
3. 遇到报错时优先查日志、命令行报错、本文的文加粗字体注释,或者尝试借助AI解答

1. 软硬件要求

1.1 硬件

以下仅为可供正常运行并且速度尚可接受的实验配置要求建议,经测还可以使用更低的配置来运行,可是配置再降低的话实在没必要,因为速度将会非常缓慢,并且会产生类似硬件不支持指令集等导致无法运行的情况,例如:类似j1800太过旧的这种CPU,则会导致诸如anythingLLM这类应用根本无法运行,这无疑会增加你的排错、试错时间成本。如果自身不符合要求或者负载太重,可以将Open-Webui的调用模型方式改成使用API服务商提供的接口接入模型(见4.1 使用AI服务商提供的API接入模型),又或者直接租用一台带有GPU的云主机、分开不同主机来运行不同应用(见附录)。

  • CPU:不要太古旧的CPU,本文使用的是I5-4460,最基本要求支持AVX指令集的CPU,如果不支持将很可能无法实现

支持 AVX 的 CPU:

  • Intel:Core i 系列(第三代及以后)、Xeon E5/E7 系列。
  • AMD:Ryzen 系列、EPYC 系列。

不支持 AVX 的 CPU 示例:

  • Intel:Core 2 Duo、Atom 早期型号。
  • AMD:推土机(Bulldozer)之前的架构。

如果你是在云主机之类,一般都不太确定CPU具体型号,这种情况下可以尝试本机查询

  • Windows:直接运行检测软件或者查看系统属性页面、查看CPU厂商官网的该型号CPU的硬件信息资料即可。
  • Linux:运行lscpu | grep avx,如果支持则显示类似如下信息,并带有avx的关键词:
Flags:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat
Bash
  • 显卡:建议20系以上英伟达显卡起步,并且支持CUDA。实测,运行1.5B模型时候,会占用接近2G的现存。更大的模型可以如此类推,可以全依赖CPU或者使用10系显卡运行,但速度非常慢,除非是想起步入门学习做测试,或者想根据本文入门难度来考虑是否增设、升级硬件,否则并不建议用于长期使用。

  • 硬盘:运行的所在分区建议预留起码100G左右的空间,这是因为考虑到虚拟内存、模型大小、Docker镜像大小等因素

  • 内存:建议16G起步,你应该至少有8G的内存来运行7B模型,16G的内存来运行13B模型,32G的内存来运行33B模型。为了防止内存不足崩溃,Windows环境最好把虚拟内存设置成你的物理内存的1.5-2倍大小,Linux下最好将SWAP设置跟物理内存同等大小。Open-Webui和Ollama运行高峰期间,很可能将16G占用满,再加上后续会引用Stable Diffusion WebUI进行图片生成。

  • 网络:最好具备魔法上网条件,用于Docker和Ollama镜像拉取和程序的部分初始化

1.2 软件

1.2.1 Windows

  • Windows 10 专业版桌面系统
  • 安装好Docker Desktop
  • 安装好英伟达的CUDA ToolKit
    以上在图形界面系统直接网上搜索然后下载安装即可
    小白新手建议全程使用Windows桌面版,以免遇到问题自己无法解决

1.2.2 Linux

  • Ubuntu、Debian(也可以是桌面版)
  • 安装好Docker(桌面版亦可以安装Docker Desktop)
  • 安装英伟达驱动容器ToolKit,详细参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#

    1. 配置APT软件仓库
    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/stable/deb/nvidia-container-toolkit.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
    Bash

    sudo apt-get update

    1. 安装英伟达容器工具包sudo apt-get install -y nvidia-container-toolkit
    2. 配置英伟达docker驱动
      sudo nvidia-ctk runtime configure --runtime=docker
      sudo systemctl restart docker

2. 安装Ollama和Open-Webui

以下用到的命令,在Windows中使用的是CMD或者时powershell(管理员权限,以下简称PS)方法:

  1. Win + R 组合键
  2. 按下 Win + R 打开运行窗口
  3. 输入:
    • CMD → 输入 cmd
    • PowerShell → 输入 powershell

Linux则直接运行即可。


👇如果你在后续Open-Webui中配置需要填入Ollama地址时,没有出现连接问题,那么这一步时不需要做的。这样做的目的是:容器间可通过服务名直接通信,隔离性强,适合复杂多容器场景。如果你目前并不理解为什么,那么建议直接照做,后文也按此方式进行示范


如果你所在主机的端口、网络环境上有太多交集,为了避免网络冲突问题干扰,建议将Ollama和Open-Webui分开两台主机安装。或者当两者都安装在同一台宿主机下时,在运Docker运行参数中设置加入同一个Docker网络:

  1. 创建一个名为--network=ollama-net的网络:docker network create ollama-net
  2. 在以下Docker镜像容器安装过程中加入参数--network=ollama-net
  3. 在后面将会提及到Open-Webui中配置需要填入Ollama地址,则填入:
    http://ollama:11434(双方通过容器服务名访问)。

👆如果你在后续Open-Webui中配置需要填入Ollama地址时,没有出现连接问题,那么这一步时不需要做的。这样做的目的是:容器间可通过服务名直接通信,隔离性强,适合复杂多容器场景。如果你目前并不理解为什么,那么建议直接照做,后文也按此方式进行示范


2.1 Ollama

以下按主机配置自身情况选其一,并不是按顺序全做
配置数据路径时,注意Linux和Windows的路径斜杠方向,Linux是/,Windows是\

  1. 安装Ollama
  • CPU全运行:docker run -d --network=ollama-net -p 11434:11434 -v 你想要设置的ollama数据存储路径:/root/.ollama --name ollama ollama/ollama

  • GPU运行:docker run -d --gpus=all -p 11434:11434 -v 你想要设置的Ollama数据存储路径:/root/.ollama --name ollama ollama/ollama

    💡 低配机优化参数(根据自身配置可选):
    一般显存低于8G已经属于低配,这里是通过调整参数,让低配机在运行较大模型的时候,尽量不全偏向于CPU运行,否则运行稍微大于1.5B的模型就完全偏重于CPU占用。可是想要彻底解决还是以来性能高的显卡,或者干脆直接使用API方式

  1. 查看GPU UID:nvidia-smi -L
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  2. 按你主机实际情况套用在以下参数
    docker run -d --gpus=all -e OLLAMA_GPU_LAYER=cuda -e CUDA_VISIBLE_DEVICES=你的GPU_UID -e OLLAMA_NUM_GPUS=宿主机拥有的GPU数量 -p 11434:11434 -v 你想要设置的Ollama数据存储路径:/root/.ollama --name ollama ollama/ollama

Ollama 支持多个 GPU 相关环境变量,可通过 Docker 传递:

环境变量 用途 示例值
OLLAMA_GPU_LAYER 指定 GPU 加速层(如 cudarocm cuda
OLLAMA_FLASH_ATTENTION 启用 Flash Attention 优化(需 GPU 支持),访问Flash Attention的GitHub仓库(如Dao-AILab/flash-attention),查看支持的硬件列表和依赖项 1
CUDA_VISIBLE_DEVICES 限制容器可见的 GPU 设备(逗号分隔),(运行nvidia-smi可以查看) GPU序号:0,1,也可以是GPU的UID
OLLAMA_NUM_GPUS 指定使用的 GPU 数量 如果双卡则为:2

2.2 Open-Webui

  1. 安装open web ui
    以下按主机配置自身情况选其一,并不是按顺序全做
    配置数据路径时,注意Linux和Windows的路径斜杠方向,Linux是/,Windows是\
  • 默认配置(无GPU主机或者AMD)
    docker run -d --network=ollama-net -p 3000:8080 -v 你想要设置的Open-Webui数据存储路径:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
    此参数默认只依赖CPU运行

  • 英伟达GPU版本(事前必须安装CUDA toolkit)
    docker run -d -p 3000:8080 --gpus all -v 你想要设置的Open-Webui数据存储路径:/app/backend/data --name open-webui-cuda ghcr.io/open-webui/open-webui:cuda

    1.1 调整参数(可选,非必要)
    以下按需要调整,参考3.1、3.2中的运行参数套入其中

    • 单用户模式:WEBUI_AUTH=False

    • 如果你运行Open-Webui的主机显卡性能不足或者没有GPU,而需要在局域网内另一台显卡性能好的主机上运行Ollama(也可以是带GPU的云主机),则如下指定Ollama的主机地址。本文示例是Ollama和Open-Webui都运行在同一台宿主机内,所以不需要做这一步。如果你需要Ollama运行在另一台主机,那么Open-Webui所在宿主机则可以不需要再安装Ollama
      加入以下参数,指定Ollama的主机地址:OLLAMA_BASE_URL=https://Ollama所在主机的IP或者域名:端口(默认可以不加端口)

3. 部署Ollama和Open-Webui

这里以Windows环境演示,Ollama和Open-Webui都在同一台宿主机上运行,因为都是docker原因,所以大部分提及的命令跟Linux一样,遇到区别我会另外注明。以下命令在Windows则使用CM或者PS运行,Linux则直接在终端运行。

3.1 部署Ollama

Docker版本的Ollama默认运行就是开启了监听0.0.0.0,并使用11434端口,至于GPU参数似乎你在上编的设置。Docker版本和直接安装的版本区别是命令行稍微不同,必须进入Docker容器才能操作。如果需要在命令行中运行,如:docker exec -it ollama ollama,代表进入了容器内运行了一次这个ollama命令

3.1.1 测试一下宿主机本机的Ollama服务是否已经联通

  • Windows:cmd中运行:curl http://localhost:11434
  • Linux:curl http://localhost:11434
    如果显示Ollama is running则为联通,localhost可以用127.0.0.1代替。如果想从局域网其他主机检测或者直接检测部署在云主机上的Ollama,则用浏览器打开http://ollama的IP地址或者域名:11434。

3.1.2 测试Ollama,运行DeepSeek模型

在模型名称中,如:“·deepseek-r1:1.5b·”中,“b”代表“Billion”(十亿),表示模型的参数量(本文以下将或称:体量或者规量)为15亿(1.5 billion)。这是深度学习领域常见的命名方式,用于直观反映模型的规模。

  • 参数量的意义:
    模型的参数量直接影响其学习能力和复杂度。15亿参数的模型属于中等规模(如GPT-2有15亿参数),通常比小型模型(如百兆参数)表现更强,但比千亿级大模型(如GPT-3)更轻量。

  • 命名惯例:

    M = Million(百万,如300M表示3亿参数)
    B = Billion(十亿,如1.5B表示15亿参数)
    T = Trillion(万亿,如1.5T表示1.5万亿参数)

  • 实际影响:
    参数越多,模型通常需要更多计算资源和数据训练,但可能具备更强的泛化能力。15亿参数的模型适合中等算力场景,平衡了性能与资源消耗。

  • 参数量与模型能力的关系

参数量规模 典型模型示例 特点
小型(<100M) MobileNet、TinyBERT 计算高效,适合移动端或嵌入式设备,但表达能力有限。
中型(100M-10B) GPT-2(1.5B)、BERT-base(110M) 平衡性能和计算成本,适用于通用任务(如文本生成、分类)。
大型(>10B) GPT-3(175B)、PaLM(540B) 需要海量数据和算力,具备强泛化能力,但训练和推理成本极高。

现在,拉取一个DeepSeek模型用于测试:

  • docker exec -it ollama ollama run deepseek-r1:1.5b
  • 此时模型将会启动,并出现对话框,这时候只要打字随便问些问题就可以跟你对话了,输入ctrl+d可以退出运行。

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

3.1.3 拉取向量模型nomic-embed-text

这是比较重要的一步,用于搭建知识库,并且用于识别文档扽等。Nomic Embed(即nomic-embed-text)是由Nomic AI开发的开源文本嵌入模型,Nomic Embed 是一个典型的向量嵌入模型(Embedding Model)。它能够将文本(如句子、段落或文档)转换为固定长度的数值向量(通常是几百到几千维的数组),这些向量能够捕捉文本的语义信息。
例如:文本为“猫是一种可爱的动物。”则输出向量:[0.23, -0.45, 1.2, ..., 0.87](假设为768维向量)。

以下来重点说下该模型的核心作用及:

  • 文本嵌入生成
    Nomic Embed能够将文本(如句子、段落或文档)转换为高维向量表示,这些向量捕捉语义信息,支持语义相似度计算、文本分类、信息检索等任务126。
  • 语义搜索:通过向量相似度匹配,提升搜索引擎的准确性和相关性。
  • 知识库构建:将文档转换为嵌入向量,支持智能问答系统快速检索相关知识
  • 长文本处理:支持最长8192 Token的上下文窗口,在长文本任务(如文档分析、摘要)。

拉取命令docker exec -it ollama ollama pull nomic-embed-text。完成后运行:docker exec -it ollama ollam list看看是否已经拉取成功。如下所示,表明已经拉取了1.5Bnomic-embed-text模型:

NAME ID SIZE MODIFIED
nomic-embed-text:latest 0a109f422b47 274 MB 4 days ago
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 4 days ago
Bash

3.2 部署Open-Webui

3.2.1 初始配置Open-Webui

  1. Docker容器启动后,Open-Webui初次初始化时间会比较长,很可能网页打不开。那是因为程序初始默认使用了向量模型:all-minilm:l6-v2,在初次启动时,Open-Webui就在下载它。鉴于国网络环境原因,它会在尝试下载后如果失败,就跳过此步后进行下一步。基于以上原因,所以导致启动还没完成而等待时间有点长,耐心等待即可。运行:docker logs -f open-webui(如果你的是英伟达版:docker logs -f open-webui-cuda),可以看见此时的错误信息如下:
    INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
    ......
    huggingface_hub.errors.LocalEntryNotFoundError: An error happened while trying to locate the files on the Hub and we cannot find the appropriate snapshot folder for the specified revision on the local disk. Please check your internet connection and try again.
    WARNI [sentence_transformers.SentenceTransformer] No sentence-transformers model found with name sentence-transformers/all-MiniLM-L6-v2. Creating a new one with mean pooling.
    Bash

    看见以下信息则代表启动成功了

    2025-03-30 17:30:03 INFO: Started server process [1]
    2025-03-30 17:30:03 INFO: Waiting for application startup.
    2025-03-30 17:30:03
    2025-03-30 17:30:03 ██████╗ ██████╗ ███████╗███╗ ██╗ ██╗ ██╗███████╗██████╗ ██╗ ██╗██╗
    2025-03-30 17:30:03 ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██║ ██║██╔════╝██╔══██╗██║ ██║██║
    2025-03-30 17:30:03 ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ █╗ ██║█████╗ ██████╔╝██║ ██║██║
    2025-03-30 17:30:03 ██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║██║
    2025-03-30 17:30:03 ╚██████╔╝██║ ███████╗██║ ╚████║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
    2025-03-30 17:30:03 ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝
    2025-03-30 17:30:03
    2025-03-30 17:30:03
    2025-03-30 17:30:03 v0.5.20 - building the best open-source AI user interface.
    2025-03-30 17:30:03
    2025-03-30 17:30:03 https://github.com/open-webui/open-webui
    Bash
  2. 经历上一步启动成功后,就可以直接进入你的Open-Webui了。打开网页浏览器访问OpenWebUI界面,地址栏中输入:http://Open-Webui所在宿主机IP:3000。:http://Open-Webui宿主机IP:3000。进入网页后,因为你是初次启动,会要求你创建管理员账号和设置密码,填入后登录即可。完成后Open-Webui可能会稍微久一些才会有反应,原因如同上文所说,Open-Webui初始配置里有一部分初始功能是依赖外网的,你可能会有一段时间网页都是黑屏的,耐心等待就好,这是正常的,你可以在Open-Webui日志看见如下内容:
    2025-03-31 09:41:36.112 | INFO | open_webui.routers.ollama:get_all_models:300 - get_all_models() - {}
    2025-03-31 09:41:36.119 | ERROR | open_webui.routers.ollama:send_get_request:98 - Connection error: Cannot connect to host host.docker.internal:11434 ssl:default [Connect call failed ('192.168.65.254', 11434)] - {}
    Bash

稍等片刻后就会如下成功启动:

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  1. 在设置中检查 Ollama是否正确。
  • 点击有上角用户头像→管理员面板设置

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  • 外部连接→暂时把OpenAI API的开关关了

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  • 管理Ollama连接点击URL中填入Ollama宿主机的ip地址和端口,如果是跟Open-Webui是同一个宿主机则:http://host.docker.internal:11434(默认)。如果你在安装时候Docker参数配置了上文的专用网络则http://ollama:11434,如果你使用局域网其他主机或者云主机来安装Ollama则:http://Ollama所在主机IP:11434。完成后点击如果成功则会出现验证成功提示,完成后点击保存

  • 文档嵌入部分中,把默认改成Ollama语义向量模型引擎的地址按照上一步填入→在语义向量模型中填入:nomic-embed-text,完成后点击保存

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

注意:日后如果更换此模型,将会清空知识库

  • 管理员设置模型模型点击后如无意外就会刷新出已经连接到的模型(初次时间可能比较久,耐心等候。)

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

3.2.2 开始部署Open-Webui

3.2.2.1 建立知识库模型

  1. 创建知识库:首页中选择工作空间知识库
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

    • 知识库命名:按你需要
    • 描述你的知识库和目标基于所有文档的文件名和内容,为用户提供:搜索、查询、提问、分析、总结服务(此内容因情况而异)
      DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台
  2. 选择知识库→选择你刚才所创建的知识库→点击上传文件(可以是txt、word、excel、pdf之类),这里随便新建一个有文字内容的txt上传,以便测试AI是否能够根据文中内容进行对话。

    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

    内容如下:

    姓名:小明
    性别:男
    年龄:虽然1971年出生,但
    永远小学生。
    生卒年月:1971一未知
    擅长:将墨水弄在作业本上、
    走到学校门口发现本子忘带等
    特征:不考第一就考倒数第一
    社会地位:与小红、小强、小
    芳并称四大金刚,称霸语、数
    界,被70——00后们深恶痛绝。
    Text
  3. 创建知识库模型(模型绑定知识库):首页中选择工作空间模型
    • 填入模型名称模型ID按你需要填入
    • 基础模型 (来自)选择3.1.2中拉取的deepseek-r1:1.5b
    • 绑定知识库:点击该页面内的知识库,选择你刚才命名的知识库→勾选下方的vision、citations
    • 点击创建并保存
      DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台
      DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

至此Open-Webui已经完成了基本配置可以测试使用,如果你想试试单纯跟AI模型简单对话,可以回到首页点击新对话,在新对话右侧下拉选单中选择:deepseek-r1:1.5b进行简单的对话以便测试。

3.2.2.2 测试Open-Webui知识库模型功能

  • 回到Open-Webui首页面点击新对话,在新对话右侧下拉选单中选择:你刚才创建的知识库模型
  • 选择你刚才已经添加了的模型,开始按需要问问题,例如这里问一些关于小明的问题,Open-Webui会通过Ollama向刚才所上传的txt文本进行搜索内容并总结答案。

如果你在知识库模型里头没有选择刚才的知识库,那么AI只能回答一些风马牛不相及的东西。如果发现AI回答的内容无关或者感觉无法识别,不妨多试几次。回答的准确性与你使用的模型规量有关,这里使用的是1.5b模型,所以回答得很简单。

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

到目前位置Ollama和Open-Webui的测试和部署已经完成,本文后续内容将着重以Open-Webui内的操作、使用为主。

4 Open-Webui应用

这部分我会不定时加入更新,目前本文只包含:AI联网搜索、知识库、图片生成。

4.1 使用AI服务商提供的API接入模型

如果你机器性能不够而无法使用更大的模型,可以使用API服务商提供的模型连接。这里以DeepSeek官方API为例,DeepSeek服务商文档:https://api-docs.deepseek.com/zh-cn/ ,使用DeepSeek的模型API进行示范。当然,这肯定不止一个服务商,其他服务商可以自己寻找。
使用此方式时请注意个人信息、隐私等敏感资料泄露,切勿使用不信任和来历不明的服务提供商。

4.1.2 注册DeepSeek服务获取API

  1. 进入https://platform.deepseek.com ,注册或者登录账号,2. 按自己实际需求情况充值
  2. 点击API keys→创建

    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

    这里创建key完成后,及时复制下来保存好key,因为系统每一个key只显示该key完整的内容一次。如果忘了保存,只能新建或者删除key,无法找回key的内容

4.1.3 配置DeepSeek API服务接口

  • 点击左下角用户头像→管理员面板设置
  • 外部连接→把OpenAI API的开关打开→点击
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  • API基础地址中填入你购买的API服务商地址,例如DeepSeek官方的API地址为:https://api.deepseek.com

  • API密钥填入在上一步创建的API key
  • 点击验证服务连接
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

  • 管理员面板设置模型等待模型列表刷新,看看是否已经获取到模型信息。

配置已经完成后,回到首页点击新对话,在新对话右侧下拉选单中选择模型对话以便测试。1. deepseek-chat 模型对应 DeepSeek-V3deepseek-reasoner 模型对应 DeepSeek-R1。这里自行选择进行测试即可。

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

同理,也可以把连接了API的模型套入知识库中使用,知识在知识库模型中替换使用的模型即可。

4.2 开启和使用联网搜索API让AI联网搜索互联网内容

这部分的目的是让Open-Webui调用由搜索API服务商的服务,然后所搜索到的内容交由AI去分析、总结、表达。Tavily的免费用户每个月可以获得1000 Credits,一般情学习测试况足够用(你可以理解为搜索的次数)
使用模式类似使用DeepSeek API,这里以使用Tavily这个API提供商为例。Open-Webui也提供了好几种可以使用的服务商配置,日后可以根据自己喜好选择。

  1. 进入官网注册,并生成API : https://app.tavily.com/home
    全程按照提示即可
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台
  2. 回到Open-Webui:管理员面板设置

  3. 联网搜索的开关打开→选择联网搜索引擎并填入Tavily的API KEY→保存即可
    DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

配置已经完成,回到首页点击新对话,在新对话中多出了一个🌏联网搜索按钮,单击打开后再文本框输入你想提问的问题,即可让AI模型根据搜索到的结果和内容进行表达。这例如:告诉我今天的新历日期和黄历日期、搜索今天XX市的天气状况等。

这里的结果准确性跟你所使用的模型体量有关,例如1.5b的模型回答内容就会很傻。如果你觉得AI的回答根本没有搜索,那么可以去tavily的用户页面查看Credits有没有被扣,或者查看Open-Webui的日志输出。
Open-Webui在搜索互联网时的日志输出:

2025-03-31 11:45:47.310 | INFO | open_webui.routers.retrieval:process_web_search:1417 - trying to web search with ('tavily', "Today's Gregorian date: March 31, 2025") - {}
......
2025-03-31 11:45:47.310 | INFO | open_webui.routers.retrieval:process_web_search:1417 - trying to web search with ('tavily', "Today's Gregorian date: March 31, 2025") - {}
Fetching pages: 100%|##########| 3/3 [01:05<00:00, 21.78s/it]
2025-03-31 11:46:58.210 | INFO | open_webui.routers.retrieval:save_docs_to_vector_db:782 - save_docs_to_vector_db: document Gregorian calendar 2025, Today's Date in Various Calendars, Hebrew Date Converter - March 31, 2025 / 2nd of Nisan, 5785 web-search-dc67deff33e0c55989d50d124a452cee83b4766901c716518b36
- {}
2025-03-31 11:46:58.223 | INFO | open_webui.routers.retrieval:save_docs_to_vector_db:865 - adding to collection web-search-dc67deff33e0c55989d50d124a452cee83b4766901c716518b36 - {}
2025-03-31 11:47:20.200 | INFO | open_webui.routers.retrieval:process_web_search:1417 - trying to web search with ('tavily', 'Chinese (Zodiac) date today: Pisces') - {}
......
2025-03-31 11:55:39.440 | INFO | open_webui.retrieval.utils:query_doc:82 - query_doc:result [['9c8c50d1-d562-49fb-93b9-f75ffeb8f00d', '946f446a-7992-4cb2-a9ba-25b6e5a9d9ba', '1225b79e-aa7e-4fa5-abff-9226b247e699']] [[{'description': '天天黄历根据《玉匣记》、以天干日月的变化来判断当日的吉凶,为您提供2025年3
月31日黄历查询、财神方位查询、2025年3月31日五行穿衣颜色、2025年3月31日属什么生肖,查看更方便。', 'embedding_config': '{"engine": "ollama", "model": "nomic-embed-text"}', 'language': 'No language found.', 'source': 'https://m.tthuangli.com/jinrihuangli/2025-3-31.html', 'start_index': 7, 'title': '2025年3月31日老
黄历查询,老黄历吉日-天天黄历'}, {'description': '老黄历为您提供2025年3月31日黄历,农历二〇二五年三月初三
黄历,2025年3月31日宜忌,2025年3月31日农历,2025年3月31日阴历,黄历查询2025年3月31日,2025年3月31日是不是好日
子,2025年3月31日是否为吉日查询,2025年3月黄道吉日,2025年3月31日黄道吉日吉时查询,2025年3月31日吉时,2025年3月31日时辰吉凶,2025年3月31日老黄历查询,2025年3月31日黄道吉时查询等', 'embedding_config': '{"engine": "ollama", "model": "nomic-embed-text"}', 'language': 'zh-cn', 'source': 'https://mhuangli.txcx.com/2025-3-31.html', 'start_index': 2659, 'title': '2025年3月31日黄历(农历三月初三),黄道吉日吉时及宜忌查询-老黄历-通
晓查询'}, {'description': '天天黄历根据《玉匣记》、以天干日月的变化来判断当日的吉凶,为您提供2025年3月31日黄历查询、财神方位查询、2025年3月31日五行穿衣颜色、2025年3月31日属什么生肖,查看更方便。', 'embedding_config': '{"engine": "ollama", "model": "nomic-embed-text"}', 'language': 'No language found.', 'source': 'https://m.tthuangli.com/jinrihuangli/2025-3-31.html', 'start_index': 4513, 'title': '2025年3月31日老
黄历查询,老黄历吉日-天天黄历'}]] - {}
Bash

tavily 使用额度扣除:
DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

使用较大体量时的模型准确性:
DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

使用较小体量时的模型准确性:
DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

同理联网模式也可以配合知识库模型使用,可是并不建议这么做,因为隐私问题,目前不确定会不会造成信息泄露。

4.3 开启和使用图片生成功能

这部分的目的是通过Open-Webui调用具备图片生成共功能的API服务或者调用现有已经被部署的学习框架的API,配合AI模型来生成图片。在 Open-WebUI 中调用 Stable Diffusion WebUI 的 API 生成图片,本质上是基于 HTTP 请求与 Stable Diffusion WebUI 的后端服务进行交互,来生成图片。

4.3.1 安装并部署Stable Diffusion WebUI

这部分内容比较多,详细请参考:https://chrisxs.com/jishu/2175/ ,在成功部署并且能正常使用Stable Diffusion WebUI生成图片后再回来继续下一步。

完成Stable Diffusion WebUI的部署后,需要开启Stable Diffusion WebUI的API功能:
webui-user.bat中的set COMMANDLINE_ARGS=添加--api,即:set COMMANDLINE_ARGS=--api
附:如果是你部署了Stable Diffusion WebUI的主机是Linux,则export COMMANDLINE_ARGS="--api"

本文例子都是基于Ollama、Open-Webui、Stable Diffusion WebUI(windwos环境)都部署在同一台主机内为前提环境

4.3.2 Open-Webui配置Stable Diffusion WebUI API

💡 使用图像生成功能时,Stable Diffusion WebUI必须处于运行状态

  1. 管理员面板设置图像
  2. 打开图像生成(实验性)、图像提示词生成两个开关
  3. 点击图像生成引擎→选择AUTOMATIC1111
  4. AUTOMATIC1111 基础地址填入:http://localhost:7860,点击测试是否连接成功。(如果不行可以尝试:http://你的Stable Diffusion WebUI IP主机地址:7860或者http://127.0.0.1:7860)
  5. 按自己需求配置好设置图片生成参数,我的例子为:
Sampler:Euler a
Scheduler:Automatic
CFG Scale:5
设置默认模型:sd1.5\anything-v5.safetensors
设置图片分辨率:512x512
设置步骤:20

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

点击保存后,就可以开始测试图片生成。新建一个AI对话,可以叫他随便生成一个图片,即可看见效果。期间,Stable Diffusion WebUI的命令行窗口也会显示进度条:

24%|████████████████ | 6/25 [10:08<18:57, 59.85s/it]
Total progress: 24%|████████████▏ | 6/25 [03:58<11:58, 37.80s/it]
Bash

生成完成后,如下图:
DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

DeepSeek+Open-Webui+Stable Diffusion WebUI搭建个人AI平台

这里只是随意叫AI画两张图,通过对比,往往模型体量越大,对用户提出的要求理解效果越好,所生成出来的图片也更越贴合用户提问的描述这里生成的速度取决于两方面:

  • AI模型本身在你机器上运行时处理用户提问的速度
  • 你机器本身在单独使用Stable Diffusion WebUI生成图片时的速度

附录

参考文章

  • https://docs.openwebui.com/getting-started/quick-start/#1-install-uv
  • https://hub.docker.com/r/ollama/ollama
  • https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#
  • https://www.jianshu.com/p/c856b4aa6798
  • https://www.bilibili.com/opus/915668554875928601
  • https://blog.csdn.net/m0_57486465/article/details/139455076
  • https://help.apiyi.com/open-webui-deepseek-api-guide.html

Open-Webui和Ollama常用命令

Open-Webui:

日志输出

  • docker logs -f open-webui-cuda
  • docker logs -f open-webui

Ollama:

日志输出

  • docker logs -f ollama

查看已经拉取的模型

  • docker exec -it ollama ollama list

查看运行中的模型

  • docker exec -it ollama ollama ps

停止运行中的模型

  • docker exec -it ollama ollama stop 模型名称

删除模型

  • docker exec -it ollama ollama rm 模型名称
正文完
post-qrcode
 1