这里是我分享技术文章的地方。
技术分享
Ghelper 使用流程指导
Ghelper 是一个浏览器插件,专门为科研、外贸、跨境电商、海淘人员、开发人员服务的上网加速工具,Chrome 内核浏览器专用!
它可以解决 Chrome 扩展无法自动更新的问题,同时可以访问 Google 搜索、Gmail 邮箱等谷歌产品。它可以帮助用户提高跨境访问网站的速度,突破地区限制,提高工作和学习的效率。
如何安装
支持 Chrome / Edge / 360 等 Chromium 内核浏览器。
方法一:手动安装(推荐)
- 下载插件:访问 Ghelper 官网,下载 CRX package。下载后是一个 zip 文件,请解压缩取得
.crx文件。
- 打开扩展程序管理页面:

- 打开浏览器,点击地址栏最右边的三个点(菜单),选择 “更多工具” -> “扩展程序”。
- 或者直接在地址栏输入
chrome://extensions/并回车。
- 开启开发者模式:确保页面右上角的 Developer mode (开发者模式) 处于打开状态。
- 拖拽安装:将第一步解压得到的
.crx文件拖放到浏览器的扩展程序页面上,浏览器会提示是否添加扩展,点击“添加扩展程序”即可安装完成。
方法二:在线安装(Edge 浏览器)
如果是 Edge 浏览器,可以直接访问 Microsoft Edge Addons 商店:
点击页面右上角的 “获取” 按钮即可自动安装完成。
使用说明
- 安装完成后,点击浏览器右上角的插件图标。
- 点击 “登录” 按钮进行账号登录(如果没有账号请先注册)。
- 登录成功后,可以看到插件主界面,以及当前 VIP 的有效期。
(请将登录界面截图命名为 login_interface.png 并放在本文件同级目录下)
提示:请确保您的 VIP 状态有效以享受加速服务。
Kubernetes上部署vLLM
1. vLLM Docker镜像与Kubernetes部署价值
vLLM是一个专为大语言模型推理设计的高性能服务框架,其核心优势在于创新的PagedAttention技术,能够显著提升GPU内存利用率和推理吞吐量。通过Docker容器化封装,vLLM实现了环境标准化和依赖隔离,而Kubernetes部署则进一步带来了:
- 弹性伸缩:根据负载自动调整副本数量
- 资源隔离:GPU资源的精细化管理和隔离
- 高可用性:自动故障恢复和负载均衡
- 简化运维:统一的部署、监控和管理界面
vLLM官方Docker镜像提供了开箱即用的模型服务环境,结合Kubernetes的编排能力,为生产级AI服务提供了坚实基础。
2. Qwen3-235B-A22B-Instruct-2507模型部署实践
2.1 从ModelScope下载模型
Qwen3-235B-A22B-Instruct-2507作为千问系列的最新大模型,首先需要从ModelSpace获取模型权重:
# 使用modelscope库下载模型
from modelscope import snapshot_download
model_dir = snapshot_download(
'Qwen/Qwen3-235B-A22B-Instruct-2507',
cache_dir='/workspace/models',
revision='v1.0.0'
)
对于Kubernetes环境,推荐使用初始化容器进行模型下载,确保模型文件在Pod启动前准备就绪。
3. vLLM服务配置与Kubernetes部署
3.1 vLLM启动参数优化
针对Qwen3-235B大模型,vLLM需要特定配置以充分发挥性能:
vllm serve Qwen/Qwen3-235B-A22B-Instruct-2507 \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.85 \
--max-model-len 131072 \
--served-model-name qwen3-235b \
--port 9997 \
--host 0.0.0.0 \
--trust-remote-code \
--dtype auto \
--enable-prefix-caching \
--enable-chunked-prefill \
--api-key sk-xxxxxxxxx \
--tool-call-parser hermes \
--enable-auto-tool-choice \
--swap-space 16 \
--disable-log-requests
关键参数说明:
- tensor-parallel-size 8:8路张量并行,充分利用多GPU资源
- gpu-memory-utilization 0.85:适中的GPU内存利用率,预留缓冲空间
- max-model-len 131072:支持128K上下文长度
- enable-prefix-caching:启用前缀缓存,提升推理效率
- enable-chunked-prefill:分块预填充,优化长文本处理
- swap-space 16:16GB交换空间,处理内存溢出
3.2 Kubernetes Deployment配置
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: vllm-qwen3-235b
nvidia.com/app: vllm-qwen3-235b
nvidia.com/framework: python
nvidia.com/unit: application
name: vllm-qwen3-235b
namespace: ai-serving
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: vllm-qwen3-235b
serviceName: vllm-qwen3-235b
template:
metadata:
annotations:
nvidia.com/use-gputype: A100,A800,H100,H800
nvidia.com/globalid: AIP_MDIS_QWEN3_235B
nvidia.com/gpu: "8"
nvidia.com/gpumem: "638976" # 8 * 79872
nvidia.com/model-uid: Qwen3-235B-A22B-Instruct-2507
labels:
app: vllm-qwen3-235b
type: llm
model-size: 235b
nvidia.com/app: vllm-qwen3-235b
nvidia.com/framework: python
nvidia.com/unit: application
nvidia.com/4pd-scheduler: "true"
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: accelerator
operator: In
values: ["nvidia-a100-80gb", "nvidia-a800-80gb", "nvidia-h100-80gb"]
- key: topology.kubernetes.io/zone
operator: In
values: ["zone-gpu-high"]
initContainers:
- name: download-model
image: download-model:latest
imagePullPolicy: IfNotPresent
command: ["sh", "-c"]
args:
- |
echo "开始下载Qwen3-235B模型..."
model_download /opt/app/models/ || {
echo "模型下载失败,尝试从备用源下载..."
exit 1
}
echo "模型下载完成,验证模型文件..."
ls -la /opt/app/models/
if [ ! -f "/opt/app/models/config.json" ]; then
echo "模型文件验证失败"
exit 1
fi
echo "模型文件验证成功"
env:
- name: S3_URL
valueFrom:
secretKeyRef:
key: S3_URL
name: vllm-qwen3-235b
- name: S3_AK
valueFrom:
secretKeyRef:
key: S3_AK
name: vllm-qwen3-235b
- name: S3_SK
valueFrom:
secretKeyRef:
key: S3_SK
name: vllm-qwen3-235b
- name: S3_BUCKET
valueFrom:
secretKeyRef:
key: S3_BUCKET
name: vllm-qwen3-235b
- name: USERNAME
value: "ai-platform"
- name: MODEL_NAME
value: "qwen3-235b"
- name: VERSION
value: "Qwen3-235B-A22B-Instruct-2507"
resources:
requests:
cpu: "2"
memory: "4Gi"
limits:
cpu: "4"
memory: "8Gi"
volumeMounts:
- mountPath: /opt/app/models
name: share-volume
containers:
- name: vllm-qwen3-235b
image: vllm/vllm-openai:v0.12.0
imagePullPolicy: IfNotPresent
command: ["/bin/bash"]
args:
- -c
- |
set -e
# 环境变量设置
export NCCL_SHM_DISABLE=1
export VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
export NCCL_IB_DISABLE=0
export NCCL_NET_GDR_LEVEL=2
# 创建日志目录
mkdir -p /log/logs
# 等待模型文件就绪
while [ ! -f "/opt/app/models/config.json" ]; do
echo "等待模型文件就绪..."
sleep 10
done
echo "启动vLLM服务..."
exec python3 -m vllm.entrypoints.openai.api_server \
--model=/opt/app/models \
--served-model-name=Qwen3-235B-A22B-Instruct-2507 \
--port=9997 \
--host=0.0.0.0 \
--trust-remote-code \
--dtype=auto \
--enable-prefix-caching \
--enable-chunked-prefill \
--tensor-parallel-size=8 \
--gpu-memory-utilization=0.85 \
--api-key=${API_KEY} \
--max-model-len=131072 \
--tool-call-parser=hermes \
--enable-auto-tool-choice \
--swap-space=16 \
--disable-log-requests \
--max-num-seqs=128 \
--max-paddings=256 \
> /log/logs/vllm-qwen3-235b.log 2>&1
env:
- name: ACTIVE_OOM_KILLER
value: "0"
- name: LIBCUDA_LOG_LEVEL
value: "0"
- name: GPU_CORE_UTILIZATION_POLICY
value: "disable"
- name: VLLM_WORKER_MULTIPROC_METHOD
value: "spawn"
- name: VLLM_LOGGING_LEVEL
value: "INFO"
- name: MODEL_UID
value: "Qwen3-235B-A22B-Instruct-2507"
- name: MODEL_TYPE
value: "chat"
- name: API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: vllm-qwen3-235b
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
lifecycle:
preStop:
exec:
command:
- /bin/bash
- -c
- |
echo "正在优雅关闭vLLM服务..."
kill -TERM $(pgrep -f "vllm.entrypoints.openai.api_server") || true
sleep 30
ports:
- containerPort: 9997
name: api-port
protocol: TCP
livenessProbe:
httpGet:
path: /health
port: 9997
scheme: HTTP
failureThreshold: 3
initialDelaySeconds: 600
periodSeconds: 60
successThreshold: 1
timeoutSeconds: 30
readinessProbe:
httpGet:
path: /health
port: 9997
scheme: HTTP
failureThreshold: 3
initialDelaySeconds: 300
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 10
startupProbe:
httpGet:
path: /health
port: 9997
scheme: HTTP
failureThreshold: 30
initialDelaySeconds: 120
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 10
resources:
requests:
cpu: "16"
memory: "64Gi"
nvidia.com/gpu: "8"
nvidia.com/gpumem: "638976"
limits:
cpu: "64"
memory: "256Gi"
nvidia.com/gpu: "8"
nvidia.com/gpumem: "638976"
volumeMounts:
- mountPath: /opt/app/models
name: share-volume
readOnly: true
- mountPath: /dev/shm
name: cache-volume
- mountPath: /etc/localtime
name: timezone-volume
readOnly: true
- mountPath: /log
name: log-volume
- mountPath: /tmp
name: temp-volume
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: false
fsGroup: 0
terminationGracePeriodSeconds: 180
tolerations:
- effect: NoSchedule
key: role
operator: Equal
value: bigdata
- effect: NoSchedule
key: gpurole
operator: Equal
value: gpu
- effect: NoSchedule
key: model-size
operator: Equal
value: large
volumes:
- name: share-volume
persistentVolumeClaim:
claimName: vllm-qwen3-235b-model-pvc
- name: cache-volume
emptyDir:
medium: Memory
sizeLimit: 256Gi
- name: log-volume
hostPath:
path: /data/logs/vllm-qwen3-235b
type: DirectoryOrCreate
- name: temp-volume
emptyDir:
sizeLimit: 32Gi
- name: timezone-volume
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
type: FileOrCreate
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 0
volumeClaimTemplates: []
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vllm-qwen3-235b-model-pvc
namespace: ai-serving
labels:
app: vllm-qwen3-235b
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Ti
storageClassName: nfs-client
---
apiVersion: v1
kind: Service
metadata:
name: vllm-qwen3-235b
namespace: ai-serving
labels:
app: vllm-qwen3-235b
spec:
type: ClusterIP
ports:
- port: 9997
targetPort: 9997
protocol: TCP
name: api-port
selector:
app: vllm-qwen3-235b
---
apiVersion: v1
kind: Secret
metadata:
name: vllm-qwen3-235b
namespace: ai-serving
type: Opaque
data:
api-key: c2stdmxsbS1xd2VuMy0yMzViLWFwaS1rZXk= # base64编码的API key
S3_URL: <base64-encoded-s3-url>
S3_AK: <base64-encoded-access-key>
S3_SK: <base64-encoded-secret-key>
S3_BUCKET: <base64-encoded-bucket-name>
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vllm-qwen3-235b-model-pvc
namespace: ai-serving
labels:
app: vllm-qwen3-235b
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Ti
storageClassName: nfs-client
3.3 存储与模型管理
通过PVC申请共享存储,确保模型文件持久化并可在多个Pod间共享。initContainer负责从S3对象存储下载模型到持久化存储,避免每次Pod重启重复下载。
4. Hami on K8S架构的GPU资源动态分配

4.1 HAMi简介与优势
HAMi(Heterogeneous AI Computing Virtualization Middleware) 是一个专为异构AI计算设备设计的虚拟化中间件,为Kubernetes集群提供强大的GPU资源管理能力。
核心优势
- 🔄 设备虚拟化:为多种异构设备提供虚拟化功能,支持设备共享和资源隔离
- 🚀 智能调度:基于设备拓扑和调度策略实现Pod间的设备共享和优化调度
- 🎯 统一管理:消除不同异构设备间的差异,提供统一管理接口
- 💡 零修改部署:无需对现有应用程序进行任何修改

4.2 支持的异构设备
HAMi 2.7.1版本支持的设备类型如下:
| 设备厂商 | 设备类型 | 支持状态 | 备注 |
|---|---|---|---|
| NVIDIA | GPU | ✅ 完整支持 | 需要驱动 >= 440 |
| 寒武纪 | MLU | ✅ 完整支持 | - |
| 海光 | DCU | ✅ 完整支持 | - |
| 天数智芯 | GPU | ✅ 完整支持 | - |
| 摩尔线程 | GPU | ✅ 完整支持 | - |
| 昇腾 | NPU | ✅ 完整支持 | - |
| 沐曦 | GPU | ✅ 完整支持 | - |
📈 支持设备持续更新中,最新支持列表请查看 官方文档
4.3 HAMi安装部署
4.3.1 前置条件检查
在安装HAMi之前,请确保满足以下系统要求:
| 组件类别 | 组件名称 | 版本要求 | 详细说明 |
|---|---|---|---|
| GPU驱动 | NVIDIA驱动 | ≥ 440.x | • GPU计算节点必需安装 • 建议使用最新稳定版本 • 支持CUDA 11.0+ |
| 容器运行时 | nvidia-docker | ≥ 2.0 | • GPU容器化支持组件 • 必须配置为默认运行时 • 与Docker Engine配合使用 |
| 容器编排 | Kubernetes | ≥ 1.18 | • 集群管理平台 • 建议1.20+版本以获得更好的GPU调度支持 • 需启用GPU设备插件 |
| 容器引擎 | 容器运行时 | 兼容版本 | • 支持:containerd/docker/cri-o • 必须配置nvidia为默认运行时 • 确保与K8s版本兼容 |
| 系统库 | glibc | ≥ 2.17 且 < 2.30 | • GNU C标准库 • 版本范围严格限制 • 影响CUDA库兼容性 |
| 操作系统 | Linux内核 | ≥ 3.10 | • 最低内核版本要求 • 建议使用4.x+内核 • 确保驱动兼容性 |
| 包管理 | Helm | ≥ 3.0 | • Kubernetes包管理工具 • 用于部署GPU Operator • 建议使用最新稳定版 |
⚠️ 重要:确保容器运行时的默认运行时配置为nvidia
4.3.2 安装步骤
Step 1: 标记GPU节点
为需要GPU调度的节点添加标签:
kubectl label nodes {nodeid} gpu=on
💡 提示:只有带有
gpu=on标签的节点才能被HAMi调度器管理
Step 2: 添加Helm仓库
helm repo add hami-charts https://project-hami.github.io/HAMi/
helm repo update
Step 3: 部署HAMi
helm install hami hami-charts/hami -n kube-system
Step 4: 验证安装
kubectl get pods -n kube-system | grep vgpu
期望输出:
vgpu-device-plugin-xxx 1/1 Running 0 2m
vgpu-scheduler-xxx 1/1 Running 0 2m
✅ 如果
vgpu-device-plugin和vgpu-schedulerPod都处于Running状态,则安装成功
4.4 自定义配置
HAMi支持通过修改 values.yaml 文件进行个性化配置。
4.4.1 资源名称自定义
# NVIDIA GPU 参数配置
resourceName: "nvidia.com/gpu" # GPU设备资源名
resourceMem: "nvidia.com/gpumem" # GPU内存资源名
resourceMemPercentage: "nvidia.com/gpumem-percentage" # GPU内存百分比
resourceCores: "nvidia.com/gpucores" # GPU核心数
resourcePriority: "nvidia.com/priority" # GPU优先级
4.4.2 企业级自定义示例
# 自定义为公司标识
resourceName: "company.com/gpu"
resourceMem: "company.com/gpumem"
resourceMemPercentage: "company.com/gpumem-percentage"
resourceCores: "company.com/gpucores"
📚 更多配置选项:详细配置参数请参考 官方配置文档
4.5 使用注意事项
在使用HAMi过程中,请注意以下重要事项:
| ⚠️ 重要提醒 |
|---|
| 设备暴露风险:如果使用NVIDIA镜像的设备插件时不请求虚拟GPU,机器上的所有GPU可能会在容器内暴露 |
| A100 MIG限制:目前A100 MIG仅支持 “none” 和 “mixed” 模式 |
| 调度约束:带有 “nodeName” 字段的任务目前无法调度,请使用 “nodeSelector” 代替 |
| 版本一致性:确保Kubernetes scheduler版本与hami-scheduler版本一致 |
4.6 最佳实践建议
📋 部署前检查
- 验证所有前置条件
- 确认GPU节点标签正确
- 检查版本兼容性
🔧 配置优化
- 根据企业需求自定义资源名称
- 合理配置资源限制
- 监控资源使用情况
🛡️ 安全考虑
- 避免不必要的GPU设备暴露
- 合理设置资源配额
- 定期更新组件版本
5. 服务访问与可扩展性演示
5.1 服务暴露与访问
通过Service和Ingress暴露vLLM服务:
apiVersion: v1
kind: Service
metadata:
name: vllm-service
namespace: ai-serving
spec:
selector:
app: vllm-qwen3-235b
ports:
- port: 9997
targetPort: 9997
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: vllm-ingress
namespace: ai-serving
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: vllm.ai-serving.company.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: vllm-service
port:
number: 9997
5.2 API调用示例
cURL 请求示例 非流式响应示例:
curl -X POST "http://vllm.ai-serving.company.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token-abc123" \
-d '{
"model": "qwen3-235b",
"messages": [
{
"role": "user",
"content": "解释机器学习的基本概念"
}
],
"max_tokens": 1000,
"temperature": 0.7,
"stream": false,
"enable_reasoning": true
}'
流式响应示例:
curl -X POST "http://vllm.ai-serving.company.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token-abc123" \
-d '{
"model": "qwen3-235b",
"messages": [
{
"role": "user",
"content": "解释机器学习的基本概念"
}
],
"max_tokens": 1000,
"temperature": 0.7,
"stream": true,
"enable_reasoning": false
}' \
--no-buffer
5.3 可扩展性演示
水平扩缩容演示:
# 手动扩展副本数应对流量高峰
kubectl scale sts vllm-qwen3-235b --replicas=2 -n ai-serving
监控与指标:
- GPU利用率监控自动触发扩容
- 请求延迟超过阈值时增加副本
- 基于Prometheus指标的自定义扩缩容策略
总结
Kubernetes上部署vLLM为大规模语言模型服务提供了生产级的解决方案。通过容器化封装、资源动态调度、存储持久化和自动扩缩容等特性,实现了高效、可靠且可扩展的AI模型服务架构。Qwen3-235B等大模型在该架构下能够充分发挥性能优势,为企业级AI应用提供强有力的支撑。
这种架构不仅适用于当前的大模型服务,也为未来更大规模的模型和服务需求提供了可扩展的基础设施保障,是构建现代化AI服务平台的最佳实践。
实用工具
AI 赋能:如何用 Claude 瞬间生成专业级系统架构图
在数字化转型加速的今天,系统设计与架构能力已成为技术工作者的核心竞争力。一张清晰、美观的架构图,往往胜过千言万语,能让复杂的系统逻辑一目了然。
然而,传统的绘图方式往往让人望而却步:
- 门槛高:需要熟练掌握 Visio, OmniGraffle, ProcessOn 等专业工具。
- 耗时久:调整对齐、配色、连线占据了大量时间,修改成本极高。
- 风格乱:难以统一格式,从文本思维到图形表达存在巨大的转换鸿沟。
在多次尝试 WPS AI、豆包、通义千问等工具后,我发现生成的图表在专业度和美观度上仍有欠缺。直到我发现了 Claude (配合特定 Prompt) 的强大能力——它可以一键生成代码级的 SVG 或 HTML 架构图,只需简单截图,即可完美嵌入 PPT,极大地提升了技术交流的效率。
本文将分享这一高效方法,助你轻松搞定“高大上”的架构图。
🎨 效果预览
在深入方法之前,先来看看 AI 生成的实际效果。这些图表均由 Claude/Gemini 3 配合提示词直接生成 SVG/HTML 渲染而成。
1. 宣传汇报类
适用于产品介绍、方案推广,风格现代简洁。

2. 架构设计类
适用于技术评审、系统蓝图,层次分明,逻辑严密。

3. 业务流程类
适用于泳道图、状态流转,清晰直观。

🛠️ 准备工作
要实现上述效果,你需要准备好以下环境:
方案 A:在线直接生成 (推荐)
如果你能顺畅访问 Google 服务,直接使用 Google AI Studio 是最便捷的选择。
方案 B:客户端 + API
对于国内网络环境,推荐使用本地客户端配合 API 服务:
- 客户端:下载安装 Cherry Studio (支持多模型管理的优秀客户端)。
- API 服务:你需要一个支持 Claude 3.5 Sonnet 或 Gemini 1.5 Pro 的 API。
- 推荐渠道:DMX API (使用邀请码
bDx3可获赠额度) - 备选渠道:OpenRouter 等其他聚合服务商。
- 推荐渠道:DMX API (使用邀请码
🚀 实战演练:4步生成架构图
以 Cherry Studio + Claude 4 Sonnet 为例,生成一张架构图仅需四步:
- 准备文档:梳理好你的系统描述、功能列表或技术栈说明。
- 输入指令:将下方的“万能提示词”填入对话框。
- 获取代码:AI 会输出一段 SVG 或 HTML 代码。
- 渲染保存:Cherry Studio 会自动渲染预览,直接截图或保存即可。
核心提示词 (Prompt)
复制以下 Prompt,将 <此处替换为系统描述> 替换为你实际的业务内容:
*****
<此处替换为系统描述>
*****
为以上内容设计一张软件系统的功能架构图,并输出 SVG 源码。
**设计要求:**
1. **视觉风格**:采用专业的系统架构图样式。
* 布局:逻辑分层,上层靠近用户/业务,下层靠近底层/数据。
* 配色:参考现代科技风格(如蓝、白、灰主色调),配色和谐专业。
2. **内容准则**:
* 内容严格以 ***** 之间的描述为准。
* 层级顺序可根据架构逻辑进行微调,不必完全死板照搬。
3. **布局细节**:
* 层次清晰,模块之间严禁重叠或遮挡。
* 容器包裹效果要自然,子模块不要溢出父容器。
* 严格对齐(左对齐、居中对齐),模块间距均匀。
4. **最终输出**:仅输出一段完整的、可直接渲染的 SVG 代码。
输入示例
Cherry Studio示例:

最终产出
经过 AI 的即时运算,你将获得类似下图的精美架构图。

如果你用Cherry Studio可以直接复制/下载图片用于 PPT 汇报绝对吸睛!

💡 总结
AI 正在重塑我们的工作流。通过将“绘图”这一繁琐过程转化为“描述”这一认知过程,我们不仅节省了时间,更能将精力集中在系统设计本身的逻辑与价值上。下次做 PPT 时,不妨试试这个方法。