尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

超级详细的 Ollama 结合 DeepSeek + Docker + Open Web UI 构建本地AI知识库教程

超级详细的 Ollama 结合 DeepSeek + Docker + Open Web UI 构建本地AI知识库教程 一、简介Open WebUI 是一个仿照 ChatGPT 界面为本地大语言模型提供图形化界面的开源项目可以非常方便的调试、调用本地模型。你能用它连接你在本地的大语言模型包括 Ollama 和 OpenAI 兼容的 API也支持远程服务器。Docker 部署简单功能非常丰富包括代码高亮、数学公式、网页浏览、预设提示词、本地 RAG 集成、对话标记、下载模型、聊天记录、语音支持等。二、安装 Ollama 并且部署 DeepSeekOllama 是一个开源项目专注于帮助用户本地化运行大型语言模型LLMs。它提供了一个简单易用的框架让开发者和个人用户能够在自己的设备上部署和运行 LLMs而无需依赖云服务或外部 API。这对于需要数据隐私、离线使用或自定义模型调整的场景非常有用。1、安装 Ollama 并且部署 DeepSeek这里我就不将 Ollama 的详细安装步骤和部署本地DeepSeek详细操作写出来了如果还没有安装的可以通过下面查看我的另一篇文字【超级详细的 Ollama 搭建本地 DeepSeek大模型】2、下载向量嵌入模型后面 Open-Web UI 搭建本地向量知识库会使用ollama pull bge-m33、检查一下使用的环境ollama list三、安装 Docker for DesktopDocker Desktop 是 Docker 官方提供的桌面应用程序旨在让开发者能够在 Windows 和 macOS 系统上轻松地构建、运行和共享容器化应用程序。Docker Desktop 提供了一个方便的工具集使用户能够快速部署容器化应用程序同时还包括了一些强大的功能和工具如 Docker Engine、Docker CLI、Docker Compose 等。这里我就不将 Docker 的详细安装步骤写出来了如果还没有安装的可以通过下面查看我的另一篇文字查看详细Docker Desktop安装步骤【Docker Desktop 安装使用教程】查看详细安装 Docker Desktop 相关问题【安装 家庭版 Windows 出现 的 Docker 问题】【安装 Windows Docker Desktop - WSL问题】【打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题】四、使用 Docker 部署 open-webui前提安装好WSL2 ollama安装在WSL2里面。官网地址https://openwebui.com官网文档地址https://docs.openwebui.com/GitHubhttps://github.com/open-webui/open-webui1、使用 pip 安装如果你不想使用Docker的话可以使用pip 直接安装 open-webui 这部分这个给大家一个补充这里不会深入讲解环境需要 Python 3.111.1、安装Open WebUI打开你的终端并运行以下命令pipinstallopen-webui这部分下载会很多就不一 一 截取了如果有需要更新pipinstall--upgradeopen-webui1.2、启动 Open WebUI安装完成后使用以下命令启动服务器open-webui serve安装后可以在 http://localhost:8080 访问Open WebUI2、使用 Docker 安装 Open Web UI1、拉取镜像速度很慢我下载了十几个小时dockerpull ghcr.io/open-webui/open-webui:main有没有更稳定的docker源还真是有的分分钟下载完成。dockerpull ghcr.nju.edu.cn/open-webui/open-webui:main2、启动并拉取镜像1、启动镜像# 直接启动前提是拉取了镜像 拉取速度很慢dockerrun-d-p3000:8080-vopen-webui:/app/backend/data--nameopen-webui--restartalways ghcr.io/open-webui/open-webui:main# 直接启动前提是拉取了镜像 拉取速度比较快dockerrun-d-p3000:8080-vopen-webui:/app/backend/data--nameopen-webui--restartalways ghcr.nju.edu.cn/open-webui/open-webui:main2、直接使用官网docker 命令启动并下载#启动并下载dockerrun-d-p3000:8080 --add-hosthost.docker.internal:host-gateway-vopen-webui:/app/backend/data--nameopen-webui--restartalways ghcr.io/open-webui/open-webui:main没有安装会直接下载(base)HwHiAiUserorangepiaipro:~$dockerrun-d-p3000:8080 --add-hosthost.docker.internal:host-gateway-vopen-webui:/app/backend/data--nameopen-webui--restartalways ghcr.io/open-webui/open-webui:main Unable tofindimageghcr.io/open-webui/open-webui:mainlocally main: Pulling from open-webui/open-webui ea235d1ccf77: Pull complete 26f13e32d8cd: Pull complete e569c3fca503: Pull complete 8cae6dc67aef: Pull complete 153915d34d13: Pull complete 761886d9fb03: Pull complete 4f4fb700ef54: Pull complete 004754e7f3d1: Pull complete 4495941f96a2: Pull complete 2bb7e3b0ae41: Downloading[]40.45MB/288.1MB abd18b7d3c36: Download complete 49800a7fbb5c: Downloading[]32.38MB/727.9MB 25281b23f845: Downloading[]32.91MB/54.66MB 67196eb5d079: Waiting 85f88c980917: Waiting 48fbf4ab6c66: Waiting这条命令将 Docker 容器的 8080 端口映射到宿主机的 3000 端口并允许使用所有 GPUdockerrun-d-p3000:8080--gpusall --add-host host.docker.internal:host-gateway-vd:jgogoopen-webuibackend:/app/backend/--nameopen-webui--restartalways ghcr.io/open-webui/open-webui:cuda3、启动完成1、启动完成五、 使用 Open Web UI1、访问open-webui安装完成后通过http://{ip}:{port}访问open-webui我们这边使用的访问地址就是http://192.168.101.8:3000,或者输入http://localhost:3000第一次登录需要注册账户。注册完成稍等一会会自动登录然后点击“确定开始使用”。进入后会自动扫描本地安装的大模型并显示出来(如果没有就看下面的 2、配置open-webui ---》2.2、配置外部连接)选择一个本地的大模型并进行聊天2、配置open-webui2.1、设置中文点击左上角按钮在点击下面图标选择settings 在 General 中的 Language 选择中文简体保存设置。2.2、配置外部连接点击左上角按钮在点击下面图标找到管理员面板。点击设置找到 外部连接的Ollama API的地址。为了使Docker容器能够访问宿主机上的服务可以利用特定的网络地址host.docker.internal。。此方法适用于Docker 18.03及以上版本在Windows和Mac操作系统上有效。当启动容器时默认情况下它会尝试解析host.docker.internal到宿主机的IP地址从而允许容器内的应用程序向该地址发起请求来调用宿主机提供的服务。对于Linux环境下的Docker部署则可能需要额外配置才能实现相同功能然而题目中的描述暗示了一个跨平台兼容的方式即直接使用host.docker.internal作为目标地址。我这边自动扫描到本地大模型所以默认填写了http://host.docker.internal:11434添加一个新的模型在右上角打开设置菜单测试端口的联通性发现http://host.docker.internal:11434端口正常连通然后点击保存。以上就完成了大模型的选取和对接。3、Docker 命令 问题示范1正确示范✅由于我们的ollama和open-webui运行在同一个服务器上所以我们选择第一条命令在http://SERVERNAME:3000上打开open-webui登录后可选择的模型为Ollama正在11434端口上run的Llama 3-8B模型在右上角打开设置菜单测试端口的联通性发现http://host.docker.internal:11434端口正常连通示范2错误示范❎出现错误“1”是因为我们在使用自己的PC通过网络来访问服务器的11434端口而不是服务器自己访问自己的11434端口所以这时候并不符合第一条命令的条件于是我们改用第二条命令把OLLAMA_BASE_URL设置为http://localhost:11434完整的命令为docker run-d-p 3000:8080-e OLLAMA_BASE_URLhttp://localhost:11434-vopen-webui:/app/backend/data--nameopen-webui--restart always ghcr.io/open-webui/open-webui:main这时候测试端口连通性发现http://localhost:11434端口不可访问示范三正确示范✅出现错误“2”的原因是因为localhot是不经网卡传输不会受到网卡协议的限制也就是说localhost不会解析成IP也不会占用网卡、网络资源而127.0.0.1是经过网卡传输的依赖网卡协议并受到网卡相关协议的限制可以作为IP顺便说一下即使计算机在本地通过127.0.0.1访问自己的某个端口它也是通过网络再去访问自己。因此我们进一步将OLLAMA_BASE_URL修该为http://127.0.0.1:11434完整的命令为docker run-d-p 3000:8080-e OLLAMA_BASE_URLhttp://127.0.0.1:11434-vopen-webui:/app/backend/data--nameopen-webui--restart always ghcr.io/open-webui/open-webui:main再次测试端口连通性其中222.29.68.23是服务器在局域网中的IP4、向量库open-webui本身就具备本地知识库的能力所以我们可以直接创建知识库、上传文档需要注意的是向量化参数块大小和块重叠的设置这直接影响了rag检索的效果。设置 -- 管理员设置 -- 文档 -- 语义向量模型引擎 改为ollama 语义向量模型改为 bge-m3记得先下载这个向量嵌入式模型工作空间 -- 知识库点击号上传文档此时可能出现”文件无法上传“的情况如下图所示, 这个是没有下载向量嵌入模型的问题使用时需要在聊天框通过#来指定知识库回答是正确的由于我用的是1.5b 所以回答速度比较久这只是文档的使用也是知识库的初级使用。缺点是每次都要上传文档非常麻烦。有时候不知道知识具体在哪一份文档中。设置 -- 管理员设置 -- 数据库 -- 下载数据库可以导出sqlite数据
返回列表