参考链接
第一步 安装 Go 环境
参考链接:go.dev/doc/install
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
参考安装即可:blog.csdn.net/a2497_28226…
第三步 安装 coze Loop
1)拉取代码
git clone https://github.com/coze-dev/cozeloop.git# 如果服务器访问不了,可以试试 https://gh-proxy.com/, 进去转换链接
3)切换到配置目录
# 切换到配置目录cd cozeloop/
4)配置模型
vim conf/default/app/runtime/model_config.yaml
以下为 model_config.yaml 内容,仅供参考,其中的 api_key 需要改成自己的
注:qwen 的模型我配置了 function call,其他的配置参考官方配置即可
配置了四个模型:
- doubao-seed-1-6-250615qwen3-235b-a22b-instruct-2507qwen3-235b-a22b-thinking-2507DeepSeek-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 "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-reloadsudo systemctl restart docker