【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安装

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

bash 复制代码
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启动时,命令改为如下:

bash 复制代码
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后,点击保存发现也没有生效

解决办法:

用以下命令重新启动容器

bash 复制代码
docker restart 容器ID(通过docker ps -a查询容器ID)

总结

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

相关推荐
嘟嘟MD8 小时前
程序员副业 | 2025年9月复盘
后端·aigc
想学全栈的菜鸟阿董9 小时前
LangChain部署RAG part2.搭建多模态RAG引擎(赋范大模型社区公开课听课笔记)
langchain
墨风如雪10 小时前
就它了!Claude Sonnet 4.5:AI编程与智能体的新王牌
aigc
墨风如雪10 小时前
AI视频革命奇点:Sora 2的数字幻境
aigc
0x21111 小时前
[论文阅读]PromptArmor: Simple yet Effective Prompt Injection Defenses
prompt
Mintopia13 小时前
小样本学习在 WebAI 场景中的技术应用与局限
前端·人工智能·aigc
听到微笑1 天前
LLM 只会生成文本?用 ReAct 模式手搓一个简易 Claude Code Agent
人工智能·langchain·llm
zzywxc7871 天前
AI 在金融、医疗、教育、制造业等领域都有广泛且深入的应用,以下是这些领域的一些落地案例
人工智能·金融·自动化·prompt·ai编程·xcode
Lululaurel1 天前
提示工程深度解析:驾驭大语言模型的艺术与科学
人工智能·ai·aigc·提示词
win4r1 天前
程序员福利!GitHub最火的Spec Kit项目深度解析:只需7条命令就能实现规格驱动开发,告别繁琐的PRD文档,让规范直接生成代码!支持Claude Cod
aigc·claude·vibecoding