ubuntu 部署 coze-loop

发布于:2025-07-28 ⋅ 阅读:(17) ⋅ 点赞:(0)

参考链接

https://github.com/coze-dev/cozeloop/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

https://github.com/coze-dev/cozeloop/wiki/5.-%E6%A8%A1%E5%9E%8B%E9%85%8D%E7%BD%AE

第一步 安装 Go 环境

参考链接:Download and install - The Go Programming Language

1)下载安装包

# 1.24.5 版本
wget https://dl.google.com/go/go1.24.5.linux-amd64.tar.gz

2)删除旧的 go 运行环境,并解压缩到 /usr/local

 rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz

3)添加到环境变量

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
# 用于加载环境变量
source ~/.profile

4)验证是否安装成功

go version

第二步 安装 docker

参考安装即可:Ubuntu 安装 docker-CSDN博客

第三步 安装 coze Loop

参考链接:https://github.com/coze-dev/cozeloop/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

1)拉取代码

git clone https://github.com/coze-dev/coze-loop.git
# 如果服务器访问不了,可以试试 https://gh-proxy.com/, 进去转换链接

3)切换到配置目录

# 切换到配置目录
cd cozeloop/

4)配置模型

参考:https://github.com/coze-dev/cozeloop/wiki/5.-%E6%A8%A1%E5%9E%8B%E9%85%8D%E7%BD%AE

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
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)启动服务

# 以后台的方式启动服务,默认为开发模式
docker compose up --build -d

6)查看日志,确保服务正常启动

docker compose logs

显示这个就代表启动成功

7)开放端口 8082

我的服务器是 腾讯云的,所以我要去安全组开放 8082 端口

# 查看防火墙状态
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 思考内容都能正常显示, 不知道是不是最近出的模型没有适配

启动、停止命令

# 切换到配置目录(我放在 /root/cozeloop 目录下)
cd /root/cozeloop
# 启动
docker compose up -d
# 停止
docker compose stop

Q&A

Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

解决

1)备份原来的配置

cp /etc/docker/daemon.json{,.bak}

2)删除原先的配置

rm -rf /etc/docker/daemon.json

3)写入镜像源信息

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


网站公告

今日签到

点亮在社区的每一天
去签到