coze-studio 模型部署教程Coze Studio 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架,从开发到部署,为你提供最便捷的 AI Agent 开发环境。
Coze Studio 的后端采用 Golang 开发,前端使用 React + TypeScript,整体基于微服务架构并遵循领域驱动设计(DDD)原则构建。为开发者提供一个高性能、高扩展性、易于二次开发的底层框架,助力开发者应对复杂的业务需求。
基础环境最低要求说明:
| 环境名称 | 版本信息 |
|---|---|
| Ubuntu | 22.04 |
| Cuda | 12.1.1 |
| Python | 3.10 |
| NVIDIA Corporation | RTX 4090 |
sudo apt update && sudo apt upgrade -y
sudo apt install -y git wget curl build-essential
更新过程中遇到下图的情况时,在命令行中输入“2”即可
# 创建一个名为 coze 的新虚拟环境,并指定 Python 版本为 3.10
conda create -n coze python=3.10
创建过程中遇到下图的情况时,在命令行中输入“y”即可
等待安装完成
# 进入虚拟环境
conda activate coze

# 从官方网站下载二进制文件(如果下载速度过慢可以开启学术代理加速)
wget https://go.dev/dl/go1.24.6.linux-amd64.tar.gz

# 解压并安装到路径 /usr/local
sudo tar -C /usr/local -xzf go1.24.6.linux-amd64.tar.gz
# 配置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
# 重新加载环境变量
source ~/.bashrc

注意 这里重新加载环境变量后会自动退出虚拟环境
# 验证安装
go version
安装成功
curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash -

sudo apt-get install -y nodejs

# 验证安装
node -v
安装成功
5.1 安装编译依赖
sudo apt update && sudo apt install -y \
build-essential \
clang \
cmake \
git \
libboost-all-dev \
libgoogle-glog-dev \
libssl-dev \
libopenblas-dev \
libprotobuf-dev \
libgflags-dev \
libgmock-dev \
libgtest-dev \
lld \
protobuf-compiler \
wget \
unzip \
zlib1g-dev \
libcurl4-openssl-dev \
pkg-config
5.2 克隆 Milvus 源码
git clone https://github.com/milvus-io/milvus.git

5.3 切换版本为v2.5.10
cd milvus
git checkout v2.5.10

5.4 Ubuntu 22.04 的官方 apt 源默认版本是 3.22 ,所以需要 手动升级 CMake 到 ≥3.26
# 下载 CMake 3.29.2
wget https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2-linux-x86_64.tar.gz
# 解压
tar -xzf cmake-3.29.2-linux-x86_64.tar.gz
# 移动到 /opt 目录
sudo mv cmake-3.29.2-linux-x86_64 /opt/cmake-3.29.2
# 创建软链接,替换系统 cmake
sudo ln -sf /opt/cmake-3.29.2/bin/cmake /usr/local/bin/cmake
验证版本
which cmake
cmake --version
应该显示 /usr/local/bin/cmake,版本 3.29.2
如果出现下图中的错误,说明 /usr/bin/cmake 里的旧版本优先级更高

解决:
sudo mv /usr/bin/cmake /usr/bin/cmake.bak
sudo ln -sf /opt/cmake-3.29.2/bin/cmake /usr/bin/cmake
这样系统就会完全用 3.29.2,不会再调用 3.22.1 了

5.5 手动安装 Rust 工具链
注意在国内或网络环境不佳时,Rust下载速度会很慢,可以通过镜像加速解决。
# 使用中科大镜像
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
运行安装脚本
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
遇到下图的情况时,直接按Enter选择1)标准安装
安装完成

配置环境变量
source "$HOME/.cargo/env"
验证安装
rustc --version
cargo --version
5.6 安装依赖(官方脚本)
cd milvus
./scripts/install_deps.sh
依赖构建成功
5.7 编译Milvus
make -j$(nproc) milvus

遇到上图中的报错时,是因为 Conan 在下载 libtool-2.4.7 源码包时无法访问 ftp.gnu.org
解决方法:手动下载并放到 Conan 缓存,这样 Conan 就能跳过下载步骤
cd /root/.conan/data/libtool/2.4.7/_/_/source
wget https://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.4.7.tar.gz
tar -xzf libtool-2.4.7.tar.gz --strip-components=1

重新编译 Milvus
cd /milvus
make -j$(nproc) milvus

出现上图直接退出编译的情况时的情况时,更换编译命令
make milvus

若更换命令后出现上图的报错时,解决:
# 使用国内 Go 代理
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=off
# 重新编译
make milvus
编译完成:

此时进入 Milvus 根目录,查看 bin 目录,应该能看到 milvus 可执行文件
ls -lh /milvus/bin/

启动Milvus
cd /milvus
./bin/milvus run standalone
若出现报错:./bin/milvus: error while loading shared libraries: libfolly_exception_tracer_base.so.0.58.0-dev: cannot open shared object file: No such file or directory
这是因为Milvus 可执行文件找不到它依赖的动态链接库(.so文件),并且不止缺失这一个库。
解决:
首先需要确认库文件被导入到哪个目录中
find /milvus -name "libfolly_exception_tracer_base.so*" -type f 2>/dev/null
我这里找到的是:/milvus/internal/core/output/lib/libfolly_exception_tracer_base.so.0.58.0-dev
/milvus/cmake_build/lib/libfolly_exception_tracer_base.so.0.58.0-dev
将找到的库文件位置设置为正确库路径,再重新启动milvus
# 设置库路径,包含所有可能的库目录
export LD_LIBRARY_PATH=/milvus/internal/core/output/lib:/milvus/cmake_build/lib:$LD_LIBRARY_PATH
# 运行 Milvus
cd /milvus
./bin/milvus run standalone
# (如果下载速度过慢可以开启学术代理加速)
git clone https://github.com/coze-dev/coze-studio.git

7.1 安装 MySQL 服务器
sudo apt install -y mysql-server
7.2 启动 MySQL 服务
# 启动MySQL
sudo service mysql start
# 检查MySQL状态
sudo service mysql status
# 停止 MySQL 服务
sudo service mysql stop
# 重启 MySQL 服务
sudo service mysql restart
启动 MySQL 时若出现图片中最后一行的内容可以运行以下命令
sudo usermod -d /var/lib/mysql mysql

7.3 安全 MySQL 安装
sudo mysql_secure_installation





7.4 创建数据库和用户
sudo mysql -u root -p
这里直接按回车即可进入数据库,因为目前是以 root 身份运行,MySQL 当前 root 密码为空
在 MySQL 提示符中输入:
CREATE DATABASE opencoze CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'coze'@'localhost' IDENTIFIED BY 'coze123';
GRANT ALL PRIVILEGES ON opencoze.* TO 'coze'@'localhost';
FLUSH PRIVILEGES;
EXIT;

导入初始化数据:
mysql -u coze -p opencoze < /coze-studio/docker/volumes/mysql/schema.sql
输入刚刚设置好的密码:coze123
检查是否导入成功:
# 登录 MySQL
mysql -u coze -p
输入密码后进入 MySQL 命令行。
# 切换到目标数据库
USE opencoze;
# 查看有哪些表
SHOW TABLES;
看到数据库中有表存在即导入成功

8.1 使用 apt 安装 Redis
sudo apt install -y redis-server
8.2 启动 Redis服务
# 启动MySQL
sudo service redis-server start
# 检查服务状态
sudo service redis-server status
# 或通过 Redis 客户端测试连接
redis-cli ping
如果 redis-cli ping 返回 PONG,则说明 Redis 服务已正常启动并可以接受连接。

8.3 配置Redis
在 /etc/redis/路径下找到 redis.conf文件,要确保:
port 6379
appendonly no


配置好后,重启Redis并验证
sudo service redis restart
redis-cli ping
9.1 创建Elasticsearch用户
sudo useradd -m -s /bin/bash elasticsearch
# 创建安装目录
sudo mkdir -p /opt/elasticsearch
9.2 下载并安装 Elasticsearch
# 下载 Elasticsearch 8.18.0
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.18.0-linux-x86_64.tar.gz
# 解压
tar -xzf elasticsearch-8.18.0-linux-x86_64.tar.gz
# 移动到安装目录
sudo mv elasticsearch-8.18.0/* /opt/elasticsearch/
# 将所有权正确设置给 elasticsearch 用户
sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch

9.3 配置Elasticsearch
# 1. 先备份默认配置文件(以防需要)
sudo cp /opt/elasticsearch/config/elasticsearch.yml /opt/elasticsearch/config/elasticsearch.yml.backup
# 2. 直接用coze-studio中的预配置文件替换默认配置
sudo cp /coze-studio/docker/volumes/elasticsearch/elasticsearch.yml /opt/elasticsearch/config/elasticsearch.yml
# 3. 确保elasticsearch用户有读取权限
sudo chown elasticsearch:elasticsearch /opt/elasticsearch/config/elasticsearch.yml
编辑配置文件elasticsearch.yml
# 将文件内容修改为
cluster:
name: "my-elasticsearch-cluster"
routing:
allocation:
disk:
watermark:
low: "99%"
high: "99%"
flood_stage: "99%"
discovery:
type: single-node
xpack:
security:
enabled: false
# 节点配置
node:
name: "node-1"
# 路径配置(添加这部分)
path:
data: /opt/elasticsearch/data
logs: /opt/elasticsearch/logs
# 网络配置(添加这部分)
network:
host: 0.0.0.0
# HTTP配置(添加这部分)
http:
port: 9200
创建所需目录
# 创建 data 和 logs 目录
sudo mkdir -p /opt/elasticsearch/{data,logs}
# 为 elasticsearch 用户设置适当的权限
sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch
# 确保 elasticsearch 用户能够向这些目录写入
sudo chmod -R 755 /opt/elasticsearch
9.4 安装smartcn 插件
# 复制插件文件
sudo cp /coze-studio/docker/volumes/elasticsearch/analysis-smartcn.zip /opt/elasticsearch/
sudo chown elasticsearch:elasticsearch /opt/elasticsearch/analysis-smartcn.zip
# 以 elasticsearch 用户身份安装插件
sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch-plugin install file:///opt/elasticsearch/analysis-smartcn.zip
插件安装成功

9.5 启动 Elasticsearch
# 以后台进程启动(非 root 用户)
sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch -d
启动成功
验证服务是否正常运行:
curl -X GET "http://localhost:9200/_cluster/health?pretty"
如果返回状态为 green,说明集群健康良好,analysis-smartcn 插件也已可用。

9.6 运行初始化脚本
# 复制脚本
sudo cp /coze-studio/docker/volumes/elasticsearch/setup_es.sh /opt/elasticsearch/
sudo chown elasticsearch:elasticsearch /opt/elasticsearch/setup_es.sh
# 设置执行权限
sudo chmod +x /opt/elasticsearch/setup_es.sh
修改脚本setup_es.sh
修改前
修改后

# 运行脚本
sudo -u elasticsearch /opt/elasticsearch/setup_es.sh --es-address http://localhost:9200 --index-dir /coze-studio/docker/volumes/elasticsearch/es_index_schema
若出现下图的情况,可能是因为文件系统的缓存问题

解决:
# 创建一个新的脚本副本
sudo cp /opt/elasticsearch/setup_es.sh /opt/elasticsearch/setup_es_new.sh
# 设置权限
sudo chmod +x /opt/elasticsearch/setup_es_new.sh
sudo chown elasticsearch:elasticsearch /opt/elasticsearch/setup_es_new.sh
# 运行新副本
sudo -u elasticsearch /opt/elasticsearch/setup_es_new.sh --es-address http://localhost:9200 --index-dir /coze-studio/docker/volumes/elasticsearch/es_index_schema
Elasticsearch 设置成功完成
10.1 安装 MinIO 服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo mv minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio

10.2 配置 MinIO 数据目录和图标资源
mkdir -p ~/coze-studio/data/minio
# 拷贝图标资源
cp -r /coze-studio/docker/volumes/minio/default_icon ~/coze-studio/data/minio/
cp -r /coze-studio/docker/volumes/minio/official_plugin_icon ~/coze-studio/data/minio/
10.3 启动 MinIO
# 启动服务并指定控制台端口为 9001
minio server ~/coze-studio/data/minio --console-address ":9001" &
默认数据端口是 9000,控制台端口是 9001。确保这两个端口未被防火墙或其他服务占用。

这里MinIO默认的账户和密码都是minioadmin
10.4 安装 MinIO 客户端(mc)
wget https://dl.min.io/client/mc/release/linux-amd64/mc
sudo mv mc /usr/local/bin/
sudo chmod +x /usr/local/bin/mc
10.5 初始化存储桶并上传图标资源
# 配置别名 localminio
mc alias set localminio http://localhost:9000 minioadmin minioadmin
# 创建存储桶
mc mb --ignore-existing localminio/opencoze
mc mb --ignore-existing localminio/milvus
# 拷贝图标文件到对应存储桶中
mc cp --recursive ~/coze-studio/data/minio/default_icon/ localminio/opencoze/default_icon/
mc cp --recursive ~/coze-studio/data/minio/official_plugin_icon/ localminio/opencoze/official_plugin_icon/

10.6 验证

http://127.0.0.1:9001 opencoze和 milvus桶,并且含有图标资源
11.1 下载并安装 etcd
wget https://github.com/etcd-io/etcd/releases/download/v3.5.15/etcd-v3.5.15-linux-amd64.tar.gz
tar -xzf etcd-v3.5.15-linux-amd64.tar.gz
sudo mv etcd-v3.5.15-linux-amd64/etcd* /usr/local/bin/

确认安装成功:
etcd --version
etcdctl version

11.2 配置 etcd
# 创建配置目录
sudo mkdir -p /etc/etcd
# 创建数据目录
mkdir -p ~/coze-studio/data/etcd
# 复制配置文件
sudo cp /coze-studio/docker/volumes/etcd/etcd.conf.yml /etc/etcd/

11.3 启动 etcd
etcd --config-file /etc/etcd/etcd.conf.yml --data-dir ~/coze-studio/data/etcd &
# 如果你想让 etcd 以后台运行并自动重启,可使用nohup
nohup etcd --config-file /etc/etcd/etcd.conf.yml --data-dir ~/coze-studio/data/etcd > ~/etcd.log 2>&1 &
11.4 验证etcd 是否健康
etcdctl endpoint health

12.1 NSQ 安装
# 安装 NSQ v1.2.1
wget https://github.com/nsqio/nsq/releases/download/v1.2.1/nsq-1.2.1.linux-amd64.go1.16.6.tar.gz
# 解压压缩包
tar -xzf nsq-1.2.1.linux-amd64.go1.16.6.tar.gz
# 移动可执行文件到系统路径
sudo mv nsq-1.2.1.linux-amd64.go1.16.6/bin/* /usr/local/bin/

12.2 启动 NSQ 组件(建议放后台运行)
# 启动 nsqlookupd(服务发现)
nohup nsqlookupd > nsqlookupd.log 2>&1 &
# 启动 nsqd(消息处理器,连接 nsqlookupd)
nohup nsqd --lookupd-tcp-address=127.0.0.1:4160 --broadcast-address=127.0.0.1 > nsqd.log 2>&1 &
# 启动 nsqadmin(Web 控制台)
nohup nsqadmin --lookupd-http-address=127.0.0.1:4161 > nsqadmin.log 2>&1 &
这样即使终端关闭,服务也会继续运行,并且日志会保存到对应 .log 文件里

12.3 验证:
curl http://localhost:4161/ping
如果返回“OK”说明启动成功

13.1 安装依赖项
cd /coze-studio/backend
go mod tidy

安装过程中若遇到上图中的情况时,说明 Go 在尝试连接官方模块代理 proxy.golang.org 时超时,这在国内网络环境下很常见。
解决:
# 1. 设置七牛云的国内镜像
go env -w GOPROXY=https://goproxy.cn,direct
# 2. 清理可能损坏的缓存
go clean -modcache
# 3. 重新拉取依赖
go mod tidy
13.2 配置后端
# 复制环境文件
cp /coze-studio/docker/.env.example .env
编辑 .env

修改后:

修改后:


修改后:
13.3 配置模型
# 复制模型文件(doubao-seed-1.6)
cp /coze-studio/backend/conf/model/template/model_template_ark_doubao-seed-1.6.yaml /coze-studio/backend/conf/model/ark_doubao-seed-1.6.yaml
打开需要使用的大模型的配置文件,修改文件中的 meta.conn_config.api_key、meta.conn_config.model 字段(需要自己进入模型的官网中注册账号申请),保存文件

https://www.volcengine.com/docs/82379/1541594
https://www.volcengine.com/docs/82379/1099522
13.4 构建与运行
Coze Server 启动时,会去读取路径 /coze-studio/backend/resources/conf/model。但这个目录不存在。只有 /coze-studio/backend/conf/model路径
解决:创建 resources文件夹,把 conf 目录拷贝到 resources 下面
cd /coze-studio/backend
mkdir -p resources
cp -r conf resources/
然后进行构建并运行
go build -o coze-server main.go
./coze-server
当运行成功后,下方会出现端口号
注意在运行后端时,请保证之前部署的服务全部已经启动成功!
14.1 安装前端构建依赖
# 先安装 pnpm
npm install -g pnpm@8.15.8
# 安装 rush
npm install -g @microsoft/rush@5.147.1
14.2 在 coze-studio 根目录下安装依赖
cd /coze-studio
rush install
rush update
14.3 构建前端
cd frontend/apps/coze-studio
rushx build
构建产物通常会出现在 /coze-studio/frontend/apps/coze-studio/dist/目录下
14.4 将构建结果拷贝到后端资源目录
在 /coze-studio/backend/resources/路径下创建 static文件夹,将 /coze-studio/frontend/apps/coze-studio/dist/目录下的构建结果拷贝到 /coze-studio/backend/resources/static/当中
mkdir -p /coze-studio/backend/resources/static
cp -r /coze-studio/frontend/apps/coze-studio/dist/* /coze-studio/backend/resources/static/
14.5 重启后端
cd /coze-studio/backend
./coze-server
然后浏览器访问后端地址,就能加载刚构建好的前端资源。
点击此处,立即体验coze-studio!
