参考链接
第一步 安装 Go 环境
参考链接:go.dev/doc/install
1)下载安装包
bash
# 1.24.5 版本
wget https://dl.google.com/go/go1.24.5.linux-amd64.tar.gz
2)删除旧的 go 运行环境,并解压缩到 /usr/local
bash
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz

3)添加到环境变量
bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
# 用于加载环境变量
source ~/.profile
4)验证是否安装成功
go
go version

第二步 安装 docker
参考安装即可:blog.csdn.net/a2497_28226...
第三步 安装 coze Loop
参考链接:github.com/coze-dev/co...
1)拉取代码
bash
git clone https://github.com/coze-dev/cozeloop.git
# 如果服务器访问不了,可以试试 https://gh-proxy.com/, 进去转换链接

3)切换到配置目录
bash
# 切换到配置目录
cd cozeloop/
4)配置模型
arduino
vim conf/default/app/runtime/model_config.yaml
以下为 model_config.yaml 内容,仅供参考,其中的 api_key 需要改成自己的
注:qwen 的模型我配置了 function call,其他的配置参考官方配置即可
配置了四个模型:
- doubao-seed-1-6-250615
- qwen3-235b-a22b-instruct-2507
- qwen3-235b-a22b-thinking-2507
- DeepSeek-R1-0528
less
models:
- id: 1
name: "doubao"
frame: "eino"
protocol: "ark"
protocol_config:
api_key: "727exxxxxx" # 火山方舟 API Key,获取方式可参考 https://www.volcengine.com/docs/82379/1541594
model: "doubao-seed-1-6-250615" # 火山方舟模型接入点的 Endpoint ID,获取方式可参考 https://www.volcengine.com/docs/82379/1099522
param_config:
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 "Top p" 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "核采样概率"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"
- id: 2
name: "qwen3-235b-a22b-instruct-2507"
frame: "eino"
protocol: "qwen"
protocol_config:
base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "***" # qwen API Key
model: "qwen3-235b-a22b-instruct-2507"
ability:
function_call: true
param_config:
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 "Top p" 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "核采样概率"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"
- id: 3
name: "qwen3-235b-a22b-thinking-2507"
frame: "eino"
protocol: "qwen"
protocol_config:
base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "***" # qwen API Key
model: "qwen3-235b-a22b-thinking-2507"
ability:
function_call: true
param_config:
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 "Top p" 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "核采样概率"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"
- id: 4
name: "DeepSeek-R1-0528"
frame: "eino"
protocol: "deepseek"
protocol_config:
base_url: "https://api.deepseek.com"
api_key: "deepseek API Key" # deepseek API Key
model: "deepseek-reasoner"
ability:
function_call: true
param_config:
param_schemas:
- name: "temperature"
label: "生成随机性"
desc: "调高温度会使得模型的输出更多样性和创新性,反之,降低温度会使输出内容更加遵循指令要求但减少多样性。建议不要与 "Top p" 同时调整。"
type: "float"
min: "0"
max: "1.0"
default_val: "0.7"
- name: "max_tokens"
label: "最大回复长度"
desc: "控制模型输出的 Tokens 长度上限。通常 100 Tokens 约等于 150 个中文汉字。"
type: "int"
min: "1"
max: "4096"
default_val: "2048"
- name: "top_p"
label: "核采样概率"
desc: "生成时选取累计概率达 top_p 的最小 token 集合,集合外 token 被排除,平衡多样性与合理性。"
type: "float" #
min: "0.001"
max: "1.0"
default_val: "0.7"
5)启动服务
bash
# 以后台的方式启动服务,默认为开发模式
docker compose up --build -d

6)查看日志,确保服务正常启动
docker compose logs
显示这个就代表启动成功

7)开放端口 8082
我的服务器是 腾讯云的,所以我要去安全组开放 8082 端口
csharp
# 查看防火墙状态
sudo firewall-cmd --state
# 开放 8082 端口(临时+永久)
sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent
# 重新加载防火墙配置
sudo firewall-cmd --reload
最后:使用
访问 http://ip:8082 就可以正常使用了
注:初次使用,直接输入账号密码注册就可以了

使用例子:
我发现 qwen3-235b-a22b-thinking-2507 的思考内容不能正常显示, 而 deepseek r1 以及 doubao-seed-1-6-250615 思考内容都能正常显示, 不知道是不是最近出的模型没有适配

启动、停止命令
bash
# 切换到配置目录(我放在 /root/cozeloop 目录下)
cd /root/cozeloop
# 启动
docker compose up -d
# 停止
docker compose stop
Q&A
Get "registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
解决
1)备份原来的配置
bash
cp /etc/docker/daemon.json{,.bak}
2)删除原先的配置
bash
rm -rf /etc/docker/daemon.json
3)写入镜像源信息
bash
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":[
"https://docker-0.unsee.tech",
"https://hub.rat.dev",
"https://hub.fast360.xyz",
"https://docker.1panel.live"
]
}
EOF
4)重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker