大语言模型极速部署:Ollama 、 One-API、OpenWebUi 完美搭建教程

大语言模型极速部署:Ollama 、 One-API、OpenWebUi 完美搭建教程

本文将介绍如何通过命令行工具部署 Ollama 和 One-API 以及 OpenWebUi,帮助你快速搭建私有化大模型。

  1. Ollama 是一个容器化工具,简化了大语言模型的管理与运行,支持模型的下载、运行、更新和删除。
  2. One-API 是一个开源 API 服务框架,通过 Docker 容器快速搭建 RESTful 接口,支持 SQLite 或 MySQL 数据库作为后端存储。
  3. OpenWebUI 提供了一个基于 Web 的用户界面,帮助用户通过简洁的操作与 Ollama 进行交互,管理和展示模型的运行状态。

一、安装 Ollama

Ollama 是一个容器化的应用,方便部署和管理 AI 模型。以下是安装 Ollama 的步骤。

1. 使用安装脚本安装 Ollama

首先,执行以下命令来安装 Ollama:

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

这会自动下载并执行安装脚本,安装完毕后,Ollama 应该已经成功安装到你的系统中。你可以通过以下命令验证安装是否成功:

ollama --version

如果你看到版本号输出,说明安装成功。

2. 常用命令

Ollama 提供了许多实用的命令,可以帮助你轻松管理 AI 模型和容器服务。

1. 查看 Ollama 版本

查看当前安装的 Ollama 版本:

ollama --version
2. 搜索模型

Ollama 提供了一个方便的搜索界面,可以让你快速查找并下载模型。访问以下链接来搜索模型:

Ollama 模型搜索地址

你可以根据关键词、类别或者模型类型搜索感兴趣的模型。

3. 列出已安装模型

查看当前 Ollama 上已经安装的所有模型:

ollama models list
4. 拉取(Pull)模型

要下载一个模型,你可以使用 ollama pull 命令。假设你已经找到并决定下载一个模型,例如 “gpt4”:

ollama pull gpt4

这会从 Ollama 的在线仓库下载 gpt4 模型,并将其存储到本地。

5. 运行模型

运行一个已下载的模型,你可以使用 ollama run 命令。例如,运行 gpt4 模型:

ollama run gpt4

这会启动 gpt4 模型并开始处理输入请求。

6. 删除已安装的模型

如果你不再需要某个模型,可以使用 ollama remove 命令删除它:

ollama remove gpt4
7. 更新模型

保持你的模型更新也是很重要的。使用以下命令来更新所有已安装的模型:

ollama update

3.Ollama 端口修改

如何自定义ollama的服务器地址和端口? #1357

添加 OLLAMA_HOST=0.0.0.0:6006 系统环境变量,并重启 ollama。

二、部署 One-API

One-API 是一个开源项目,可以帮助你在容器中快速搭建 API 服务。你可以选择使用 SQLite 或 MySQL 作为后端数据库存储。

1. 使用 SQLite 部署 One-API

如果你选择使用 SQLite 数据库进行存储,可以通过 Docker 来快速部署 One-API。

执行以下命令:

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /data/one-api:/data justsong/one-api:v0.6.11-alpha.7
  • --name one-api:指定容器名称为 one-api
  • -d:让容器在后台运行。
  • --restart always:容器退出后会自动重启。
  • -p 3000:3000:映射容器的 3000 端口到宿主机的 3000 端口。
  • -e TZ=Asia/Shanghai:设置容器时区为上海。
  • -v /data/one-api:/data:将宿主机的 /data/one-api 目录挂载到容器内的 /data 目录,以便持久化数据。

如果你使用 SQLite,可以通过上述命令完成 One-API 的部署。

2. 使用 MySQL 部署 One-API

如果你希望使用 MySQL 数据库,你需要在上面的命令基础上增加数据库连接的环境变量。你可以通过如下命令进行部署:

docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /data/one-api:/data justsong/one-api
  • -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi":设置数据库连接字符串,root:123456 是数据库的用户名和密码,localhost:3306 是 MySQL 数据库的地址和端口,oneapi 是数据库名称。请根据实际情况修改这些参数。

3. 配置数据库

在使用 MySQL 时,你需要确保 MySQL 数据库已经安装并配置好。以下是 MySQL 数据库的创建和配置步骤:

  1. 登录 MySQL:

    mysql -u root -p
    
  2. 创建数据库:

    CREATE DATABASE oneapi;
    
  3. 创建数据库用户并授权:

    CREATE USER 'root'@'%' IDENTIFIED BY '123456';
    GRANT ALL PRIVILEGES ON oneapi.* TO 'root'@'%';
    FLUSH PRIVILEGES;
    
  4. 确保 MySQL 数据库正常运行,且可以通过 localhost:3306 进行访问。

4. 启动和验证服务

启动容器后,可以通过浏览器访问 http://localhost:3000 来验证 One-API 是否正常运行。如果看到 API 文档界面或者返回相关的数据,说明部署成功。

三、部署 OpenWebUI

OpenWebUi 是一个基于 Docker 容器的前端 WebUI,可以用于与 Ollama(一个机器学习平台)交互。它提供了一个简洁、易于使用的用户界面来管理和展示模型的运行状态。

1.运行 OpenWebUI 容器

打开终端,执行以下命令来拉取并启动 OpenWebUI 容器:

docker run -d -p 3001:8080 -e OLLAMA_BASE_URL=http://192.168.2.10:8080 -v /data/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

参数说明:

  • -d: 在后台运行容器。
  • -p 3001:8080: 将主机的端口 3001 映射到容器的 8080 端口,这意味着你可以通过访问 http://localhost:3001 来使用 WebUI。
  • -e OLLAMA_BASE_URL=http://192.168.2.10:8080: 设置 Ollama 服务的基础 URL。确保这个地址正确并且 Ollama 服务正在运行。
  • -v /data/open-webui:/app/backend/data: 将主机的 /data/open-webui 路径挂载到容器内的 /app/backend/data 路径,用于持久化 OpenWebUI 的数据。
  • --name open-webui: 为容器指定一个名字 open-webui
  • --restart always: 配置容器在系统重启后自动重启。

2. 访问 OpenWebUI

容器启动完成后,你可以通过访问 http://localhost:3001 来使用 OpenWebUI。如果你在不同的机器或服务器上运行,替换 localhost 为服务器的 IP 地址。

3. 常见问题排查
  • 无法连接到 Ollama 服务:请检查 Ollama 是否正在运行,并确保 OLLAMA_BASE_URL 地址配置正确。
  • 端口被占用:如果 3001 端口已被其他应用占用,可以更改容器的映射端口,例如使用 -p 3002:8080

四、总结

通过 Docker 部署 Ollama 和 One-API以及OpenWebUi,可以帮助你快速搭建 AI 模型和 API 服务和Web交互。选择使用 SQLite 或 MySQL 数据库,具体根据你的需求来决定。如果有进一步的配置需求,可以参考相关文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13773.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题

【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题 零、起因 最近在使用Ubuntu虚拟机编译ARM程序,解压ARM的GCC后想要启动,报“没有那个文件或目录”,但是文件确实存在,环境配置也检查过了没问题,本文记…

[含文档+PPT+源码等]精品大数据项目-Django基于大数据实现的心血管疾病分析系统

大数据项目-Django基于大数据实现的心血管疾病分析系统背景可以从以下几个方面进行阐述: 一、项目背景与意义 1. 心血管疾病现状 心血管疾病是当前全球面临的主要健康挑战之一,其高发病率、高致残率和高死亡率严重威胁着人类的生命健康。根据权威机构…

科技赋能数字内容体验的核心技术探索

内容概要 在数字化时代,科技的迅猛发展为我们的生活和工作带来了深刻的变革。数字内容体验已经成为人们获取信息和娱乐的重要途径,而这背后的技术支持则扮演着至关重要的角色。尤其是在人工智能、虚拟现实和区块链等新兴技术的推动下,数字内…

【权重小技巧(3) 】权重替换—训练 A 模型去替换 B 模型中的对应权重

系列文章目录 【权重小技巧(1)】.pt文件无法打开或乱码?如何查看.pt文件的具体内容?【权重小技巧(2)】模型权重文件总结: .bin、.safetensors、.pt的保存、加载方法一览本文则总结权重的结构化读取和替换方法,以实现在框架 1 中训练后的部分…

VSCode中使用EmmyLua插件对Unity的tolua断点调试

一.VSCode中搜索安装EmmyLua插件 二.创建和编辑launch.json文件 初始的launch.json是这样的 手动编辑加上一段内容如下图所示: 三.启动调试模式,并选择附加的进程

k8sollama部署deepseek-R1模型,内网无坑

这是目录 linux下载ollama模型文件下载到本地,打包迁移到k8s等无网络环境使用下载打包ollama镜像非k8s环境使用k8s部署访问方式非ollama运行deepseek模型linux下载ollama 下载后可存放其他服务器 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linu…

2025年Android NDK超全版本下载地址

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

通信易懂唠唠SOME/IP——SOME/IP-SD服务发现阶段和应答行为

一 SOME/IP-SD服务发现阶划分 服务发现应该包含3个阶段 1.1 Initial Wait Phase初始等待阶段 初始等待阶段的作用 初始等待阶段是服务发现过程中的一个阶段。在这个阶段,服务发现模块等待服务实例的相关条件满足,以便继续后续的发现和注册过程。 对…

1. Kubernetes组成及常用命令

Pods(k8s最小操作单元)ReplicaSet & Label(k8s副本集和标签)Deployments(声明式配置)Services(服务)k8s常用命令Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化应用程序的部署、扩展和管理。自2014年发布以来,K8s迅速成为容器编排领域的行业标准,被…

Vue全流程--Vue2组件的理解第二部分

组件命名规则 好的命名规则可以省去很多不必要的麻烦,这个好习惯还是要养成的 一个单词组成: 第一种写法(首字母小写):school 第二种写法(首字母大写):School 多个单词组成: 第一种写法(kebab-case命名)&#xf…

【OS】AUTOSAR架构下的Interrupt详解(上篇)

目录 前言 正文 1.中断概念分析 1.1 中断处理API 1.2 中断级别 1.3 中断向量表 1.4 二类中断的嵌套 1.4.1概述 1.4.2激活 1.5一类中断 1.5.1一类中断的实现 1.5.2一类中断的嵌套 1.5.3在StartOS之前的1类ISR 1.5.4使用1类中断时的注意事项 1.6中断源的初始化 1.…

红包雨项目前端部分

创建项目 pnpm i -g vue/cli vue create red_pakage pnpm i sass sass-locader -D pnpm i --save normalize.css pnpm i --save-dev postcss-px-to-viewportpnpm i vantlatest-v2 -S pnpm i babel-plugin-import -Dhttps://vant.pro/vant/v2/#/zh-CN/<van-button click&…

深入理解k8s中的容器存储接口(CSI)

CSI出现的原因 K8s原生支持一些存储类型的PV&#xff0c;像iSCSI、NFS等。但这种方式让K8s代码与三方存储厂商代码紧密相连&#xff0c;带来不少麻烦。比如更改存储代码就得更新K8s组件&#xff0c;成本高&#xff1b;存储代码的bug还会影响K8s稳定性&#xff1b;K8s社区维护和…

DeepSeek回答禅宗三重境界重构交易认知

人都是活在各自心境里&#xff0c;有些话通过语言去交流&#xff0c;还是要回归自己心境内在的&#xff0c;而不是靠外在映射到股票和技术方法&#xff1b;比如说明天市场阶段是不修复不接力节点&#xff0c;这就是最高视角看整个市场&#xff0c;还有哪一句话能概括&#xff1…

简单说一下CAP理论和Base理论

CAP理论 什么是CAP 一致性 可用性 分区容错性&#xff1a;系统如果不能再时限内达成数据一致性&#xff0c;就说明发生了分区的情况 然后当前操作在C和A之间做出选择 例如我的网络出现问题了&#xff0c;但是我们的系统不能因为网络问题就直接崩溃 只要我们的分布式系统没…

13.PPT:诺贝尔奖【28】

目录 NO1234 NO567 NO8/9/10 NO11/12 NO1234 设计→变体→字体→自定义字体 SmartArt超链接新增加节 NO567 版式删除图片中的白色背景&#xff1a;选中图片→格式→删除背景→拖拉整个图片→保留更改插入→图表→散点图 &#xff1a;图表图例、网格线、坐标轴和图表标题…

RabbitMQ的安装

1、官网地址 下载地址&#xff1a;Installing RabbitMQ | RabbitMQhttp://www.rabbitmq.com/download.htmlhttp://www.rabbitmq.com/download.html RabbitMQ Documentation | RabbitMQhttps://www.rabbitmq.com/docshttps://www.rabbitmq.com/docs 2、Windows上安装 2.1 安装…

【LeetCode】152、乘积最大子数组

【LeetCode】152、乘积最大子数组 文章目录 一、dp1.1 dp1.2 简化代码 二、多语言解法 一、dp 1.1 dp 从前向后遍历, 当遍历到 nums[i] 时, 有如下三种情况 能得到最大值: 只使用 nums[i], 例如 [0.1, 0.3, 0.2, 100] 则 [100] 是最大值使用 max(nums[0…i-1]) * nums[i], 例…

【分布式理论六】分布式调用(4):服务间的远程调用(RPC)

文章目录 一、RPC 调用过程二、RPC 动态代理&#xff1a;屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC 序列化四、RPC 协议编码1. 协议编码的作用2. RPC 协议消息组成 五、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC 调用过程 RPC&#xff08…

Spring Task之Cron表达式

&#x1f31f; Spring Task高能预警&#xff1a;你以为的Cron表达式可能都是错的&#xff01;【附实战避坑指南】 开篇暴击&#xff1a;为什么你的定时任务总在凌晨3点翻车&#xff1f; “明明设置了0 0 2 * * ?&#xff0c;为什么任务每天凌晨3点执行&#xff1f;” —— 来…