centos部署open-webui
提示:本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。
文章目录
- 一、open-webui是什么?
- 二、安装流程
- 1.openssl升级
- 2.Python3.11安装
- 3.sqlite安装升级
- 4.pip 下载安装open-webui
- 总结
一、open-webui是什么?
Open WebUI 是一个开源的、可自托管的 Web 用户界面工具,专为与本地或私有化部署的大语言模型(LLM,如 LLaMA、GPT 等)交互而设计。它类似于 Ollama WebUI,但更加灵活和可定制,允许用户通过浏览器界面便捷地管理和调用 AI 模型,适用于个人开发者、企业或研究团队构建私有化 AI 应用。
二、安装流程
1.openssl升级
构建 Python 3.11 需要openssl 1.1.1或更新版本。
# 安装常用的工具包
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] yum groupinstall "Development Tools"
#创建目录
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] mkdir -p /data/soft/openssl/
#下载安装包
[root@iZ2zeghyb5sxtgurlw3tkmZ ~]wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
# 解压压缩包
[root@iZ2zeghyb5sxtgurlw3tkmZ ~]tar -zxvf openssl-1.1.1w.tar.gz
#进入解压目录
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] cd openssl-1.1.1w
#配置编译安装目录 注意查看目录是否有覆盖 /usr/local/openssl
[root@iZ2zeghyb5sxtgurlw3tkmZ ~]./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared
# 编译安装
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] make && make install
# 设置扩展加载目录
[root@iZ2zeghyb5sxtgurlw3tkmZ ~] echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# 重新加载扩展加载目录是之生效
[root@iZ2zeghyb5sxtgurlw3tkmZ ~]ldconfig -v
[root@iZ2zeghyb5sxtgurlw3tkmZ ~]ldconfig
#版本信息查看
[root@iZ2zeghyb5sxtgurlw3tkmZ openssl-1.1.1w]# /usr/local/openssl/bin/openssl version
OpenSSL 1.1.1w 11 Sep 2023
[root@iZ2zeghyb5sxtgurlw3tkmZ openssl-1.1.1w]
2.Python3.11安装
# 创建包的安装目录,以及pip临时目录
[root@iZ2zeghyb5sxtgurlw3tkmZ]# mkdir -p /data/soft/pyton-packages-tmp
[root@iZ2zeghyb5sxtgurlw3tkmZ]# mkdir -p /data/soft/pyton-packages
# python3.11安装目录
[root@iZ2zeghyb5sxtgurlw3tkmZ]# mkdir -p /data/soft/python3.11
#python压缩包下载
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# wget https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tgz
#压缩包解压
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# tar -xvf Python-3.11.11.tgz
#进入到解压目录
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# cd Python-3.11.11
[root@iZ2zeghyb5sxtgurlw3tkmZ Python-3.11.11]# ls
# 指定python安装目录,以及编译时使用的openssl
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# ./configure --with-openssl=/usr/local/openssl \LDFLAGS="-L/usr/local/openssl/lib" \CPPFLAGS="-I/usr/local/openssl/include" \--prefix="/data/soft/python3.11"
3.sqlite安装升级
# 下载安装sqlite压缩包
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# wget https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz
# 解压安装sqlite压缩包
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# tar xvf sqlite-autoconf-3450100.tar.gz
# 进入解压安装目录
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# cd sqlite-autoconf-3450100
# 设置安装目录注意安装目录下是否有覆盖 /usr/local
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]#./configure --prefix=/usr/local
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# make && make install
#设置库加载及立即升级
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# echo "/usr/local/lib" | tee /etc/ld.so.conf.d/sqlite.conf
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# ldconfig
# 启动open-webui不生效需设置软连接
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# cd /usr/bin/
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# mv sqlite3 sqlite3_old
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
4.pip 下载安装open-webui
#设置临时环境变量
[root@iZ2zeghyb5sxtgurlw3tkmZ Python-3.11.11]export PIP_CACHE_DIR=/data/soft/pyton-packages-tmp
#pip下载安装 指定包下载路径
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]# /data/soft/python3.11/bin/pip3.11 install open-webui --target=/data/soft/pyton-packages
#设置临时环境变量 环境变量可添加到 家目录的.bashrc文件中
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]#export PYTHONPATH=/data/soft/pyton-packages/open_webui:$PYTHONPATH
#设置临时环境变量
[root@iZ2zeghyb5sxtgurlw3tkmZ soft]#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
# 修改open-webui启动,执行文件新加入__import__('pysqlite3'),sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
[root@iZ2zeghyb5sxtgurlw3tkmZ bin]# cd /data/soft/pyton-packages/bin
[root@iZ2zeghyb5sxtgurlw3tkmZ bin]# vim open-webui
#修改如下,以及图示
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
# pip3.11安装pysqlite3-binary
[root@iZ2zeghyb5sxtgurlw3tkmZ soft] /data/soft/python3.11/bin/pip3.11 install pysqlite3-binary
# 启动open-webui
[root@iZ2zeghyb5sxtgurlw3tkmZ soft] /data/soft/pyton-packages/bin/open-webui serve
open-webui 执行文件修改如下图所示

open-webui启动如下图

总结
以上就是简要介绍一下open-webui的安装过程。本示例安装过程中将临时占用系统磁盘11G,永久占用磁盘2G左右。请注意,如果在一个生产环境或者对稳定性要求很高的环境中操作,建议使用系统的包管理器或者虚拟环境,以免影响系统中其他的 Python 应用程序。此外,根据你的 Linux 发行版,可能有更简单的方法来安装最新版本的 Python,例如使用conda, pyenv, 或者某些发行版特定的第三方库。CentOS 7 及以前版本可能不会支持 Python 3.11 的一些特性。
相关文章:
centos部署open-webui
提示:本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。 文章目录 一、open-webui是什么?二、安装流程1.openssl升级2.Python3.11安装3.sqlite安装升级4.pip 下载安装open-webui 总结 一、open-webui是什么? Open W…...
UE求职Demo开发日志#32 优化#1 交互逻辑实现接口、提取Bag和Warehouse的父类
1 定义并实现交互接口 接口定义: // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "UObject/Interface.h" #include "MyInterActInterface.generated.h…...
Visonpro 检测是否有缺齿
一、效果展示 二、上面是原展开工具CogPolarUnwrapTool; 第二种方法: 用Blob 和 CogCopyRegionTool 三、 用预处理工具 加减常数,让图片变得更亮点 四、圆展开工具 五、模板匹配 六、代码分解 1.创建集合和文子显示工具 CogGraphicCollec…...
第1章大型互联网公司的基础架构——1.6 RPC服务
你可能在1.1节的引言中注意到业务服务层包括HTTP服务和RPC服务,两者的定位不一样。一般来说,一个业务场景的核心逻辑都是在RPC服务中实现的,强调的是服务于后台系统内部,所谓的“微服务”主要指的就是RPC服务;而HTTP服…...
今日AI和商界事件(2025-02-15)
根据2025年2月15日的科技动态,以下是今日AI领域的重要事件及相关进展总结: 1. DeepSeek日活突破3000万,开源生态加速AI普惠 里程碑意义:开源大模型DeepSeek宣布日活跃用户数突破3000万,其R1模型凭借开源策略和低成本优…...
算法题(69):搜索插入位置
审题: 需要我们在有序数组中找到等于target值的元素的下标若没有则返回target按顺序会插入的位置的索引 思路 : 我们可以使用二分查找的方法 方法一:二分查找 和普通的二分查找不同,本题若没有找到就需要返回它按顺序插入的位置的…...
在 Linux 系统中,tc(Traffic Control) QoS 常用命令简介
在 Linux 系统中,tc(Traffic Control)命令是一个强大的工具,用于配置和管理网络流量控制。以下是 tc 命令的常用功能和基本用法: 1. 查看当前队列规则 使用以下命令查看指定网络接口上的队列规则: tc qd…...
如何画产品功能图、结构图
功能图的类型 常见的功能图包括数据流图、用例图、活动图、状态图、类图、组件图、部署图等等,不同的应用场景和目标下,需要确定不同的功能图类型。 数据流图 用例图 状态图 类图 组件图 组件图是由软件系统、组件和组件之间的关系组成的图形…...
4090单卡挑战DeepSeek r1 671b:尝试量化后的心得的分享
引言: 最近,DeepSeek-R1在完全开源的背景下,与OpenAI的O1推理模型展开了激烈竞争,引发了广泛关注。为了让更多本地用户能够运行DeepSeek,我们成功将R1 671B参数模型从720GB压缩至131GB,减少了80%ÿ…...
SpringBoot速成(12)文章分类P15-P19
1.新增文章分类 1.Postman登录不上,可以从头registe->login一个新的成员:注意,跳转多个url时,post/get/patch记得修改成controller类中对应方法上写的 2.postman运行成功: 但表中不更新:细节有问题: c是…...
C++17中的clamp函数
一、std::clamp() 其实在前面简单介绍过这个函数,但当时只是一个集中的说明,为了更好的理解std::clamp的应用,本篇再详细进行阐述一次。std::clamp在C17中其定义的方式为: template< class T > constexpr const T& cl…...
配置Open-R1,评测第三方蒸馏模型的性能1
年前DeepSeek不温不火,问题的响应极。一回车,就看模型如口吐莲花般,先是输出思维过程,虽然中间绕来绕去,但是输出回答时还是准确而简洁的。比如,用它来读当时出来的几篇文章,确实大大提升了效率…...
Chrome插件开发流程
Chrome插件开发流程可以分为以下几个主要步骤: ### 1. 确定插件功能和目标 在开始开发之前,首先需要明确插件的功能和目标。这包括: - **功能定义**:确定插件要解决的问题或提供的功能。 - **市场分析**:了解目标用户群…...
物联网行业通识:从入门到深度解析
物联网行业通识:从入门到深度解析 (图1:物联网生态示意图) 一、引言:万物互联时代的到来 根据IDC最新预测,到2025年全球物联网设备连接数将突破410亿,市场规模达1.1万亿美元。物联网ÿ…...
【做一个微信小程序】校园事件页面实现
前言 为了进一步扩展校园事件页面的功能,我们可以添加 搜索、分类筛选 和 渐变卡片色 等特性。以下是详细的方案和源码实现。 扩展功能设计 1. 搜索功能 在页面顶部添加搜索框,用户输入关键词后,筛选出匹配的事件。2. 分类筛选 在页面顶部添加分类标签(如“全部”、“活动…...
C++基础系列【14】继承与多态
博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇…...
DeepSeek-R1 大模型本地部署指南
文章目录 一、系统要求硬件要求软件环境 二、部署流程1. 环境准备2. 模型获取3. 推理代码配置4. 启动推理服务 三、优化方案1. 显存优化技术2. 性能加速方案 四、部署验证健康检查脚本预期输出特征 五、常见问题解决1. CUDA内存不足2. 分词器警告处理3. 多GPU部署 六、安全合规…...
在conda环境下,安装Pytorch和CUDA
系统 : Ubuntu20.04 显卡:NVIDIA GTX1650 显卡驱动已经装好(命令 nvidia-smi 查看显卡配置) (主要看一下第一行的参数,最大支持的CUDA版本为12.4 ) Aanconda 版本(安装指南)(似乎…...
Java里int和Integer的区别?
大家好,我是锋哥。今天分享关于【Java里int和Integer的区别?】面试题。希望对大家有帮助; Java里int和Integer的区别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Java 中,int 和 Integer 都是用来表…...
【第13章:自监督学习与少样本学习—13.4 自监督学习与少样本学习的未来研究方向与挑战】
凌晨三点的实验室里,博士生小张盯着屏幕上的训练曲线——他设计的跨模态少样本学习模型在医疗影像诊断任务上突然出现了诡异的性能断崖。前一秒还在92%的准确率高位运行,下一秒就暴跌到47%。这个看似灾难性的现象,却意外揭开了自监督学习与少样本学习技术深藏的核心挑战… 一…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
