系列文章目录
往期文章回顾:
【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交流,如觉得有用,直接三连带回家。🐶