当前位置: 首页 > news >正文

Open WebUI本地部署教程

文章目录

  • 1、系统环境配置
  • 2、源码下载
    • 2.1 github源码地址下载
  • 3、环境启动
    • 3.1 后端环境
    • 3.2 前端环境
  • 4、问题
    • 4.1 浏览器跨域问题
    • 4.2 all-MiniLM-L6-v2模型文件下载失败问题
    • 4.3 单独部署backend启动报错问题

1、系统环境配置

操作系统:windows/linux/macos
Python版本: Python 3.11+ (建议安装3.11版本,3.12及以上版本可能出现不兼容)
Nodejs版本:22.10.0 (建议安装22.11及以上版本)

2、源码下载

2.1 github源码地址下载

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

3、环境启动

3.1 后端环境

进入 open-webui\backend 目录下,执行以下命令进行依赖安装

pip install -r requirements.txt

如果是本地测试,需修改open-webui\backend\open_webui\config.py文件中的CORS_ALLOW_ORIGIN参数,否则可能会出现跨域问题

# CORS_ALLOW_ORIGIN = os.environ.get("CORS_ALLOW_ORIGIN", "*").split(";")
CORS_ALLOW_ORIGIN = os.environ.get("CORS_ALLOW_ORIGIN", "http://localhost:5173").split(";")

windows环境下运行start_windows.bat 文件,Linux环境下执行sh start.sh命令

3.2 前端环境

进入 open-webui根目录下,创建环境配置文件
重命名.env.example 为.env
修改模型仓库地址:
OLLAMA_BASE_URL=‘此处替换为要使用的仓库地址,例如:http://10.57.149.9:11434’
最后执行以下命令

npm install
npm run dev 

浏览器中访问http://localhost:5173/即可

4、问题

由于部分依赖需要从外网环境下载,因此部署前尽量解决网络问题

4.1 浏览器跨域问题

使用chrome进行测试时可能会出现logo之类静态文件无法加载问题,可以在谷歌应用商店中安装Allow-Control-Allow-Origin,打开之后即可解决,firefox浏览器没有此类问题
在这里插入图片描述
在这里插入图片描述

4.2 all-MiniLM-L6-v2模型文件下载失败问题

执行脚本命令后,会自动从huggingface.co下载sentence-transformers模型文件all-MiniLM-L6-v2,服务器在国外,无法下载,所以先从国内镜像网站上(https://hf-mirror.com/)将模型和配置文件下载到本地。
在这里插入图片描述
修改open_webui/retrieval/utils.py文件

# model_repo_path = snapshot_download(**snapshot_kwargs)
# 替换为本地文件路径
model_repo_path = r'D:\code\code\arkham\all-MiniLM-L6-v2'

4.3 单独部署backend启动报错问题

启动backend时会去当前执行脚本所在目录的上一级去读取CHANGELOG.md(CHANGELOG.md文件在下载源码包的根目录下)文件,文件读取不到则会去当前工作目录下backend/open-webui/寻找,还是找不到则会抛异常,解决方法是将CHANGELOG.md拷贝到backend/open-webui/目录下即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

Open WebUI本地部署教程

文章目录 1、系统环境配置2、源码下载2.1 github源码地址下载 3、环境启动3.1 后端环境3.2 前端环境 4、问题4.1 浏览器跨域问题4.2 all-MiniLM-L6-v2模型文件下载失败问题4.3 单独部署backend启动报错问题 1、系统环境配置 操作系统:windows/linux/macos Python版…...

Missing required prop: “maxlength“

背景&#xff1a; 封装一个使用功能相同使用频率较高的input公共组件作为子组件&#xff0c;大多数长度要求为200&#xff0c;且实时显示统计子数&#xff0c;部分input有输入提示。 代码实现如下&#xff1a; <template><el-input v-model"inputValue" t…...

dify本地部署

安装docker。 在官网安装docker。 如果遇到wsl报错&#xff0c;就使用 wsl --updata 进行更新。如果问题解决&#xff0c;进入docker应该是如下界面&#xff1a; 克隆 在自己创建的文件内使用 git clone gitgithub.com:langgenius/dify.git 或 git clone https://github.com…...

python学习一

学习网络安全为什么要学python? 1、在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工 具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者 编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定 的编程能力。 2、python是一门编程语言经常用它…...

git branch

文章目录 1.简介2.格式3.选项4.示例参考文献 1.简介 git branch 用于管理分支&#xff0c;包括查看、创建、删除、重命名和关联。 git branch 是 Git 版本控制系统中用于管理分支的命令。分支是 Git 的核心功能之一&#xff0c;允许开发者在同一个代码库中并行开发不同的功能…...

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历&#xff08;BFS&#xff09;是一种用于遍历或搜索图的算法&#xff0c;以下是具体介绍&#xff1a; 1. 基本概念 图是一种非线性的数据结构&#xff0c;由顶点和边组成&#xff0c;可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…...

数学建模之数学模型—2:非线性规划

文章目录 非线性规划基本概念与结论凸集与凸函数极值条件无约束条件的极值判断条件有约束条件的极值判断条件 无约束非线性规划一维搜索算法步骤示例特点代码模板 最速下降法算法详细步骤 代码实现示例最优步长的求解 黄金分割法斐波那契法牛顿法阻尼牛顿法模式搜索法Powell方法…...

unity学习51:所有UI的父物体:canvas画布

目录 1 下载资源 1.1 在window / Asset store下下载一套免费的UI资源 1.2 下载&#xff0c;导入import 1.3 导入后在 project / Asset下面可以看到 2 画布canvas&#xff0c;UI的父物体 2.1 创建canvas 2.1.1 画布的下面是 event system是UI相关的事件系统 2.2 canvas…...

ctfshow做题笔记—栈溢出—pwn57~pwn60

目录 前言 一、pwn57&#xff08;先了解一下简单的64位shellcode吧&#xff09; 二、pwn58 三、pwn59&#xff08;64位 无限制&#xff09; 四、pwn60&#xff08;入门难度shellcode&#xff09; 前言 往前写了几道题&#xff0c;与shellcode有关&#xff0c;关于shellc…...

数据结构 1-2 线性表的链式存储-链表

1 原理 顺序表的缺点&#xff1a; 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间&#xff0c;造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L&#xff1a;头指针 头指针&#xff1a;链表中第一个结点的存储…...

ArcGIS Pro进行坡度与坡向分析

在地理信息系统中&#xff0c;坡度分析是一项至关重要的空间分析方法&#xff0c;旨在精确计算地表或地形的坡度&#xff0c;为地形特征识别、土地资源规划、环境保护、灾害预警等领域提供科学依据。本文将详细介绍如何利用ArcGIS Pro这一强大的地理信息系统软件&#xff0c;进…...

My first Android application

界面元素组成&#xff1a; 功能代码&#xff1a; /*实现功能&#xff1a;当输入内容后&#xff0c;欢迎文本发生相应改变&#xff0c;并清除掉文本域内容当未输入任何内容时&#xff0c;弹出提示文本以警告用户*/val greetingText findViewById<TextView>(R.id.printer)…...

ZLMediaKi集群设置

要在集群环境中部署 ZLMediaKit&#xff0c;您可以按照以下步骤进行操作。ZLMediaKit 是一个高性能的流媒体服务器&#xff0c;支持 RTMP、RTSP、HLS 等协议。以下是一个详细的集群部署方案&#xff1a; ### 1. 环境准备 - **服务器**&#xff1a;准备多台服务器&#xff0c;…...

Docker基础实践与应用举例

Docker 是一个轻量级容器化平台&#xff0c;通过将应用及其依赖打包到容器中&#xff0c;实现快速部署和环境一致性。以下是 Docker 的实践与应用场景举例&#xff0c;结合具体操作步骤&#xff1a; 一、基础实践 1. 快速启动一个容器 # 运行一个Nginx容器&#xff0c;映射宿…...

Innovus中快速获取timing path逻辑深度的golden脚本

在实际项目中我们经常会遇到一条timing path级数特别多&#xff0c;可能是一两页都翻不完。此时&#xff0c;我们大都需要手工去数这条path上到底有哪些是设计本身的逻辑&#xff0c;哪些是PR工具插入的buffer和inverter。 数字IC后端手把手培训教程 | Clock Gating相关clock …...

百度AI图片助手,免费AI去水印、画质修复、画面延展以及局部替换

最近&#xff0c;要是你常用百度图片&#xff0c;可能已经发现了它新添的一个超实用功能——百度AI图片助手。但很多朋友不知道它的入口地址&#xff0c;我们今天给大家分享一下。 这个功能的出现&#xff0c;在图片编辑修改方面带来了极大便利&#xff0c;它涵盖了AI去水印、…...

【前端】Axios AJAX Fetch

不定期更新&#xff0c;建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端&#xff0c;用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求&#xff0c;并处理请求的结果。axios …...

测试面试题:以一个登录窗口为例,设计一下登录界面测试的思路和方法

在测试登录窗口时,可以从 表单测试、 逻辑判断和 业务流程三个方面设计测试思路和方法。以下是一个详细的测试方案: 1. 表单测试 表单测试主要关注输入框、按钮等UI元素的正确性和用户体验。 测试点: 输入框测试 用户名和密码输入框是否正常显示。输入框是否支持预期的字符类…...

Android之图片保存相册及分享图片

文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的&#xff0c;更多的是在界面加了很多东西&#xff0c;然后把整个界面转成图片保存相册和分享&#xff0c;而且现在分享都不需要第三方&…...

EX_25/2/24

写一个三角形类&#xff0c;拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类&#xff0c;继承自三角形类 1&#xff1a;写好构造函数&#xff0c;初始化三条边 2&#xff1a;要求无论如何&#xff0c;等腰三角形类对象&#x…...

WarcraftHelper终极解决方案:5分钟让魔兽争霸3在Windows 11完美运行

WarcraftHelper终极解决方案&#xff1a;5分钟让魔兽争霸3在Windows 11完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代…...

如何快速解锁网易云音乐NCM文件:3步实现音乐自由终极指南

如何快速解锁网易云音乐NCM文件&#xff1a;3步实现音乐自由终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&a…...

终极bufferline.nvim开发者指南:扩展与贡献代码的完整教程

终极bufferline.nvim开发者指南&#xff1a;扩展与贡献代码的完整教程 【免费下载链接】bufferline.nvim A snazzy bufferline for Neovim 项目地址: https://gitcode.com/gh_mirrors/bu/bufferline.nvim bufferline.nvim是一款为Neovim打造的时尚缓冲区管理插件&#x…...

手把手调试:在Vector CANoe/CANalyzer中复现OSEK NM的建环与睡眠过程

手把手调试&#xff1a;在Vector CANoe/CANalyzer中复现OSEK NM的建环与睡眠过程 当工程师需要验证OSEK网络管理&#xff08;NM&#xff09;协议在实际车载网络中的行为时&#xff0c;Vector的CANoe和CANalyzer工具链提供了近乎完美的仿真环境。不同于理论讲解&#xff0c;本文…...

别再只删特征了!用Pandas和Seaborn搞定特征共线性,我总结了3种更聪明的处理姿势

特征共线性的高阶处理&#xff1a;从数据删除到信息重构的实战进阶 在房地产价格预测项目中&#xff0c;我们常常遇到一组高度相关的特征——比如白天人口(daypop)、夜间人口(nightpop)和20-39岁夜间人口(night20-39)。传统做法是简单删除"冗余"特征&#xff0c;但这…...

STM32H743双FDCAN实战:手把手教你搞定消息RAM分区与过滤表共存(附完整代码)

STM32H743双FDCAN实战&#xff1a;消息RAM分区与过滤表共存深度解析 第一次在H743上同时启用双FDCAN通道时&#xff0c;我遇到了一个诡异现象——CAN1接收的数据偶尔会出现在CAN2的缓冲区里。经过三天调试才发现&#xff0c;问题根源在于那10KB共享消息RAM的配置方式。与传统的…...

批量归一化基础:让模型训练更稳定

文章目录前言一、没BN的深度学习有多难&#xff1f;先懂痛点再学技术1.1 内部协变量偏移&#xff1a;网络每层都在“乱变”1.2 梯度消失与爆炸&#xff1a;深层网络的“拦路虎”1.3 调参难如登天&#xff1a;对初始化和学习率极度敏感二、批量归一化到底是什么&#xff1f;一句…...

常见网络攻击

DDoS攻击,CC攻击 CC攻击 DDoS的一种 发送大量的合法请求消耗应用层的资源(CPU,内存,数据等),耗尽资源,比如在教务网站中写死循环脚本持续访问某个资源,无技术难度 防御: 对同IP限流,验证码,行为分析 DDoS 全名分布式拒绝攻击,攻击者控制大量僵尸设备(被植入病毒的电脑,服…...

告别手动配IP:在FreeRTOS+STM32F4上为LwIP添加NetBIOS主机名功能全记录

基于FreeRTOS与LwIP的嵌入式设备网络标识优化实践 办公室里同时调试五台STM32设备时&#xff0c;每次都要通过串口日志查看动态分配的IP地址&#xff0c;这种低效的调试方式让我决定彻底改变现状。本文将分享如何通过NetBIOS协议实现设备主机名访问&#xff0c;让ping my_devic…...

鸿蒙flutter测试文章3

test...