使用Ollama和Open WebUI管理本地开源大模型的完整指南

🏡作者主页:点击! 

🤖AI大模型部署与应用专栏:点击!

⏰️创作时间:2024年5月27日12点20分

🀄️文章质量:96分


目录

✨️Open-WebUI介绍

优点

💥部署教程

1.打开官网地址

2.安装Docker

3.Open WebUI下载

👁️‍🗨️功能介绍

1.AI编程

2.聊天历史

3.自定义Web的界面

💯趣站💯


该篇接着上篇在本地部署大模型

使用 Ollama框架 下载和使用 Llama3 AI大模型的完整指南

http://t.csdnimg.cn/DKfjLicon-default.png?t=N7T8http://t.csdnimg.cn/DKfjL

✨️Open-WebUI介绍

Open WebUI 是一种基于 Web 的用户界面,用于管理和操作各种本地和云端的人工智能模型。它提供了一个直观的图形化界面,使用户可以方便地加载、配置、运行和监控各种 AI 模型,而无需编写代码或使用命令行界面。

优点

Open-WebUI 是一款功能强大且易于使用的 Web 界面,可让您轻松与大型语言模型 (LLM) 进行交互。它具有以下优点:

用户界面

直观且响应式,可在任何设备上提供卓越的体验。

支持多种主题和自定义选项,以满足您的个人喜好。

性能

快速响应和流畅的性能,即使在处理复杂任务时也是如此。

支持多模型和多模态交互,可实现更强大的功能。

功能

  • 全面的 Markdown 和 LaTeX 支持,可轻松格式化和共享文本。
  • 本地 RAG 集成,可通过文档检索增强 LLM 功能。
  • Web 浏览功能,可直接从聊天中访问和交互网站。
  • 提示预设,可快速启动常见对话。
  • RLHF 注释,可通过提供反馈来帮助改进 LLM。
  • 对话标记,可轻松组织和查找对话。
  • 模型管理功能,可轻松添加、删除和更新模型。
  • 语音输入和文本转语音,可实现自然语言交互。
  • 高级参数微调,可根据您的需要定制 LLM 行为。
  • 图像生成集成,可创建令人惊叹的视觉内容。

API

支持 OpenAI API 和其他兼容 API,可扩展 LLM 功能。

提供 API 密钥生成和外部 Ollama 服务器连接等高级功能。

安全性

基于角色的访问控制 (RBAC),可确保仅授权用户才能访问敏感信息。

模型白名单和受信任的电子邮件身份验证可增强安全性。

后端反向代理支持可保护您的 Ollama 实例。

其他

支持多种语言,可满足全球用户的需求。

定期更新和新功能,确保您始终拥有最佳体验。

官网有更详细的介绍,如想了解去官网查询!

 💯趣站💯

前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住粉香一下给大家,人工智能, 机器算法等......  

点击跳转网站icon-default.png?t=N7T8https://www.captainbed.cn/sis/

💥部署教程

1.打开官网地址

打开,开源项目Open-WebUI地址放在下方

点击!icon-default.png?t=N7T8https://github.com/open-webui/open-webui

点进去之后里边也是有相应的功能介绍,以及不同环境下的安装(具体看文档介绍)

2.安装Docker

自行去官网安装,安装教程也是十分的简单

3.Open WebUI下载

安装完成之后重启电脑,打开Docker

复制这条命令( Ollama 在您的计算机上使用以下命令)

不同的条件下,有不同的命令,详细见开源地址所述

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

参数详解

  • docker run: 启动一个新的 Docker 容器。
  • -d: 以守护进程模式运行容器,容器将在后台运行。
  • -p 3000:8080: 将本地机器的端口 3000 映射到容器内的端口 8080。这意味着你可以通过访问 http://localhost:3000 来访问运行在容器内的服务。
  • --add-host=host.docker.internal:host-gateway: 将主机名 host.docker.internal 映射到 Docker 网关。这对于在容器内访问主机服务很有用。
  • -v open-webui:/app/backend/data: 将本地的 open-webui 卷映射到容器内的 /app/backend/data 目录。这用于持久化数据,确保即使容器停止或重新启动,数据也不会丢失。
  • --name open-webui: 为容器指定一个名称 open-webui,以便于管理和识别。
  • --restart always: 设置容器的重启策略为 always,这意味着容器如果停止(例如由于崩溃或系统重启),Docker 会自动重启它。
  • ghcr.io/open-webui/open-webui:main: 使用来自 GitHub 容器注册表(GitHub Container Registry)的 open-webui 镜像,并指定使用 main 标签的版本。

复制完成之后打开我们的cmd命令行

复制copy的命令一键运行即可

等待下载完成即可

安装完成之后访问本地的3000端口

也可以点击自己的Docker,点击访问即可

首次登录需要创建用户

注册一个用户

成功的登录到UI界面

成功的进入之后,我们选择相应的模型,因为我本地下载过8B的模型,所以它自动会识别的。

选择好模型之后,我们来对他进行提问

可以看出类似于ChatGPT的聊天框十分的便捷

但是在访问的时候占用的是本地的内存和CPU,大家可以明显的看出 CPU飙升(我个人的笔记本性能没有那么好,并且是集成显卡)。

回答的速度是根据自己电脑的性能挂钩,并且选择的模型,也可以选择自己适合的模型

可以看出回答的也是十分的详细

👁️‍🗨️功能介绍

1.AI编程

测试以下编程能力

问题:

用shell脚本编写一个ping通网段所有主机 要求如果可以访问返回YES,否则就NO

它的回答:

下面是一个 shell 脚本,用于检查指定网络范围内的所有主机是否可访问,并相应地返回“YES”或“NO”:ping

#!/bin/bash

# Set the network range (e.g. 192.168.1.0/24)
NETWORK_RANGE="192.168.1.0/24"

# Set the number of hosts to ping (e.g. 254 for a /24 subnet)
NUM_HOSTS=$(ipcalc -n $NETWORK_RANGE | awk '{print $2}' | grep -oE '[0-9]+$')

# Initialize the result
RESULT="NO"

# Ping each host in the network range
for i in $(seq 1 $NUM_HOSTS); do
  HOST=$NETWORK_RANGE".$i
  if ping -c 1 -W 1 $HOST &> /dev/null; then
    RESULT="YES"
    break
  fi
done

echo "$RESULT"

让我解释一下脚本的工作原理:

  1. 我们使用(一种计算 IP 地址范围的工具)设置要 ping 的网络范围和主机数量。例如,如果我们要检查子网中的所有主机,我们将设置 和 。ipcalc``192.168.1.0/24``NETWORK_RANGE="192.168.1.0/24"``NUM_HOSTS=$(ipcalc -n $NETWORK_RANGE | awk '{print $2}' | grep -oE '[0-9]+$')

  2. 我们将结果初始化为“NO”(假设并非所有主机都可以访问)。

  3. 我们使用循环和命令遍历网络范围内的每个主机,该命令生成从 1 到 的数字序列。对于每个主机,我们通过将网络范围与主机编号(例如,等)连接起来构建完整的IP地址。for``seq``$NUM_HOSTS``192.168.1.1``192.168.1.2

  4. 我们用来检查主机是否可访问。如果是,我们将结果更新为“YES”并打破循环。ping

  5. 最后,我们打印结果。

您可以将此脚本保存到文件(例如 )中,并使用 .然后,您可以通过在终端中执行来运行它。ping_network.sh``chmod +x ping_network.sh``./ping_network.sh

注意:此脚本假定您已安装在系统上。如果没有,您可以使用包管理器安装它(例如,在基于 Ubuntu 的系统上)。此外,如果网络范围较大或主机响应缓慢,则此脚本可能需要一段时间才能运行。您可以修改脚本以使用,或者如果需要加快该过程。ipcalc``apt-get install ipcalc``parallel processing``concurrent ping

可以看的出来回答的也是十分的详细

可以看出回答的十分的仔细,不仅写出了脚本,而且还对于代码进行解释,我仅仅采用的是8B的模型,还有更高的模型。

2.聊天历史

当我们退出网页之后,重新登录,发现聊天记录仍然是在的,十分的便捷

就像官网所说的那样

  • 🔄 再生历史访问:轻松重温和探索您的整个再生历史。

  • 📜 聊天记录:轻松访问和管理您的对话记录。

  • 📬 存档聊天:毫不费力地存储与 LLM 的完整对话以供将来参考,保持整洁整洁的聊天界面,同时允许轻松检索和参考。

3.自定义Web的界面

管理链接更新模型

多的就不在介绍,大家部署完成之后自行实践,设置的项十分的重要。

同时还支持很多功能,自定义模型

上传下载好的模型文件

GGUF 文件模型创建:通过直接从 Web UI 上传 GGUF 文件,轻松创建 Ollama 模型。简化流程,提供从机器上传或从 Hugging Face 下载 GGUF 文件的选项。

同时还支持图像生成集成,OpenAI API集成,外部Ollama服务器链接,多用户管理,等等... 感兴趣的话可以去开源项目的文档去详细的了解,对你十分的有帮助

<think>嗯,用户想知道如何在他们的应用程序中嵌入Open-WebUI。首先,我需要回顾一下Open-WebUI的基本信息。根据提供的引用,Open-WebUI是一个用户友好的Web界面,用于与LLMs(大语言模型)交互,之前叫做Ollama WebUI。用户可能希望将这个UI集成到他们自己的应用中,可能是为了提供一个现成的聊天界面或者管理界面。 接下来,我需要考虑嵌入的可能方法。通常,嵌入Web应用可以通过iframe、API集成或者自定义组件实现。查看引用中的资料,引用[1]提到了GitHub仓库教程,可能里面有相关的文档或示例。另外,引用[2]是一篇优快云博客,可能讨论了部署方法,但用户现在需要的是嵌入到现有应用中的步骤,而不仅仅是部署。 首先,应该检查Open-WebUI的官方文档是否有嵌入的指南。例如,是否有提供React组件、Vue组件或者其他前端框架的支持。或者是否提供REST API,允许通过API调用来交互,这样用户的应用可以后端集成,前端自己构建。 另外,iframe是一个简单的嵌入方式,但需要考虑跨域问题。如果Open-WebUI主应用在同一域名下,或者服务器配置了CORS,可能可行。但需要确认Open-WebUI是否支持被iframe嵌入,以及安全性设置。 然后,可能需要使用Docker或者Kubernetes进行容器化部署,这样应用可以作为一个独立的服务运行,然后通过反向代理(如Nginx)将路径代理到Open-WebUI的服务。例如,主应用运行在端口3000,Open-WebUI运行在端口8080,通过Nginx配置路由,使/app/openwebui指向Open-WebUI实例。 另一个可能性是通过JavaScript SDK或者自定义脚本加载Open-WebUI的界面。如果Open-WebUI提供了这样的SDK,用户可以直接在他们的前端代码中引入,并初始化相应的组件。 还需要考虑认证权限的问题。如何确保只有授权用户才能访问嵌入的Open-WebUI界面?可能需要配置OAuth、JWT或者API密钥,确保与主应用的认证系统集成。 此外,查看示例教程是否有具体的代码片段。例如,在GitHub仓库的文档中,可能提供了如何通过Docker Compose部署并设置路由,或者如何在React应用中嵌入的步骤。用户可能需要修改配置文件,设置环境变量,或者添加特定的路由规则。 最后,总结可能的步骤:部署Open-WebUI作为独立服务,配置反向代理,处理跨域问题,前端通过iframe或组件集成,处理认证,并确保通信安全。同时,参考官方文档社区教程,获取具体的配置示例最佳实践。</think>### 如何在应用中嵌入 Open-WebUI #### 1. **部署 Open-WebUI 服务** - 首先需将 Open-WebUI 作为独立服务运行。可通过 Docker 快速部署: ```bash docker run -d -p 3000:3000 --name open-webui ghcr.io/open-webui/open-webui:main ``` 此命令会在本地启动 Open-WebUI 服务,端口为 `3000`[^1]。 #### 2. **反向代理配置(可选)** - 若需通过主应用域名访问 Open-WebUI,可通过 Nginx 等工具配置反向代理: ```nginx location /openwebui { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } ``` 此时可通过 `https://主应用域名/openwebui` 访问 Open-WebUI。 #### 3. **前端嵌入方式** - **方法一:iframe 嵌入** 在应用中添加 iframe 标签,直接加载 Open-WebUI 页面: ```html <iframe src="http://localhost:3000" width="100%" height="600px" frameborder="0" ></iframe> ``` 需确保 Open-WebUI 的 CORS 配置允许被嵌入[^2]。 - **方法二:API 集成** Open-WebUI 支持与 LLM 服务(如 Ollama)交互,可通过其 REST API 实现自定义前端: ```javascript // 示例:调用 Open-WebUI 的聊天接口 fetch('http://localhost:3000/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: "Hello, World!" }) }) ``` #### 4. **安全与认证** - 启用身份验证(如 OAuth2 或 JWT)以限制未授权访问,可通过环境变量配置: ```bash docker run -d -p 3000:3000 \ -e "ENABLE_AUTH=true" \ -e "OAUTH2_CLIENT_ID=your_client_id" \ ghcr.io/open-webui/open-webui:main ``` #### 5. **自定义界面(高级)** - 若需深度集成,可克隆 Open-WebUI 仓库并修改前端代码: ```bash git clone https://github.com/open-webui/open-webui.git cd open-webui npm install npm run build ``` 修改 `src/components` 下的 Vue 组件以适配应用风格。 ---
评论 144
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘泣男子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值