【LLM】三、open-webui+ollama搭建自己的聊天机器人

系列文章目录

往期文章回顾:

【LLM】二、python调用本地的ollama部署的大模型

【LLM】一、利用ollama本地部署大模型


目录

前言

一、open-webui是什么

二、安装

1.docker安装

2.源码安装

三、使用

四、问题汇总

总结



前言

        前面的文章,我们已经学习了如何在本地搭建并调用自己大模型,今天我们的主要内容是通过open-webui+Ollama来搭建一个聊天机器人的前端页面。        


一、open-webui是什么

       官网地址:open- webUI

        Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线运行。它支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容 API。

二、安装

1.docker安装

这里直接参考官方文档,安装即可。这里我推荐使用下面这条命令:

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

其中,涉及到的参数解释如下:

  • -p 端口映射:将本地机器的端口 3000 映射到容器内的端口 8080。这意味着你可以通过访问 http://localhost:3000 来访问运行在容器内的服务。如果你的Ollama监听的端口是其他的,比如1001,那就改为-p 1001:8000即可,以此类推
  • -e OLLAMA_BASE_URL=https://example.com 是添加我们的Ollama服务,http://example.com改为自己的服务地址即可。
  • - v 目录挂载:将本地的 open-webui 卷映射到容器内的 /app/backend/data 目录。这用于持久化数据,确保即使容器停止或重新启动,数据也不会丢失。注意,open-webui不是固定的,你可以设置为任何存在的目录
  • --name 起名:为容器指定一个名称,如 open-webui,可通过docker ps -a 来查看所有的容器状况
  • --restart: 设置容器的重启策略,若为 always,这意味着容器如果停止(例如由于崩溃或系统重启),Docker 会自动重启它。
  • 其余参数用默认的即可

2.源码安装

        如果你不想用docker的方式安装,那就自己用源码去编译安装,参考链接为源码安装

三、使用

  •  按照上述方式部署成功后,在浏览器输入http:localhost:3000之后,首先会先让你注册,注册时,邮箱可以随便填,填123@123.com都可以,注册并登陆成功后进入如下界面:

        

  • 默认情况下界面时英文状态,点击红框中的设置键进入设置界面,如下:

        

        在通用里选择语言为中文然后点击保存即可汉化。

  • 在连接里我们可以绑定open AI的密钥或者我们用ollama自己部署的本地模型,如下:

        

        这里我用的是Ollama服务,对应的URL即为我们docker 启动命令里的-e OLLAMA_BASE_URL=这个参数,如果启动命令里没指定也可以在这里加入。

  • 设置完这里之后我们就可以回到主界面进行使用,先选择我们要调用的模型,如下:

        

        点击红框中的按钮即可选择我们本地已有的模型,选择一个然后即可开始对话,同时,聊天机器人窗口也会在左下方保存,如上图中的qwen2_7b即为我自己的聊天机器人窗口。

四、问题汇总

1、第一次启动容器之后,在浏览器输入http:localhost:3000,发现进入失败,容器也直接崩溃重启,通过打印docker 日志(docker logs 容器ID),爆出如下错误:    ​​​​​​​

解决办法:

docker启动时,命令改为如下:

docker run -d -p 3000:8080 -e HF_ENDPOINT=https://hf-mirror.com -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

即增加一条指令:-e HF_ENDPOINT=https://hf-mirror.com

2、当在设置中添加Ollama的URL时没有生效

        在如下设置里添加Ollama的URL后,点击保存发现也没有生效

                

        解决办法:

        用以下命令重新启动容器

docker restart 容器ID(通过docker ps -a查询容器ID)

        


总结

以上就是本篇的全部内容,如有问题,欢迎评论区交流,或+企鹅群:995760755交流,如觉得有用,直接三连带回家。🐶

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

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

相关文章

探索Qt的QVariant:灵活的数据交换机制

😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…

VMware使用技巧

目录 1. 系统快照 1.1 拍摄快照 1.2 查看快照 1.3 应用/删除快照 2. 克隆虚拟机 3. 删除虚拟机 1. 系统快照 1.1 拍摄快照 将当前系统的状态保存下来,如果将来系统出现不可修复的故障,使用快照可以恢复操作系统; CentOS7——拍照—…

【开源】基于RMBG的一键抠图与证件照制作系统【含一键启动包】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【Linux】System V信号量详解以及semget()、semctl()和semop()函数讲解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

数字化转型:企业法务管理的未来发展 ​​​

在数字化浪潮的推动下,企业法务管理正经历着前所未有的变革。传统的法务工作模式在数据处理、合同审查、风险评估等方面逐渐显得力不从心。面对这一挑战,企业法务管理的数字化转型成为提升效率、保障合规、优化法律服务的必然选择。 数字化转型涉及到法…

解析Xml文件并修改QDomDocument的值

背景: 我需要解决一个bug,需要我从xml中读取数据到QDomDocument,然后获取到我想要的目标信息,然后修改该信息。 ---------------------------------------------------------------------------------------------------------…

VUE中ECharts提示框tooltip自动切换

目录 前言1导入插件2定义参数3 插件API 前言 使用VUE开发的数据大屏统计,又需要将 echarts的提示框 tooltip 实现自动切换,网上有个很简单的插件(echarts-tooltip-auto-show),使用教程简单分享给大家。 自动每隔几秒切…

哦华为仓颉语言

本来我不太想说的,奈何有不少粉丝提问提到了这语言,目前的情况我不透露太多,看过这课程C实现一门计算机编程语言到手撸虚拟机实战的懂的自然懂。 在互联网领域几乎大部分应用软件运行在X86 LINUX上居多,如果你有问题可以先学习这…

多版本python环境中,让python3固定指向其中一个python可执行文件

如果你只安装一个python环境,那么一般可执行文件名就叫python.exe和pythonw.exe 但是如果你有多个python环境时,可执行文件名是需要进行修改的,使得在安装库和调用时能够分辨python环境,比如我的电脑中装有python3.10和python2.x …

BUUCTF[堆][of_by_one]

堆中of_by_one 介绍: 严格来说 off-by-one 漏洞是一种特殊的溢出漏洞,off-by-one 指程序向缓冲区中写入时,写入的字节数超过了这个缓冲区本身所申请的字节数并且只越界了一个字节。溢出字节为可控制任意字节 :通过修改大小(size…

Spring AOP源码篇四之 数据库事务

了解了Spring AOP执行过程&#xff0c;再看Spring事务源码其实非常简单。 首先从简单使用开始, 演示Spring事务使用过程 Xml配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十六章 Linux 第一个程序 HelloWorld

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

S271系列RTU在旅游景区人流监控中的应用案例

S271系列RTU在旅游景区人流监控中的应用案例 随着全球旅游业的迅猛发展&#xff0c;旅游景区的管理者越来越关注如何利用先进的技术手段提升游客体验、优化管理效率以及确保安全。S271系列RTU作为一款先进的无线工业物联网设备&#xff0c;在旅游景区的人流监控中展现出了其独…

数据结构:顺序表+链表

数据结构&#xff1a;顺序表链表 一。顺序表&#xff1a; 首先在了解顺序表和链表之前&#xff0c;先了解一下线性表&#xff0c;**线性表&#xff08;linear list&#xff09;**是n个具有相同特征元素的有限序列 &#xff0c;在逻辑上是线性结构&#xff0c;也就是一条连续的…

WPF依赖附加属性

依赖附加属性的定义 基本过程&#xff1a;声明、注册、包装 依赖附加属性必须在依赖对象&#xff0c;附加属性不一定&#xff0c;关注的是被附加的对象是否是依赖对象 快捷方式&#xff1a;propa tab 关键字&#xff1a;RegisterAttached // 方法封装 public static int …

Unity3d C#实现基于UGUI ScrollRect的轮播图效果功能(含源码)

前言 轮播功能是一种常见的页面组件&#xff0c;用于在页面中显示多张图片/素材并自动或手动进行切换&#xff0c;以提高页面的美观度和用户体验。主要的功能是&#xff1a;自动/手动切换;平滑的切换效果;导航指示器等。可惜Unity的UGUI系统里没有现成的实现该功能&#xff0c…

第五次作业(多表联合查询)

新增员工表emp和部门表dept create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charsetutf8; insert into dept values (101,财务), (102,销售…

初识C++【命名空间】【输入输出】【缺省参数】【函数重载】

前言 C是一种通用的编程语言&#xff0c;被广泛用于开发各种应用程序&#xff0c;包括系统软件、游戏、手机应用和高性能计算等。它是C语言的扩展&#xff0c;添加了许多新特性和功能&#xff0c;并支持面向对象编程。C可以在不同的平台上编译和运行&#xff0c;具有高效性、可…

开放式耳机哪个品牌比较好?2024最值得推荐的火爆机型!!

在这个快节奏的时代&#xff0c;我们都在寻找那些既能让我们享受音乐&#xff0c;又能保持对外界感知的音频设备。开放式耳机以其独特的设计&#xff0c;满足了这一需求&#xff0c;它们让你在享受音乐的同时&#xff0c;还能听到周围环境的声音&#xff0c;无论是安全出行还是…

华为、H3C、锐捷、思科四大设备厂商交换机配置命令总结合辑

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好&#xff0c;我的网工朋友。 一直以来&#xff0c;对于华为、H3C、锐捷、思科交换机的命令配置&#xff0c;不断的有朋友留言&#xff0c;四…