在Ubuntu上部署Open WebUI和Ollama,打造你的私人GPT

ops/2024/11/20 10:37:54/

在Ubuntu上部署Open WebUI和Ollama,打造你的私人GPT

如果你对自然语言处理或者构建自己的对话AI感兴趣,那么这篇文章就是为你准备的。我将带你一步步搭建Open WebUI和Ollama,让你在自己的服务器上就能体验到强大的语言模型。

简介

Ollama是一个前沿的平台,可以让你在本地机器上运行开源的大型语言模型。它简化了部署和管理这些模型的复杂性,对于研究人员、开发者以及任何想要尝试语言模型的人来说,都是一个不错的选择。Ollama提供了一个用户友好的界面,让你可以在MacOS和Linux(Windows支持即将到来)上本地运行大型语言模型(LLMs)。

Open WebUI是一个可扩展、功能丰富、用户友好的自托管WebUI,设计为完全离线运行。它支持多种大型语言模型(LLM)运行器,包括Ollama和OpenAI兼容的API。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

  1. 系统要求
    • 你的系统可以仅使用CPU,或者你可以拥有NVIDIA或AMD的GPU。
    • 我将使用Ubuntu 22.04作为操作系统演示。
    • 至少需要4个vCPU,推荐8个或更多。
    • 你应该至少有8GB的RAM可用,以运行7B模型;运行13B模型需要16GB,运行33B模型需要32GB。
  2. 软件
    • Docker
    • NVIDIA Container Runtime for Docker
    • Open WebUI
    • Ollama Models Library

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

安装步骤

在Ubuntu上安装或升级Docker Engine

请按照在Ubuntu上安装Docker Engine的指南来安装或升级你系统中的Docker。

为Docker安装GPU支持

如果你的服务器有GPU,那么可以进行这一步,如果没有,则跳过该步骤,没有GPU也同样能运行。

适用于 Docker 的 NVIDIA 容器运行时是一种改进的机制,允许 Docker 引擎支持 GPU 加速容器使用的 NVIDIA GPU。这个新的运行时取代了 NVIDIA GPU 的 Docker Engine Utility。

请按照官方NVIDIA文档安装或升级NVIDIA Container Runtime for Docker。

安装OpenWebUI和Ollama

根据你的环境,有几种安装方法可供选择。请根据下面的选项进行操作:

[选项1] 使用捆绑Ollama支持的Open WebUI安装

这是最简单且推荐的方法。这种安装方法使用一个单一的容器镜像,将Open WebUI与Ollama捆绑在一起,通过一个命令实现流线化的设置。根据你的硬件环境选择合适的命令:

  • 带有NVidia GPU和CUDA支持:利用GPU资源,运行以下命令:
sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
  • 带有GPU支持:利用GPU资源,运行以下命令:
sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
  • 仅CPU:如果你不使用GPU,请使用此命令:
sudo docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

验证Docker实例是否正在运行:

$ sudo docker ps
CONTAINER ID   IMAGE                                  COMMAND           CREATED             STATUS             PORTS                                       NAMES
984c0d7006ef   ghcr.io/open-webui/open-webui:ollama   "bash start.sh"   About an hour ago   Up About an hour   0.0.0.0:3000->8080/tcp, :::3000->8080/tcp   open-webui

[选项2] 使用默认Open WebUI配置安装,并使用单独的Ollama实例

使用以下命令安装Ollama:

curl -fsSL https://ollama.com/install.sh | sh

Ollama安装完成后,使用此命令启动Open WebUI:

sudo docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • 要连接到远程服务器上的Ollama,将OLLAMA_BASE_URL更改为远程服务器的URL:
sudo docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://your_domain -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • 要运行支持Nvidia GPU的Open WebUI,使用此命令:
sudo docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

验证Docker实例是否正在运行:

$ sudo docker ps
CONTAINER ID   IMAGE                                  COMMAND           CREATED             STATUS             PORTS                                       NAMES
984c0d7006ef   ghcr.io/open-webui/open-webui:ollama   "bash start.sh"   About an hour ago   Up About an hour   0.0.0.0:3000->8080/tcp, :::3000->8080/tcp   open-webui

[选项3] 使用Docker Compose安装

1. 首先克隆OpenWebUI的GitHub仓库:

git clone https://github.com/open-webui/open-webui
cd open-webui

2. 选择适当的Docker Compose文件

OpenWebUI提供了几个不同的Docker Compose文件,用于不同的配置。根据你的硬件,选择合适的文件:

  • docker-compose.amdgpu.yaml:适用于AMD GPU
  • docker-compose.api.yaml:仅API设置
  • docker-compose.data.yaml:数据服务
  • docker-compose.gpu.yaml:适用于NVIDIA GPU
  • docker-compose.yaml:默认配置

3. 启动Docker环境

执行以下命令以启动Docker Compose设置:

sudo docker compose -v open-webui:/app/backend/data -f docker-compose.yaml up

验证Docker实例是否正在运行:

$ sudo docker ps
CONTAINER ID   IMAGE                                  COMMAND           CREATED             STATUS             PORTS                                       NAMES
984c0d7006ef   ghcr.io/open-webui/open-webui:ollama   "bash start.sh"   About an hour ago   Up About an hour   0.0.0.0:3000->8080/tcp, :::3000->8080/tcp   open-webui

记得通过/data/docs访问文档,以防止容器停止时数据丢失。

访问用户界面

打开你的网页浏览器,导航到:

http://<your_server_ip>:3000

你应该能看到登录页面:

image.png

创建新用户

点击“注册”创建一个新的本地用户账户。输入你的名字、电子邮件和密码,然后点击“创建账户”。

image.png

你将自动登录并被带到首页。

image.png

下载Ollama模型

有一个不断增长的模型列表供你选择。在Ollama的库中探索可用的模型。

使用Open WebUI将一个或多个模型导入到Ollama:

  1. 点击UI中模型下拉旁边的“+”。
  2. 或者,转到设置 -> 模型 -> “从Ollama.com拉取一个模型。”

image.png

相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
面试鸭:https://mianshiya.com/?shareCode=sq29yv
我的博客:https://blog.ivwv.site


http://www.ppmy.cn/ops/135211.html

相关文章

C++类和对象(下)

文章目录 1. 初始化列表1.1 什么是初始化列表1.2 为什么要引入初始化列表1.3 初始化列表如何写1.3.1 显式写初始化列表1.3.2 隐式写初始化列表1.3.2.1 不声明缺省值1.3.2.2 声明缺省值 1.3.3 初始化列表总结 2.类型转换2.1 内置类型与自定义类型转换2.2 自定义类型间的转换2.3 …

Python 正则表达式进阶用法:边界匹配

Python 正则表达式进阶用法&#xff1a;边界匹配 正则表达式是一种强大的工具&#xff0c;用于处理文本中的模式匹配。它广泛应用于文本查找、替换、数据清洗等任务。在学习了正则表达式的基础知识后&#xff0c;掌握更高级的用法将使得正则表达式的应用更加灵活。边界匹配&am…

2.5D视觉——Aruco码定位检测

目录 1.什么是Aruco标记2.Aruco码解码说明2.1 Original ArUco2.2 预设的二维码字典2.3 大小Aruco二维码叠加 3.函数说明3.1 cv::aruco::detectMarkers3.2 cv::solvePnP 4.代码注解4.1 Landmark图说明4.2 算法源码注解 1.什么是Aruco标记 ArUco标记最初由S.Garrido-Jurado等人在…

开源控件:Qt/C++自定义异形窗口和颜色选择器 【工程源码联系博主索要】

使用 Qt 和 C 实现一个异形窗口和自定义颜色选择器的过程。 1. CustomShapeWidgetUi 类 该类实现了一个具有自定义形状和颜色选择功能的窗口。 构造函数 CustomShapeWidgetUi CustomShapeWidgetUi::CustomShapeWidgetUi(const QString &imagePath, QDialog *parent): QD…

【GNU】addr2line

1、什么是addr2line addr2line 是 GNU Binutils 工具集中的一个命令行工具&#xff0c;用于将程序中的地址转换为源代码中的文件名和行号。它在调试和问题定位中非常有用&#xff0c;尤其是在处理崩溃或 core dump 时。 2、常用选项 选项功能-e <file>指定目标文件&am…

农村生活污水排水监测系统:助力乡村生态环境建设

在广袤的农村大地&#xff0c;清新的空气、绿色的田野和潺潺的溪流共同构成了美丽的乡村画卷。然而&#xff0c;随着农村经济的发展和生活水平的提高&#xff0c;农村生活污水的排放问题日益凸显&#xff0c;成为影响乡村生态环境的一个重要因素。为了有效解决这一问题&#xf…

全新UI H5购物商城系统存在前台任意文件上传漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

移动端web页面调用原生jsbridge的封装

为了统一android端和ios端调用原生jsbridge方法统一&#xff0c;且web端不需要使用callback方式接收回调&#xff0c;特封装了以下js工具类&#xff1a; // 全局回调管理器 window.CallbackManager {callbacks: new Map(),registerCallback: function (callbackId, callback)…