ToB企服应用市场:ToB评测及商务社交产业平台
标题:
openwebui开发部署教程
[打印本页]
作者:
不到断气不罢休
时间:
2025-1-11 05:13
标题:
openwebui开发部署教程
openwebui
https://docs.openwebui.com/getting-started/advanced-topics/development
开发指南-本机部署
前端启动
conda activate open-webui
cd open-webui
npm run dev
复制代码
后端启动
首先进入cd ~
cd backend
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启动
构建前端
cd one-api/web/default
npm install
npm run build
复制代码
# 构建后端
cd ../..
go mod download
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
# 如果没有就创建目录,有就跳过这一步
sudo mkdir -p /etc/docker
# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://doublezonline.cloud"
]
}
EOF
# 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码
2、本地拉取openwebui代码
自己创建docker compose文件或者直接从git 拉取,内里有docker compose
1. 拉取源代码
起首,你需要将源代码从 Git 仓库拉取到本地。如果你还没有源代码,可以通过以下命令进行拉取:
git clone https://github.com/open-webui/open-webui.git
cd open-webui
复制代码
这里遇到版本问题node
1. 更新 Node.js
使用 Node Version Manager (nvm) 管理 Node.js 版本
安装
nvm
: 如果体系没有安装 nvm,可以执行以下命令安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
复制代码
安装完成后,重启终端或运行:
source ~/.bashrc
复制代码
确认 nvm 安装成功:
nvm --version
复制代码
使用 nvm 安装所需的 Node.js 版本:
nvm install 18.17.0
复制代码
设置默认 Node.js 版本:
nvm use 18.17.0
nvm alias default 18.17.0
复制代码
确认 Node.js 和 npm 版本:
node -v
npm -v
复制代码
2. 升级 npm
如果安装了合适版本的 Node.js,npm 版本应该已经满足需求(>=6.0.0)。如果需要手动升级:
npm install -g npm@latest
复制代码
3. 重新安装项目依靠
在更新 Node.js 和 npm 版本后,清除旧的依靠并重新安装:
rm -rf node_modules package-lock.json
npm install
复制代码
2. 修改 docker-compose.yml
你可以在之前的 docker-compose.yml 文件基础上,进行一些调整以支持本地代码挂载和开发模式。具体来说,重要是添加 volumes 和修改服务的 command 以及端口配置。以下是修改后的示例:
这里要留意的是端口,例如前端3000:5173,容器向外映射的是3000,内部是5173端口。要包管容器内5173端口没有被占用,服务器对外开放的3000端口没有受规则和防火墙限制
举例:
name: open-webui-dev
services:
frontend:
build:
context: .
target: build
command: ["npm", "run", "dev"]
depends_on:
- backend
ports:
- "3000:5173"
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- ./src:/app/src
backend:
build:
context: .
target: base
command: ["bash", "dev.sh"]
env_file: ".env"
environment:
- ENV=dev
- WEBUI_AUTH=False
ports:
- "8080:8080"
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- ./backend:/app/backend
- data:/app/backend/data
volumes:
data: {}
复制代码
3. 启动开发环境
配置好 docker-compose.yml 文件后,可以启动 Docker 容器并进入开发模式:
构建镜像:
docker compose -f compose-dev.yaml up --watch
复制代码
启动镜像
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也要做好容器内部和对外的端口映射。
进入容器:
docker exec -it open-webui-dev-frontend-1 sh
复制代码
在容器内检查服务
netstat -tuln | grep 3000(容器内的端口号)
复制代码
在容器外测试服务
curl http://<服务器IP>:8698
复制代码
停止容器
:
docker compose -f compose-dev.yaml down
复制代码
docker部署one api
这里one-api是接口管理和分发体系,作用是
git clone https://github.com/songquanpeng/one-api.git
复制代码
构建容器
# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker compose up -d
# 查看部署状态
docker-compose ps
复制代码
5.访问
地点栏输入链接,管理员登录:
用户名:root
初始密码:123456
复制代码
Langfuse 部署
在服务器上拉下来langfuse的代码,部署后,参考openwebui文档中->集成->https://docs.openwebui.com/tutorials/integrations/langfuse,可以使用管道,起首在docker中启动pipelines
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4