当前位置: 首页 > news >正文

ubuntu 部署 coze-loop

参考链接

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: 1name: "doubao"frame: "eino"protocol: "ark"protocol_config:api_key: "727exxxxxx"  # 火山方舟 API Key,获取方式可参考 https://www.volcengine.com/docs/82379/1541594model: "doubao-seed-1-6-250615"    # 火山方舟模型接入点的 Endpoint ID,获取方式可参考 https://www.volcengine.com/docs/82379/1099522param_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: 2name: "qwen3-235b-a22b-instruct-2507"frame: "eino"protocol: "qwen"protocol_config:base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"api_key: "***"  # qwen API Keymodel: "qwen3-235b-a22b-instruct-2507"ability:function_call: trueparam_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: 3name: "qwen3-235b-a22b-thinking-2507"frame: "eino"protocol: "qwen"protocol_config:base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"api_key: "***"  # qwen API Keymodel: "qwen3-235b-a22b-thinking-2507"  ability:function_call: trueparam_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: 4name: "DeepSeek-R1-0528"frame: "eino"protocol: "deepseek"protocol_config:base_url: "https://api.deepseek.com"api_key: "deepseek API Key"  # deepseek API Keymodel: "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

http://www.dtcms.com/a/301040.html

相关文章:

  • C语言函数递归详解
  • 运行时长和内存优化:混合精度训练(MPT)案例和梯度检查点(GCP)
  • LWGJL教程(6)——GL20源码
  • Python初学OpenCV:图像预处理进阶指南(二)
  • 使用frp实现免费内网穿透
  • 【2025CVPR-扩散模型方向】TKG-DM:免训练的色度关键内容生成扩散模型
  • 区块链:工作量证明与联邦学习
  • ArkTS 模块通信全解析:用事件总线实现页面消息联动
  • rapidocr v3.3.0发布了
  • [10月考试] D
  • 【lucene】MMapDirectory 在FSDirectory基础上干了啥?
  • 链表算法综合——重排链表
  • KNN 算法中的各种距离:从原理到应用
  • D3.js的力导向图使用入门笔记
  • AI行业热点抓取和排序系统实现案例
  • [Linux入门] Linux 远程访问及控制全解析:从入门到实战
  • Jmeter的元件使用介绍:(七)后置处理器详解
  • 10.迭代器模式
  • 设计模式(二)创建型:工厂方法模式详解
  • 设计模式(十一)结构型:外观模式详解
  • rename系统调用及示例
  • docker-desktop引擎启动失败报wsl --update
  • 推荐系统学习
  • QML视图组件:ListView、GridView、TableView、PathView
  • MyBatis Plus 乐观锁与悲观锁
  • 《C++ list 完全指南:list的模拟实现》
  • NodeJs接入腾讯云存储COS
  • MySQL 用户管理
  • 第六章 JavaScript 互操(3)JS调用.NET
  • Django5.1(131)—— 表单 API二(API参考)