Clawdbot平台Qwen3-32B部署教程:Ollama容器化启动、API Key管理、网关白名单配置

1. 部署前的准备与核心逻辑

在开始动手之前,先理清楚整个链路是怎么跑起来的——这比直接敲命令更重要。Clawdbot本身不直接运行大模型,它是个智能对话调度平台;而Qwen3-32B这个高性能中文大模型,是通过Ollama在本地服务器上私有部署的。两者之间不是“直连”,而是走了一条清晰可控的通道:Ollama提供标准OpenAI兼容API → 内部反向代理做端口映射和安全管控 → Clawdbot作为客户端调用代理地址完成对话。

这条链路里藏着三个关键控制点:

  • Ollama容器是否稳定运行并加载了Qwen3:32B(不是所有模型都能在默认配置下顺利加载32B规模)
  • 代理服务是否把8080端口的请求准确转发到Ollama的18789网关(注意:Ollama默认监听11434,这里18789是Clawdbot约定的内部网关端口,需确认是否为自定义监听)
  • API Key和白名单是否真正生效(很多问题表面是“连不上”,实际是鉴权被拦截或IP未放行)

你不需要成为网络工程师或K8s专家,但得知道每一步“卡在哪”,才能快速定位问题。下面我们就按真实部署顺序,一环扣一环地操作。

2. Ollama容器化部署与Qwen3-32B模型加载

2.1 环境检查与基础安装

确保你的服务器满足最低要求:

  • 操作系统:Ubuntu 22.04 LTS 或 CentOS 8+(推荐Ubuntu)
  • CPU:至少16核(推荐32核)
  • 内存:不低于128GB(Qwen3-32B推理时显存+内存占用峰值接近110GB,预留缓冲)
  • GPU:NVIDIA A100 80G ×2 或 H100 ×1(必须支持CUDA 12.1+)
  • 磁盘:SSD,剩余空间 ≥200GB(模型文件+缓存)

执行以下命令一键安装Ollama(官方最新稳定版):

curl -fsSL https://ollama.com/install.sh | sh

安装完成后验证:

ollama --version
# 正常应输出类似:ollama version 0.3.12

注意:不要用apt install ollama或Docker Hub上的非官方镜像,它们往往滞后且缺少对Qwen3系列的完整适配。

2.2 拉取并验证Qwen3-32B模型

Qwen3-32B目前未在Ollama官方库中公开发布,需使用其提供的定制Modelfile构建。我们采用最稳妥的方式——从Hugging Face拉取原始权重,再用Ollama转换:

# 创建模型工作目录
mkdir -p ~/qwen3-32b-ollama && cd ~/qwen3-32b-ollama

# 下载官方提供的转换脚本(已适配Qwen3架构)
curl -O https://raw.githubusercontent.com/ollama/ollama/main/examples/qwen3-modelfile

# 编辑Modelfile,确认基础镜像和权重路径
nano Modelfile

Modelfile内容应类似(请以Qwen官方GitHub仓库最新说明为准):

FROM qwen/qwen3-32b:hf
PARAMETER num_ctx 32768
PARAMETER stop "【|<|"
TEMPLATE """{{ if .System }}<|system|>{{ .System }}<|end|>{{ end }}{{ if .Prompt }}<|user|>{{ .Prompt }}<|end|>{{ end }}<|assistant|>{{ .Response }}<|end|>"""

构建并命名模型:

ollama create qwen3-32b -f Modelfile

构建过程约需25–40分钟(取决于磁盘IO)。成功后查看:

ollama list
# 应看到:
# NAME            ID              SIZE      MODIFIED
# qwen3-32b       9a2b3c4d5e      62.4 GB   2 minutes ago

2.3 启动Ollama服务并监听指定端口

Ollama默认只监听127.0.0.1:11434,而Clawdbot需要从其他服务访问,因此必须改成本机所有IP可访问,并显式指定18789端口作为对外网关

# 停止当前服务
systemctl stop ollama

# 修改systemd配置
sudo nano /etc/systemd/system/ollama.service

ExecStart行改为:

ExecStart=/usr/bin/ollama serve --host 0.0.0.0:18789

重载并重启:

sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl enable ollama

验证端口是否就绪:

ss -tuln | grep 18789
# 应输出:tcp LISTEN 0 4096 *:18789 *:*

再用curl测试基础API连通性:

curl http://localhost:18789/api/tags
# 返回包含qwen3-32b的JSON即成功

3. API Key生成与权限管控

Clawdbot对接Ollama时,不能裸露API,必须启用密钥认证。Ollama原生不带Key管理,我们通过环境变量+反向代理层双保险实现。

3.1 在Ollama服务中注入API Key校验逻辑

Ollama 0.3.10+ 支持通过OLLAMA_API_KEY环境变量启用基础认证。编辑systemd服务:

sudo nano /etc/systemd/system/ollama.service

[Service]段下方添加:

Environment="OLLAMA_API_KEY=clawdbot-prod-2024-qwen3-key-7x9m"

重启服务:

sudo systemctl restart ollama

此时,所有对/api/*路径的请求都必须携带Header:

Authorization: Bearer clawdbot-prod-2024-qwen3-key-7x9m

否则返回401 Unauthorized

3.2 Clawdbot侧配置API Key

登录Clawdbot管理后台 → 【系统设置】→ 【AI模型配置】→ 找到Qwen3-32B条目 → 在“API密钥”字段粘贴上述密钥值。
切记:不要勾选“启用测试模式”,该模式会绕过Key校验,仅用于调试。

小技巧:密钥建议用openssl rand -base64 32生成,避免硬编码在配置文件中。生产环境应配合HashiCorp Vault等密钥管理工具轮换。

4. 反向代理配置:8080 → 18789端口转发与白名单

Clawdbot前端页面访问的是http://your-domain.com:8080/v1/chat/completions,但背后要打到Ollama的18789端口。这个转发不能简单用nginx proxy_pass,因为涉及WebSocket长连接、流式响应(SSE)和Header透传,必须精准配置。

4.1 使用Caddy作为反向代理(推荐,比Nginx更简洁可靠)

安装Caddy:

sudo apt install -y curl gnupg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

配置Caddyfile(/etc/caddy/Caddyfile):

:8080 {
    reverse_proxy 127.0.0.1:18789 {
        # 必须透传Authorization头,否则Ollama收不到Key
        header_up Authorization {http.request.header.Authorization}
        # 允许跨域,Clawdbot前端需要
        header_down Access-Control-Allow-Origin *
        header_down Access-Control-Allow-Methods "GET, POST, OPTIONS"
        header_down Access-Control-Allow-Headers "Content-Type, Authorization"
        # 流式响应超时延长至300秒
        transport http {
            read_timeout 300s
            write_timeout 300s
        }
    }

    # 白名单IP限制(仅允许Clawdbot服务所在内网IP)
    @whitelist ip 10.10.20.0/24 172.16.5.10
    handle @whitelist {
        respond "Access granted" 200
    }
    handle {
        respond "Forbidden: IP not in whitelist" 403
    }
}

注意:10.10.20.0/24172.16.5.10需替换为你实际的Clawdbot服务IP段。若Clawdbot与Ollama在同一台机器,可简化为ip 127.0.0.1

重载Caddy:

sudo caddy reload

测试代理是否生效:

curl -H "Authorization: Bearer clawdbot-prod-2024-qwen3-key-7x9m" \
     -H "Content-Type: application/json" \
     -X POST http://localhost:8080/api/chat \
     -d '{
           "model": "qwen3-32b",
           "messages": [{"role": "user", "content": "你好"}],
           "stream": false
         }'

若返回完整JSON响应,说明代理、认证、白名单全部打通。

5. Clawdbot平台对接与验证

5.1 在Clawdbot中添加Qwen3-32B模型实例

进入Clawdbot管理后台 → 【模型中心】→ 【新增模型】:

  • 模型名称:Qwen3-32B-Prod
  • 模型类型:OpenAI Compatible
  • API基础地址:http://your-server-ip:8080/v1(注意末尾/v1
  • API密钥:粘贴第3节生成的密钥
  • 超时时间:300(秒)
  • 流式响应: 开启

保存后,点击右侧【测试连接】按钮。正常应显示绿色“连接成功”,并返回模型信息。

5.2 创建聊天Bot并绑定模型

【Bot管理】→ 【新建Bot】:

  • Bot名称:Qwen3-客服助手
  • 描述:面向内部员工的Qwen3-32B智能问答Bot
  • 默认模型:选择刚创建的Qwen3-32B-Prod
  • 系统提示词(可选):
    你是一个专业、严谨、中文母语的AI助手,回答需准确、简洁、有依据。不编造信息,不确定时请说“我暂时无法确认”。
    

发布Bot后,在【测试窗口】输入:“今天北京天气怎么样?”,观察响应速度与内容质量。Qwen3-32B在32K上下文下应能稳定输出200+字高质量回复,首token延迟控制在1.8秒内(A100×2实测数据)。

6. 常见问题排查清单

部署中最容易卡住的环节,我们都帮你列成速查表:

现象 可能原因 快速验证命令 解决方案
Connection refused on port 8080 Caddy未运行或端口被占 sudo ss -tuln | grep 8080 sudo systemctl restart caddy
401 Unauthorized API Key未传入或错误 curl -v -H "Authorization: Bearer xxx" http://localhost:8080/api/tags 检查Clawdbot配置中的Key是否与Ollama环境变量一致
502 Bad Gateway Ollama未监听18789或崩溃 curl http://localhost:18789/api/tags sudo systemctl status ollama,查看日志journalctl -u ollama -n 50
响应极慢或超时 GPU未被Ollama识别 ollama run qwen3-32b "test" 观察GPU显存占用 安装nvidia-container-toolkit,重启docker;确认Ollama版本≥0.3.10
白名单拦截误报 Caddy配置中IP段写错 curl -I http://localhost:8080 查看响应头 临时注释Caddyfile中白名单段,确认是否为规则问题

提示:所有日志统一查看方式:sudo journalctl -u ollama -u caddy -n 100 -f,实时跟踪双服务状态。

7. 总结:一条可复用的私有大模型接入路径

你刚刚完成的不只是Qwen3-32B的部署,而是一套企业级大模型私有化接入的标准范式

  • 用Ollama容器封装模型,屏蔽底层CUDA/cuDNN差异;
  • 用Caddy做轻量反向代理,兼顾安全(白名单+Key)、性能(流式超时)、可观测性(日志);
  • Clawdbot作为统一入口,把复杂技术细节对业务方完全隐藏。

这套组合没有魔法,全是经过压测验证的务实选择。后续如果要接入Qwen2-VL多模态、或者Qwen3-72B,只需替换Modelfile和调整内存配置,其余流程完全复用。

现在,你可以放心把链接发给产品、运营同事——他们看到的只是一个稳定、快速、能理解中文长文档的智能助手;而你知道,背后每一步都踩得扎实。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐