适配Ollama的前端界面Open WebUI

news2024/12/26 11:24:10

在这里插入图片描述

在前文 本地大模型运行框架Ollama 中,老苏留了个尾巴,限于篇幅只是提了一下 Open WebUI,有网友留言说自己安装没搞定,今天我们来补上

文章传送门:本地大模型运行框架Ollama

什么是 Open WebUI ?

Open WebUI 是针对 LLM 的用户友好的 WebUI,支持的 LLM 运行程序包括 OllamaOpenAI 兼容的 API

Open WebUI 系统旨在简化客户端(您的浏览器)和 Ollama API 之间的交互。此设计的核心是后端反向代理,可增强安全性并解决 CORS 问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Open WebUI 功能演示

【说明】:

  • 因为老苏的小机器不支持 Nvidia GPU,所以下面👇的安装示例仅支持 CPU

  • 本文假设你已经在 11434 端口启动了 Ollama 服务,但是否在本机是无所谓的。

安装

在群晖上以 Docker 方式安装。

镜像下载

官方没有在 docker hub 上发布镜像,而是发布在 ghcr.io,地址在 https://github.com/open-webui/open-webui/pkgs/container/open-webui

在这里插入图片描述

SSH 客户端登录到群晖后,依次执行下面的命令

# 新建文件夹 open-webui 和 子目录
mkdir -p /volume1/docker/open-webui/data

# 进入 open-webui 目录
cd /volume1/docker/open-webui

# 拉取镜像
docker pull ghcr.io/open-webui/open-webui:main

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/open-webui/open-webui:main

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/open-webui/open-webui:main ghcr.io/open-webui/open-webui:main

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/open-webui/open-webui:main

下载完成后,可以在 映像 中找到

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 运行容器(仅CPU)
docker run -d \
   --restart unless-stopped \
   --name ollama-webui \
   -p 11433:8080 \
   -v $(pwd)/data:/app/backend/data \
   -e OLLAMA_API_BASE_URL=http://192.168.0.197:11434/api \
   -e WEBUI_SECRET_KEY=TkjGEiQ@5K^j \
   ghcr.io/open-webui/open-webui:main

环境变量的简单说明

没有找到官方说明,但是这两个是必须要设置的

可变
OLLAMA_API_BASE_URLOllama 服务器的地址
WEBUI_SECRET_KEY可以理解成密码,老苏是用 Vaultwarden 生成的

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  ollama-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: ollama-webui
    restart: unless-stopped
    ports:
      - 11433:8080
    volumes:
      - ./data:/app/backend/data
    environment:
      - OLLAMA_API_BASE_URL=http://192.168.0.197:11434/api
      - WEBUI_SECRET_KEY=TkjGEiQ@5K^j

然后执行下面的命令

# 进入 open-webui 目录
cd /volume1/docker/open-webui

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:11433 就能看到登录界面

第一次需要注册账号

在这里插入图片描述

登录成功后的主界面

在这里插入图片描述

点左下角的用户名,进 Settings

也可以点 Select a model 后面的设置图标;

在这里插入图片描述

Modles 中可以添加、删除和切换模型

感谢网友 Zzz 推荐的 qwen:0.5b,这是阿里云推出的基于 Transformer 的大型语言模型,推理最低内存需求小于 2GB ,在老苏的机器上,运行都非常流畅。

可以在 Ollama 中用命令行安装

在这里插入图片描述

感谢网友 潇雨 推荐的 gemma:2b,这是 Google 及其 DeepMind 团队开发的新型开放模型。

也可以在这里直接下载

  • ①中输入模型名称及版本
  • ②点击开始下载
  • ③跳转到模型库查询页面

在这里插入图片描述

过程中有进度显示

在这里插入图片描述

回到首界面,选择模型

在这里插入图片描述

刚下载的模型可能要等一会才会显示出来,现在老苏已经有了 2 模型了

在这里插入图片描述

现在可以开始提问了

在这里插入图片描述

同样的问题,换个模型试试

在这里插入图片描述

目前的这种应用场景下,老苏暂时倾向于使用 qwen:0.5b ,不仅速度快,答案看起来也更丰满一些

在这里插入图片描述

参考文档

open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)
地址:https://github.com/open-webui/open-webui

🏡 Home | Open WebUI
地址:https://docs.openwebui.com/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习_19_卷积

理论: 目前问题在于识别图片所需要的模型权重数量会比较大 一般图片像素在12M也就是一千两百万像素,要用模型对其整体识别的话,需要至少一千两百万权重,那也仅仅是线性模型,若用多层感知机的话,模型的数据…

【Flutter 面试题】在flutter里streams是什么?有几种streams?有什么场景用到它?

【Flutter 面试题】在flutter里streams是什么?有几种streams?有什么场景用到它? 文章目录 写在前面解答补充说明**Single subscription streams** 读取文件广播流 Broadcast streams 通知多个监听器关于状态的变化 写在前面 关于我 &#xf…

智慧城市的创新实践:全球案例分享

一、引言 在全球化和数字化的时代,智慧城市已经成为城市发展的前沿趋势。智慧城市运用先进的信息技术,如大数据、物联网、云计算和人工智能等,提升城市管理的智能化水平,增强公共服务效率,优化居民生活质量。本文将通…

python自动化管理和zabbix监控网络设备(zabbix部署监控网络设备以及验证部分)

目录 前言 一、Zabbix搭建 二、FW1 三、python脚本 四、core-sw1 五、core-sw2 六、DMZ-sw1 前言 详细配置视频解析访问:白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 一、Zabbix搭建 sed -i s/SELINUXenforcing/SELINUXdisable/ /etc/selinux/config…

AWTK 开源串口屏开发(11) - 天气预报

# AWTK 开源串口屏开发 - 天气预报 天气预报是一个很常用的功能,在很多设备上都有这个功能。实现天气预报的功能,不能说很难但是也绝不简单,首先需要从网上获取数据,再解析数据,最后更新到界面上。 在 AWTK 串口屏中…

es集群的详细搭建过程

目录 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安装 VMware Workstation 15 Pro的安装与破解 VM新建虚拟机 VM新建虚拟机 二、集群搭建 打开新建好的服务器,node1,使用xshell远程连接 下载es:https://www.elastic.co/cn/down…

HTML+CSS:未来属于CSS

效果演示 一个带有不同背景颜色的网格布局&#xff0c;其中一些元素可能会更大或者字体更大。 Code <main><div></div><div></div><div></div><div></div><div class"big"></div><div><…

IP-guard邮件管控再升级,记录屏幕画面,智能阻断泄密邮件

邮件是工作沟通以及文件传输的重要工具,却也成为了信息泄露的常见渠道。员工通过邮件对外发送了什么内容,是否含有敏感信息都无从得知,机密通过邮件渠道外泄也难以制止。想要防止企业的重要信息通过邮件方式泄露,我们不仅需要通过技术措施对外发邮件的行为进行规范,也要对…

基于 Vue3打造前台+中台通用提效解决方案(上)

基于 Vue3打造前台+中台通用提效解决方案 1、项目架构 本项目使用vite + vue3来实现前中台解决方案 2、为什么使用vite ? 因为,之前的项目一直都是使用webpack作为构建工具;vite出来这么久了,也没有用过;所以想在当前项目下进行使用; 2.1、为什么vite比webpack块? …

25.基于springboot + vue实现的前后端分离-停车管理系统(项目 + 论文)

项目介绍 系统包含用户和管理员两个角色 用户&#xff1a;登录、注册、个人中心、预定停车位、缴费信息 管理员&#xff1a;登录、用户信息管理、车位信息管理、车位费用管理、停泊车辆管理、车辆进出管理、登录日志查询 技术选型 开发工具&#xff1a;IDEA 服务器&#…

本科毕业设计:计及并网依赖性的分布式能源系统优化研究。(C语言实现)(内包含NSGA II优化算法)(一)

目录 前言 1、分布式能源系统模型介绍 2、运行策略 前言 本篇文章介绍的是我的毕业设计&#xff0c;我将C语言将其实现。 1、分布式能源系统模型介绍 这是我将研究的分布式能源系统的框架&#xff0c;内部供能装置包括&#xff1a;太阳能光伏板&#xff1b;sofc燃料电池、太阳…

Leetcode1642. 可以到达的最远建筑

Every day a Leetcode 题目来源&#xff1a;1642. 可以到达的最远建筑 解法1&#xff1a;反悔贪心 在移动的过程中&#xff0c;我们会需要若干次需要使用砖块或者梯子的情况。假设当前我们需要移动到下一建筑物&#xff0c;但必须使用 1 架梯子或者 Δh 个砖块&#xff0c;那…

docker 创建RedHat8.5镜像

确定要创建的小红帽版本&#xff0c;可以进入官网查看 https://hub.docker.com/search?qRedHat 复制命令到安装docker的机器上&#xff0c;拉取小红帽镜像。 docker pull redhat/ubi8:latest 执行完成后&#xff0c;查看镜像是否拉取成功 docker images |grep redhat 如图…

《Spring Security 简易速速上手小册》第3章 用户认证机制(2024 最新版)

文章目录 3.1 认证流程3.1.1 基础知识详解认证流程的核心概念认证流程的步骤 3.1.2 主要案例&#xff1a;内存用户认证案例 Demo&#xff1a;快速启动你的 Spring Boot 守护程序 3.1.3 拓展案例 1&#xff1a;数据库用户认证案例 Demo&#xff1a;让数据库守护你的秘密 3.1.4 拓…

vue3三级嵌套复选框(element-plus)

一、功能描述 当选择第一级的复选框时下面所有内容全选和取消全选&#xff0c;当选择第二的复选框时第三级的所有内容全选和取消全选。只要有一个第三级的内容没有选&#xff0c;二级和一级则不能勾上。第三级内容全选上了&#xff0c;第二级复选框就钩上。第二级也是同样的道理…

【暗月安全】2021年渗透测试全套培训视频

参与培训需要遵守国家法律法规&#xff0c;相关知识只做技术研究&#xff0c;请勿用于违法用途&#xff0c;造成任何后果自负与本人无关。 中华人民共和国网络安全法&#xff08;2017 年 6 月 1 日起施行&#xff09; 第二十二条 任何个人和组织不得从事入侵他人网络、干扰他…

折线图实现柱状阴影背景的demo

这个是一个由官网的基础折线图实现的流程&#xff0c;将涉及到的知识点附上个人浅薄的见解&#xff0c;源码在最后&#xff0c;需要的可自取。 折线图 成果展示代码注解参数backgroundColordataZoomlegendtitlexAxisyAxisgridseries 源码 成果展示 官网的基础折线图&#xff…

Android之Handler原理解析与问题分享

一、Handler运行原理剖析 1.关系剖析图 如果把整个Handler交互看做一个工厂&#xff0c;Thread就是动力MessageQueue是履带Looper是转轴Loooper的loop方法就是开关&#xff0c;当调用loop方法时整个工厂开始循环工作&#xff0c;处理来自send和post提交到MessageQueue的消息&a…

Nodejs 第四十五章(redis发布订阅+事务)

发布订阅 发布-订阅是一种消息传递模式&#xff0c;其中消息发布者&#xff08;发布者&#xff09;将消息发送到频道&#xff08;channel&#xff09;&#xff0c;而订阅者&#xff08;订阅者&#xff09;可以订阅一个或多个频道以接收消息。这种模式允许消息的解耦&#xff0…

006-CSS-常见问题汇总

常见问题汇总 1、伪元素与伪类2、偏门但好用的样式3、文字溢出三个点展示4、空白折叠问题5、文字的垂直居中6、 Vue项目中 在父组件中修改子组件样式7、BFC 概念7.1、兄弟元素外边距合并7.2、父子元素外边距塌陷 8、box-sizing8.1、box-sizing: border-box8.2、box-sizing: con…