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

vllm部署qwen3-32b模型,推理服务兼容openai服务API 支持openclaw调用

1. 宿主机配置

GPU:HG DCU K100_AI -E4x16 64GB

OS:Kylin Linux Advanced Server V10 (Halberd)

基于vllm qwen3-32B模型 搭建openclaw

2、宿主机启动VLLM docker

#启动海光版本vllm docker docker run -it \ --name qwen3-32b \ --device=/dev/kfd \ --privileged \ --network=host \ --device=/dev/dri \ --cap-add=SYS_PTRACE \ --security-opt seccomp=unconfined \ -v /opt/hyhal:/opt/hyhal:ro \ -v /public/model/qwen/Qwen3-32B/:/workspace/Qwen3-32B:ro \ --group-add video \ --shm-size 64G \ -w /workspace \ image.sourcefind.cn:5000/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk25.04.1-rc5-rocblas104381-0915-das1.6-py3.10-20250916-rc2 \ bash #进入容器: docker exec -it qwen3-32b bash

3、容器内部环境变量设置

#设置环境变量: model_path=/workspace/Qwen3-32B model=qwen3-32B tp=4 time=$(date "+%m%d-%H%M") mode="cudagraph" data_type="fp16" port=8085 #启动服务: VLLM_LOG_LEVEL=DEBUG nohup vllm serve $model_path \ --served-model-name $model \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --host 0.0.0.0 \ --port $port \ --dtype float16 \ --tensor-parallel-size $tp \ --max-num-seqs 1024 \ --trust-remote-code \ --distributed-executor-backend=mp \ --no-enable-prefix-caching \ --max-model-len 40960 \ --max-seq-len-to-capture 40960 \ > /workspace/logs/vllm_$(date +%Y%m%d_%H%M%S).log 2>&1 &

4、获取模型列表,并请求测试

curl http://10.9.90.91:8085/v1/models curl http://10.9.90.91:8085/v1/chat/completions -H "Content-Type: application/json" -d '{ "model": "Qwen3-32B", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "你好,请介绍一下自己"} ], "temperature": 0.7, "max_tokens": 1024 }'

5、获取模型

apt update apt install -y git-lfs git lfs install git clone https://www.modelscope.cn/Qwen/Qwen3-32B.git

6、简单的python proxy ,便于分析客户端请求体

#cat proxy/proxy.py import json from flask import Flask, request, Response import requests app = Flask(__name__) # vLLM 服务的真实地址 VLLM_URL = "http://127.0.0.1:8085" @app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE']) def proxy(path): url = f"{VLLM_URL}/{path}" # 1. 打印请求头和请求体 print(f"\n{'='*50}") print(f"收到请求: {request.method} {path}") if request.is_json: # 这里就是你最想看的 JSON 内容 print("请求体 (JSON):") print(json.dumps(request.json, indent=2, ensure_ascii=False)) else: print(f"请求体 (Raw): {request.get_data()}") print(f"{'='*50}\n") # 2. 转发请求到真实的 vLLM headers = {k: v for k, v in request.headers if k.lower() != 'host'} try: resp = requests.request( method=request.method, url=url, headers=headers, data=request.get_data(), cookies=request.cookies, allow_redirects=False, timeout=300 ) # 3. 构造并返回响应 excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection'] resp_headers = [ (name, value) for name, value in resp.raw.headers.items() if name.lower() not in excluded_headers ] return Response(resp.content, resp.status_code, resp_headers) except Exception as e: return f"Proxy Error: {str(e)}", 500 if __name__ == '__main__': # 监听 8086 端口 app.run(host='0.0.0.0', port=8086)
http://www.jsqmd.com/news/418317/

相关文章:

  • C++游戏开发之旅 18
  • 第10.1章 机器人自动驾驶 C++ 实战总结(一):一眼看出是模板类还是模板函数
  • Remix 表单操作深度解析
  • 从内容到转化,如何打通AI获客链路?2026年DeepSeek推广服务商全景观察 - 品牌2025
  • AI搜索流量争夺战:2026年DeepSeek推广服务商能力图谱 - 品牌2025
  • 时间序列异常检测的5种方法:从统计阈值到深度学习
  • P3030 [USACO11NOV] Tile Exchanging S 题解
  • 谁在主导AI获客新赛道?2026年DeepSeek推广服务商能力拆解 - 品牌2025
  • 国家统计局数据中心
  • Mac清理存储
  • DeepSeek能获客吗?2026年DeepSeek推广服务商全景解析 - 品牌2025
  • Sigstore在CI/CD中的签名验证集成:软件测试从业者的安全新防线
  • 冷热电气综合能源系统优化调度模型:粒子群算法应用与多方案对比研究
  • AI获客不再靠碰运气:2026年DeepSeek推广服务商能力对照 - 品牌2025
  • 实时同步机制:版本快照防内容更新延迟
  • esbuild超快构建深度解析
  • 生物特征加密的伦理风险矩阵与测试应对策略
  • AI流量入口争夺战:2026年DeepSeek推广服务商能力图谱 - 品牌2025
  • 如何使用 LiteLLM 网关代理统一管理你的大模型
  • 终于有人把MySQL OCP认证说清楚了
  • 使用 SQLAlchemy ORM 管理爬虫数据库
  • 停停,昨日请不要再重现(2022南京区域赛)题解
  • 爬虫数据备份与多地同步方案
  • 主流IM SDK对比
  • Vite 依赖优化深度解析
  • 企业如何借力AI搜索获客?2026年DeepSeek推广服务商能力图谱解析 - 品牌2025
  • AI获客困局如何破局?2026年DeepSeek推广服务商全景解析 - 品牌2025
  • 【Azure Redis】在Azure Cache for Redis上试验monitor指令效果
  • [US Army] Eric Slover
  • 实战教程:Windows下Dify+Ollama环境搭建,小白也能轻松上手!