openwebui开发部署教程

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

openwebui

https://docs.openwebui.com/getting-started/advanced-topics/development
开发指南-本机部署

前端启动

  1. conda activate open-webui
  2. cd open-webui
  3. npm run dev
复制代码
后端启动

  1. 首先进入cd ~
  2. cd backend
  3. sh dev.sh
复制代码
先启动openwebui,外部毗连中输入api,用模型test一下
one-api https://github.com/songquanpeng/one-api
为什么用one-api:azure的endpoint需要中转,除openai外,其他大模型也需要同一api格式接入openwebui
如果细致看了openwebui的文档可以发现社区有许多工具,有可以用来毗连azure模型的工具
One api启动

  1. 构建前端   
  2. cd one-api/web/default
  3. npm install
  4. npm run build
复制代码
  1. # 构建后端
  2. cd ../..
  3. go mod download
  4. go build-ldflags "-s -w" -o one-api
复制代码
langfuse监控

https://cloud.langfuse.com
集成openwebui,langfuse可以以轨迹的情势监控openwebui上的行为
开发指南-docker compose部署

提前说明的问题

在不更改源码的环境下,部署好的前后端容器是两个容器,存在跨域的环境并且现在还没有办理,后端config的代码中不允许用‘*’配置cross_origin,现在通过浏览器插件access-control-allow-origin办理跨域问题进行后续开发
且代码中配置项较多,在.env中配置不见效,现在跨过验证接口直接跳转登录的环境也未办理
开始部署

local 部署方案非常容易,下面我们整理适用于docker开发部署的方案
1、安装docker,我这里是在服务器linux centos上安装
官方docker文档https://docs.docker.com/engine/install/
docker hub 部署时需要配置镜像加速。阿里云的镜像已经不能使用,我在网上搜到了这些镜像加速,现在可用https://www.xuxlc.cn/article/details-40.html
  1. # 如果没有就创建目录,有就跳过这一步
  2. sudo mkdir -p /etc/docker
  3. # 写入配置文件
  4. sudo tee /etc/docker/daemon.json <<-'EOF'
  5. {
  6.     "registry-mirrors": [
  7.             "https://docker.1ms.run",
  8.         "https://doublezonline.cloud"
  9.     ]
  10. }
  11. EOF
  12. # 重启docker服务
  13. sudo systemctl daemon-reload
  14. sudo systemctl restart docker
复制代码
2、本地拉取openwebui代码
自己创建docker compose文件或者直接从git 拉取,内里有docker compose
1. 拉取源代码

起首,你需要将源代码从 Git 仓库拉取到本地。如果你还没有源代码,可以通过以下命令进行拉取:
  1. git clone https://github.com/open-webui/open-webui.git
  2. cd open-webui
复制代码
这里遇到版本问题node
1. 更新 Node.js

使用 Node Version Manager (nvm) 管理 Node.js 版本


  • 安装 nvm: 如果体系没有安装 nvm,可以执行以下命令安装:
    1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
    复制代码
    安装完成后,重启终端或运行:
    1. source ~/.bashrc
    复制代码
  • 确认 nvm 安装成功:
    1. nvm --version
    复制代码
  • 使用 nvm 安装所需的 Node.js 版本:
    1. nvm install 18.17.0
    复制代码
  • 设置默认 Node.js 版本:
    1. nvm use 18.17.0
    2. nvm alias default 18.17.0
    复制代码
  • 确认 Node.js 和 npm 版本:
    1. node -v
    2. npm -v
    复制代码

2. 升级 npm

如果安装了合适版本的 Node.js,npm 版本应该已经满足需求(>=6.0.0)。如果需要手动升级:
  1. npm install -g npm@latest
复制代码

3. 重新安装项目依靠

在更新 Node.js 和 npm 版本后,清除旧的依靠并重新安装:
  1. rm -rf node_modules package-lock.json
  2. npm install
复制代码
2. 修改 docker-compose.yml

你可以在之前的 docker-compose.yml 文件基础上,进行一些调整以支持本地代码挂载和开发模式。具体来说,重要是添加 volumes 和修改服务的 command 以及端口配置。以下是修改后的示例:
这里要留意的是端口,例如前端3000:5173,容器向外映射的是3000,内部是5173端口。要包管容器内5173端口没有被占用,服务器对外开放的3000端口没有受规则和防火墙限制
举例:
  1. name: open-webui-dev
  2. services:
  3.   frontend:
  4.     build:
  5.       context: .
  6.       target: build
  7.     command: ["npm", "run", "dev"]
  8.     depends_on:
  9.       - backend
  10.     ports:
  11.       - "3000:5173"
  12.     extra_hosts:
  13.       - host.docker.internal:host-gateway
  14.     volumes:
  15.       - ./src:/app/src
  16.   backend:
  17.     build:
  18.       context: .
  19.       target: base
  20.     command: ["bash", "dev.sh"]
  21.     env_file: ".env"
  22.     environment:
  23.       - ENV=dev
  24.       - WEBUI_AUTH=False
  25.     ports:
  26.       - "8080:8080"
  27.     extra_hosts:
  28.       - host.docker.internal:host-gateway
  29.     volumes:
  30.       - ./backend:/app/backend
  31.       - data:/app/backend/data
  32. volumes:
  33.   data: {}
复制代码
3. 启动开发环境

配置好 docker-compose.yml 文件后,可以启动 Docker 容器并进入开发模式:
  1. 构建镜像:
  2. docker compose -f compose-dev.yaml up --watch
复制代码
  1. 启动镜像
  2. docker compose -f compose-dev.yaml up -d
复制代码
这里可能再次遇到镜像问题,多试几种镜像
https://www.cnblogs.com/lasding/p/18401704
然后,你就可以通过访问 http://localhost:3000 来访问本地开发环境。
遇到问题:

耗费一天才办理的问题:
1、执行容器build命令,npm ci命令会一直卡住,报网络问题错误,实际上是pyodide这个包要预先下载和node匹配的版本,且npm ci命令需要在前面加镜像源,https://www.cnblogs.com/lasding/p/18401704,自己感觉华为云的镜像源好使
2、dockerfile文件也需要修改,有些没必要的例如ollama相关、pytorch,cuda相关命令直接解释,如果不消在服务器部署

后端模型的话
3、端口开放问题:留意几点:防火墙、服务器的自界说规则、如果是云服务器的话要在控制台开放对应的端口,dockerfile也要做好容器内部和对外的端口映射。
进入容器:
  1. docker exec -it open-webui-dev-frontend-1 sh
复制代码
在容器内检查服务
  1. netstat -tuln | grep 3000(容器内的端口号)
复制代码
在容器外测试服务
  1. curl http://<服务器IP>:8698
复制代码

  • 停止容器
    1. docker compose -f compose-dev.yaml down
    复制代码
docker部署one api

这里one-api是接口管理和分发体系,作用是
  1. git clone https://github.com/songquanpeng/one-api.git
复制代码
构建容器
  1. # 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
  2. docker compose up -d
  3. # 查看部署状态
  4. docker-compose ps
复制代码
5.访问

地点栏输入链接,管理员登录:
  1. 用户名:root
  2. 初始密码:123456
复制代码
Langfuse 部署

在服务器上拉下来langfuse的代码,部署后,参考openwebui文档中->集成->https://docs.openwebui.com/tutorials/integrations/langfuse,可以使用管道,起首在docker中启动pipelines
  1. docker run -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main
复制代码
在openwebui中的在管理设置中,创建并生存一个类型为 OpenAI API 的新毗连,其具体信息如下:


  • URL: http://host.docker.internal:9099(这是之前启动的Docker容器运行的地方)。
  • 暗码: 0p3n-w3bu!(尺度暗码)
  • https://langfuse.com/images/docs/openwebui-integration.gif
后续步骤可以具体看openwebui的文档

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表