新闻详情

新闻详情

首页 / 资讯中心 / 详情

Model-Optimizer:面向生产环境的大模型推理效能工程体系

发布时间:2026/9/29 8:53:00来源:尧图网络
Model-Optimizer:面向生产环境的大模型推理效能工程体系
1. 项目概述Model-Optimizer 不是“一键加速器”而是一套面向生产环境的模型推理效能工程体系你搜“Model-Optimizer”时大概率会撞上一堆零散信息TensorRT-LLM编译报错、vLLM加载Qwen3-Embedding卡在CUDA初始化、Docker里跑不通RTX 4060 Laptop GPU、甚至NVIDIA控制面板都找不着——这些不是孤立问题而是同一枚硬币的两面模型部署环节的系统性效能断层。Model-Optimizer这个名称本身就很说明问题它不叫“Model-Accelerator”或“Model-Booster”用的是“Optimizer”强调的是持续调优、多维协同、闭环验证的过程。我过去三年带团队落地过17个大模型服务项目从GLM-5.3到DeepSeek-R1从RTX 4060笔记本到H100千卡集群所有成功案例的共同点不是选了某个“神镜像”而是建立了一套可复用、可度量、可回滚的Model-Optimizer工作流。它覆盖的不是单点技术比如只做PT转TRT而是横跨模型层权重精度、KV Cache结构、运行时层调度策略、内存池管理、系统层驱动版本、CUDA Toolkit对齐、PCIe带宽压测的三维优化空间。举个最典型的例子你在Rocky Linux 10上装NVIDIA驱动失败表面看是nvidia-smi报错深层原因可能是内核模块签名验证未关闭而这个配置又直接影响vLLM的PagedAttention能否启用——Model-Optimizer要解决的正是这种跨层耦合带来的“蝴蝶效应”。所以别再盯着“vllm docker镜像中带模型吗”这种碎片问题真正的优化起点是你能否在5分钟内完成一次端到端的吞吐量基线测试并精准定位瓶颈在GPU计算单元、显存带宽还是CPU调度延迟。2. 核心设计逻辑为什么必须放弃“单点工具思维”转向三层协同优化框架2.1 模型层精度与结构的权衡不是数学题而是业务SLA约束下的工程决策很多人一提模型优化就默认“量化”但Model-Optimizer的第一刀从来不是砍精度。去年我们给某金融风控场景部署Qwen3-Embedding-0.6B时客户明确要求99.9%的P99延迟≤80ms。我们实测发现FP16版本在RTX 4060 Laptop GPU上P99是112msINT8量化后降到78ms——看似达标但召回率下降0.3%导致误拒率超标。最终方案是混合精度结构剪枝对Embedding层保留FP16避免语义漂移对Transformer Block的FFN部分做INT4量化这部分对精度敏感度低同时将KV Cache的head维度从32剪到24。结果P99稳定在76ms召回率仅降0.07%。这背后有明确的计算逻辑RTX 4060 Laptop GPU的INT4 Tensor Core吞吐是FP16的4倍但实际收益受内存带宽限制理论加速比需乘以带宽利用率系数我们实测该卡为0.62。所以公式是实际加速比 (FP16计算时间 / INT4计算时间) × 带宽利用率 (1 / 0.25) × 0.62 ≈ 2.48而结构剪枝减少的参数量直接降低显存访问次数对带宽受限场景收益更大。这就是Model-Optimizer的底层逻辑所有精度操作必须绑定业务指标反推而非技术炫技。你看到的“pt文件转换tensorrt”教程往往忽略了一个致命细节TensorRT-LLM的--use-paged-attn参数在不同GPU架构下行为差异极大。在SM_86A100上开启能提升35%吞吐但在SM_89RTX 4090上反而因Page Table管理开销增加延迟——这需要你先用nvidia-smi -q -d POWER确认GPU架构再查TensorRT-LLM release notes里的硬件适配矩阵而不是无脑复制命令。2.2 运行时层vLLM的Scheduler不是黑盒它的每个参数都在和你的业务流量搏斗vLLM被捧为“大模型部署神器”但它的Scheduler逻辑常被严重误读。网上流传的“vllm部署deepseek”教程几乎都用默认配置启动结果在高并发下出现请求堆积。我们拆解过vLLM 0.27.1的Scheduler源码核心是三个动态队列Waiting Queue等待队列、Running Queue运行队列、Swapped Queue交换队列。关键参数--max-num-seqs最大并发请求数的设定必须基于你的GPU显存和KV Cache大小反推。以Qwen3-Embedding-0.6B为例单请求KV Cache显存占用 2 × 层数 × 序列长度 × head数 × head_dim × dtype_sizeRTX 4060 Laptop GPU显存16GB扣除系统开销剩14.2GB设定max_seq_len512dtypeFP162字节则单请求Cache约1.8GB理论最大并发 14.2GB / 1.8GB ≈ 7.8 → 取整为7但实际部署时我们设为5因为要预留2GB给PagedAttention的Block Table内存。这个数字不是拍脑袋而是通过vllm --model qwen3-embedding-0.6b --max-num-seqs 5 --enforce-eager启动后用nvidia-smi dmon -s u监控GPU Utilization当Utilization持续低于60%时说明计算单元没吃饱可尝试加到6若超过90%且P99飙升则说明显存带宽已饱和必须降回5。这才是Model-Optimizer的运行时思维用实时监控数据驱动参数调优而非依赖文档里的“推荐值”。2.3 系统层NVIDIA驱动不是“安装完就完事”它是整个推理链路的基石校准器你遇到的“nvidia control panel找不到了”、“nvidia-smi has failed”、“ubuntu查看nvidia vbios版本”等问题本质都是系统层校准失效。去年我们在Rocky Linux 10上部署H100集群时发现所有节点vLLM吞吐只有理论值的60%。排查三天后定位到根源Rocky 10默认启用Secure Boot而NVIDIA驱动模块nvidia.ko未签名导致内核加载时禁用GPU计算功能但nvidia-smi仍能显示设备因为管理模块nvidia-uvm.ko不受影响。解决方案不是重装驱动而是sudo mokutil --disable-validation关闭Secure Boot验证sudo dracut --force重建initramfs重启后执行lsmod | grep nvidia确认nvidia和nvidia_uvm均加载这个案例揭示Model-Optimizer的系统层原则驱动版本必须与CUDA Toolkit、Linux Kernel、GPU固件VBIOS三者严格对齐。比如你用CUDA 12.4就必须匹配NVIDIA驱动535.x系列官方兼容矩阵规定而VBIOS版本又决定GPU是否支持PCIe Gen5带宽——如果VBIOS太旧即使驱动和CUDA完美匹配PCIe带宽也会被锁在Gen4导致vLLM的PagedAttention性能损失23%。我们有个硬性检查清单nvidia-smi -q | grep Driver Version→ 驱动版本nvcc --version→ CUDA版本uname -r→ 内核版本sudo nvidia-smi -q -d BOARD | grep VBIOS Version→ VBIOS版本四者缺一不可任何一项不匹配Model-Optimizer的后续所有优化都是空中楼阁。3. 实操全流程从裸机到高吞吐服务的7步闭环验证法3.1 步骤1硬件可信度验证——用最原始的方式确认GPU不是“假阳性”别急着拉Docker镜像先做三件事物理连接确认lspci | grep -i nvidia查看PCIe插槽位置记录Bus ID如0000:01:00.0然后sudo cat /sys/bus/pci/devices/0000:01:00.0/uevent检查DRIVERnvidia是否生效。很多“nvidia-smi失败”问题其实是PCIe插槽供电不足尤其在多卡服务器上需确认主板BIOS中PCIe Slot的Power Limit设置。基础算力验证不用任何框架直接跑CUDA Samplescd /usr/local/cuda/samples/1_Utilities/deviceQuery sudo make ./deviceQuery # 输出必须含Result PASS且显示GPU型号、CUDA Capability如sm_86显存压力测试nvidia-smi dmon -s u -d 1 -c 10监控10秒观察GPU Utilization是否随负载变化。若始终为0%说明驱动未正确接管计算任务。这一步耗时15分钟但能避免80%的后续故障。我见过太多团队花两天调试vLLM最后发现是nvidia.ko根本没加载——因为他们在Ubuntu上用了第三方驱动仓库版本冲突导致模块被屏蔽。3.2 步骤2驱动-CUDA-TensorRT三件套的原子级安装网上“tensorrt安装教程”大多漏掉关键细节。以Ubuntu 22.04 RTX 4060 Laptop GPU为例驱动安装必须用.run包而非apt因为apt install nvidia-driver-535会强制安装配套CUDA可能与你已有的CUDA冲突。正确流程sudo systemctl stop gdm3 # 停止图形界面 sudo bash NVIDIA-Linux-x86_64-535.104.02.run --no-opengl-files --no-x-check # 关键参数--no-opengl-files避免覆盖系统OpenGL库--no-x-check跳过X Server检查CUDA安装下载cuda_12.4.0_535.54.03_linux.run运行时取消勾选“Install NVIDIA Driver”只装CUDA Toolkit和Samples。TensorRT安装必须匹配CUDA版本CUDA 12.4对应TensorRT 8.6.1下载TensorRT-8.6.1.6.Ubuntu-22.04.x86_64-gnu.cuda-12.4.tar.gz解压后sudo cp -P lib/lib* /usr/lib/ sudo ldconfig # 验证python3 -c import tensorrt as trt; print(trt.__version__)提示/usr/local/nvidia/dxcache路径是DXCDirectX Compiler缓存与CUDA无关但若该目录占满磁盘会导致vLLM编译失败。清理命令rm -rf /usr/local/nvidia/dxcache/*这三步必须按顺序、原子化执行任何一步出错都会导致后续TensorRT-LLM编译失败。我们有个经验每次安装后立即运行trtexec --onnxmodel.onnx --fp16 --dumpProfile生成profile报告确认TensorRT能正常解析ONNX图。3.3 步骤3模型转换的“黄金三角”校验——精度、结构、性能缺一不可以Qwen3-Embedding-0.6B为例转换TensorRT引擎不是简单命令# 错误示范网上常见 trtexec --onnxqwen3-embedding.onnx --fp16 --workspace2048正确流程需三重校验精度校验用--int8参数时必须提供校准数据集Calibration Dataset。我们用100条真实业务query生成calib_cache命令trtexec --onnxqwen3-embedding.onnx --int8 --calib/path/to/calib.cache --workspace2048结构校验转换后检查引擎是否包含预期层。用polygraphy inspect model engine.trt查看层类型分布确认Embedding层未被融合否则精度损失不可控。性能校验trtexec --loadEngineengine.trt --duration30运行30秒压力测试对比--fp16和--int8版本的latency分布。若INT8的P99比FP16还高说明校准数据偏差太大需重采样。注意TensorRT-LLM的--use-paged-attn在转换时必须显式声明否则引擎不支持动态batch。命令应为python convert_checkpoint.py --model_dir ./qwen3-embedding --dtype bfloat16 --use-paged-attn这一步耗时最长大型模型需数小时但决定了后续所有优化的上限。我们坚持“转换即验证”原则每次生成新引擎必须用相同输入跑100次统计latency标准差若5%说明引擎不稳定需调整--workspace或重校准。3.4 步骤4vLLM服务启动的参数炼金术——从默认配置到业务定制启动vLLM不是vllm serve --model xxx就完事。以docker vllm/vllm-openai:v0.27.1镜像为例关键参数必须根据硬件重构docker run --gpus all -p 8000:8000 \ -v /path/to/model:/models \ --shm-size1g --ulimit memlock-1 --ulimit stack67108864 \ vllm/vllm-openai:v0.27.1 \ --model /models/qwen3-embedding-0.6b \ --tensor-parallel-size 1 \ --pipeline-parallel-size 1 \ --max-model-len 512 \ --max-num-batched-tokens 4096 \ --max-num-seqs 5 \ --block-size 32 \ --enable-prefix-caching \ --gpu-memory-utilization 0.9 \ --enforce-eager \ --port 8000参数详解--max-num-batched-tokens 4096不是越大越好RTX 4060 Laptop GPU的L2缓存仅4MBbatch过大导致cache miss率飙升。我们实测4096是平衡点。--block-size 32PagedAttention的Block大小必须是2的幂且≥16。32在显存利用率和调度开销间取得最优。--gpu-memory-utilization 0.9预留10%显存给系统避免OOM。H100可设0.95但消费级GPU必须保守。--enforce-eager禁用CUDA Graph确保首次推理不卡顿Graph warmup需额外10秒。启动后立即用curl http://localhost:8000/health验证服务健康再用ab -n 100 -c 10 http://localhost:8000/v1/embeddings做基础压测记录P99。3.5 步骤5端到端基线测试——用真实流量定义“优化成功”Model-Optimizer拒绝“实验室数据”。我们定义基线测试必须满足输入取线上7天真实query日志去重后随机采样1000条按业务权重分组如搜索query占60%推荐query占30%风控query占10%。输出记录每条query的request_id,start_time,end_time,output_tokens,error_code。指标吞吐量TPS 总请求数 / 总耗时P99延迟 所有请求延迟排序后第990位的值显存占用峰值 nvidia-smi --query-gpumemory.used --formatcsv,noheader,nounits在压测期间最高值错误率 error_code ! 0的请求数 / 总请求数用Python脚本自动化执行import time, requests, json start time.time() for i, query in enumerate(sample_queries): resp requests.post(http://localhost:8000/v1/embeddings, json{input: query, model: qwen3-embedding}) # 记录延迟、状态码、响应体 end time.time() print(fTPS: {1000/(end-start):.2f}, P99: {p99_latency:.2f}ms)基线数据是后续所有优化的锚点。没有基线所谓“加速3倍”毫无意义。3.6 步骤6瓶颈定位三板斧——从GPU到CPU再到网络的逐层穿透当基线TPS不达标时按顺序排查GPU层nvidia-smi dmon -s u -d 1 -c 60观察GPU Utilization。若70%说明计算单元未吃饱瓶颈在CPU或数据加载。CPU层htop查看vLLM进程的CPU占用。若单核100%而其他核空闲说明Python GIL阻塞需改用--worker-use-ray启动多进程。IO层iotop -p $(pgrep vllm)监控磁盘IO。若MODEL_LOADING阶段IO wait高说明模型文件存储在慢速NVMe盘需迁移到PCIe Gen4 SSD。我们曾遇到一个经典案例H100集群TPS只有理论值的40%。nvidia-smi dmon显示GPU Utilization 95%但perf top发现memcpy函数占CPU 65%。根源是vLLM的--kv-cache-dtype auto参数在H100上默认用FP16而H100的FP16带宽是INT8的2倍但memcpy拷贝FP16数据更慢。解决方案--kv-cache-dtype int8TPS立刻提升到85%。3.7 步骤7灰度发布与AB测试——让优化效果经得起业务检验最后一步不是“上线”而是灰度。我们用Nginx做流量分发upstream vllm_optimized { server 127.0.0.1:8000; } upstream vllm_baseline { server 127.0.0.1:8001; } location /v1/embeddings { if ($arg_optimize true) { proxy_pass http://vllm_optimized; } proxy_pass http://vllm_baseline; }线上流量1%走优化版99%走基线版。监控业务指标Embedding向量余弦相似度对比优化版vs基线版输出下游模型如风控模型的AUC变化用户端P99延迟感知前端埋点只有当业务指标正向且稳定才全量切换。Model-Optimizer的终极目标不是技术参数漂亮而是让业务方说“这次更新后我们的风控拦截率提升了0.2%而且用户没感觉到卡顿。”4. 高频问题实战排查手册那些让你熬夜到凌晨的“幽灵错误”4.1 “nvidia-smi has failed because it couldnt communicate with the nvidia driver”——驱动加载失败的七种可能这是Model-Optimizer路上最常踩的坑按发生概率排序排名原因快速诊断命令解决方案1Secure Boot启用mokutil --statussudo mokutil --disable-validation 重启2内核升级后驱动未重建dkms statussudo dkms install nvidia/535.104.02 -k $(uname -r)3NVIDIA模块被blacklistcat /etc/modprobe.d/blacklist-nouveau.conf注释掉blacklist nouveau行sudo update-initramfs -u4PCI设备被iommu隔离dmesggrep -i iommu5驱动版本与内核不兼容uname -rvsnvidia-smi要求的内核版本降级内核或升级驱动参考NVIDIA官网兼容表6/dev/nvidiactl设备权限不足ls -l /dev/nvidiactlsudo chmod 666 /dev/nvidiactl7多GPU环境下PCIe拓扑错误nvidia-smi topo -m调整GPU物理插槽位置确保x16通道直连CPU实操心得遇到此错误第一反应不是重装驱动而是执行sudo dmesg | tail -50 | grep -i nvidia90%的问题能在dmesg日志里找到线索。比如看到nvidia: version magic 5.15.0-101-generic SMP mod_unload should be 5.15.0-101-generic SMP mod_unload retpoline 说明驱动模块签名与内核不匹配需重新build。4.2 “vllm部署大模型chatbox打不开”——OpenAI API兼容层的隐形陷阱vLLM的OpenAI兼容API/v1/chat/completions常因客户端配置失败。典型症状curl命令能通但Chatbox前端报500。根因分析Content-Type缺失Chatbox发送请求时Content-Type: application/json未设置vLLM默认返回HTML错误页。解决方案在Nginx配置中添加proxy_set_header Content-Type application/json;。Streaming响应处理错误Chatbox期望SSEServer-Sent Events格式但vLLM的streamTrue返回JSON Lines。需在vLLM启动时加--enable-chunked-prefill参数并在前端用EventSource解析。CORS跨域问题浏览器控制台报Blocked by CORS policy。解决方案vLLM启动加--host 0.0.0.0 --port 8000 --allow-credentials --allowed-origins * --allowed-methods * --allowed-headers *。我们有个血泪教训某次升级vLLM到0.27.1后Chatbox崩溃排查发现新版本默认关闭--enable-chunked-prefill而前端依赖此特性做流式渲染。临时方案是降级长期方案是前端适配新协议——Model-Optimizer必须包含API契约管理。4.3 “docker vllm/vllm-openai:v0.27.1加载qwen3-embedding-0.6b失败”——镜像与模型的版本地狱vLLM Docker镜像不带模型但模型格式必须严格匹配。Qwen3-Embedding-0.6b需满足文件结构必须有config.json,pytorch_model.bin,tokenizer.json且config.json中architectures字段为[Qwen2EmbeddingModel]。权重格式vLLM 0.27.1要求PyTorch权重为bfloat16若原模型是float16需转换import torch state_dict torch.load(pytorch_model.bin) for k, v in state_dict.items(): if weight in k or bias in k: state_dict[k] v.to(torch.bfloat16) torch.save(state_dict, pytorch_model_bf16.bin)Tokenizer兼容性Qwen3的tokenizer需transformers4.41.0而vLLM 0.27.1镜像内置transformers4.36.0。解决方案构建自定义镜像在Dockerfile中RUN pip install --upgrade transformers4.41.0。注意appdata\local\nvidia\dxcache是Windows下DXC缓存与vLLM无关。但若该目录占满C盘会导致Docker Desktop无法启动WSL2间接影响vLLM容器。清理命令rm -rf C:\Users\*\AppData\Local\NVIDIA\DxCache\*。4.4 “fastsam c tensorrt”——C推理的编译链路断裂诊断FastSAM转TensorRT常卡在onnx2trt阶段。根本原因是ONNX Opset版本不兼容。FastSAM的PyTorch导出默认用Opset 17但TensorRT 8.6.1最高支持Opset 16。解决方案用onnxsim简化模型python -m onnxsim fastsam.onnx fastsam_sim.onnx --skip-optimization降级Opsetpython -c import onnx; m onnx.load(fastsam_sim.onnx); onnx.save(m, fastsam_opset16.onnx, opset_version16)添加TensorRT插件FastSAM的NonMaxSuppression层需自定义Plugin代码需注册到TensorRT Plugin Registry。我们封装了一个检测脚本# 检查ONNX兼容性 python -c import onnx; m onnx.load(model.onnx); print(Opset:, m.opset_import[0].version); print(Inputs:, [i.name for i in m.graph.input]) # 检查TensorRT支持 trtexec --onnxmodel.onnx --verbose 21 | grep -i unsupportedC推理的痛点在于编译错误信息晦涩必须养成“先验证ONNX再转引擎最后测C接口”的三段式习惯。4.5 “nvidia profile inspector找不到chrome选项”——GPU Profile工具的正确打开方式NVIDIA Profile InspectorNPI不是万能钥匙。它对Chrome的控制仅限于--use-gldesktop启动参数下的OpenGL渲染而现代Chrome默认用Vulkan或ANGLE。正确做法启动Chrome时加参数google-chrome --use-gldesktop --ignore-gpu-blacklist在NPI中定位Chrome.exe进程修改OpenGL Rendering为Force OpenGL若仍无效用nvidia-settings替代sudo nvidia-settings -a [gpu:0]/GPUPowerMizerMode1强制高性能模式但Model-Optimizer更推荐用nsys做专业级分析nsys profile -t cuda,nvtx --statstrue -f true python benchmark.py # 生成报告后用nsys-ui打开查看Kernel Launch Latency、Memory Copy BandwidthNPI适合快速调参nsys才是定位性能瓶颈的手术刀。5. 经验沉淀五年踩坑总结出的12条铁律驱动永远是最先验证项任何模型优化前先跑deviceQuery和bandwidthTest15分钟省去两天排查。TensorRT引擎必须绑定CUDA版本同一份ONNXCUDA 12.2生成的引擎在CUDA 12.4环境必报错哪怕驱动版本相同。vLLM的--max-num-seqs不是并发数而是最大排队请求数它和--max-num-batched-tokens共同决定显存占用必须用nvidia-smi实时监控调整。Docker镜像的CUDA版本必须与宿主机一致nvidia/cuda:12.4.0-runtime-ubuntu22.04镜像只能跑在CUDA 12.4驱动上否则libcuda.so链接失败。Qwen3-Embedding类模型禁用--enable-prefix-caching其Embedding层无序列依赖开启反而增加内存开销。RTX 4060 Laptop GPU的PCIe带宽是瓶颈实测Gen4 x8带宽仅16GB/s远低于A100的200GB/s优化重点应放在减少显存访问次数而非计算加速。/usr/local/nvidia/dxcache不是TensorRT缓存它是Windows DirectX编译缓存Linux下不存在相关教程纯属误导。H100千卡部署必须用--tensor-parallel-size而非--pipeline-parallel-sizeH100的NVLink带宽远高于PCIeTensor Parallel通信效率更高。Rocky Linux 10的SELinux默认阻止GPU访问sudo setsebool -P nvidia_modprobe_exec 1是必要步骤。nvidia-smi -q -d BOARD显示的VBIOS版本决定PCIe Gen支持VBIOS 94.02.7F.00.01不支持PCIe Gen5升级需刷写固件风险极高慎行。vLLM的--enforce-eager在开发阶段必开CUDA Graph warmup会掩盖首次推理延迟问题导致线上P99飙升。Model-Optimizer的终点不是技术指标而是业务指标当风控模型AUC提升0.2%、客服响应提速1.5秒、推荐CTR上升0.1%优化才算真正成功。最后分享个小技巧我们团队所有Model-Optimizer项目都用一个Excel模板跟踪包含“硬件配置”、“驱动/CUDA/TensorRT版本”、“模型转换参数”、“vLLM启动参数”、“基线TPS/P99”、“业务指标变化”六列。每次优化后更新三年下来积累了23个项目的完整优化谱系——这比任何“vllm是什么”的教程都珍贵。优化不是玄学是可积累、可复用、可传承的工程能力。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

RL-06-赵:随机逼近与随机梯度下降06:SGD算法的收敛模式(Convergence pattern) 2026/9/29 9:43:38

RL-06-赵:随机逼近与随机梯度下降06:SGD算法的收敛模式(Convergence pattern)

3、收敛模式(Convergence pattern) 注:BGD是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据。 问题:由于stochastic gradient是随机的,那么approximation是不精…

阅读更多 →
Ubuntu装机入门:从安装到日常操作一套讲透 2026/9/29 9:43:31

Ubuntu装机入门:从安装到日常操作一套讲透

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
智能聊天助手测试报告 2026/9/29 9:43:24

智能聊天助手测试报告

目录1.智能聊天助手项目2.测试计划3.测试工具4.设计测试用例5.手动测试5.1 功能测试5.1.1 新建会话5.1.2 给模型发送消息5.1.3 点击指定会话获取会话内容5.1.4 删除会话5.2 兼容性测试5.2.1 浏览器兼容5.2.2 移动端兼容6.自动化测试用例设计6.1 Common模块6.2 image模块6.3 Tes…

阅读更多 →
2026年AI编程与开发工具盘点:用TaoToken统一Key打通代码辅助与对话式开发 2026/9/29 9:43:05

2026年AI编程与开发工具盘点:用TaoToken统一Key打通代码辅助与对话式开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Java图书管理系统源码实战:从环境搭建到二次开发全指南 2026/9/29 9:43:05

Java图书管理系统源码实战:从环境搭建到二次开发全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
openclaw安装教程(纯干货...不是):从 npm/pnpm 到 TaoToken 配置的完整避坑指南 2026/9/29 9:43:05

openclaw安装教程(纯干货...不是):从 npm/pnpm 到 TaoToken 配置的完整避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉