新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何打造你的专属AI智能助手:vLLM+DeepSeek+OpenWebUI保姆级教程!大模型实战(三)模型压测与TaoToken统一Key配置

发布时间:2026/9/28 3:53:54来源:尧图网络
如何打造你的专属AI智能助手:vLLM+DeepSeek+OpenWebUI保姆级教程!大模型实战(三)模型压测与TaoToken统一Key配置
1. 压测这件事为什么部署完才真正开始模型跑起来只是第一步。你把 vLLM DeepSeek 拉起来OpenWebUI 也能正常对话看起来一切顺利但心里其实没底这套东西到底能扛多少人同时用首 token 要等多久输出速度够不够流畅如果明天突然来 50 个人同时提问服务会不会直接卡死这些问题不靠猜靠压测。模型压测的核心就是量化推理性能把「感觉还行」变成「并发 200 时 RPS 3.42、TTFT 0.428s、吞吐 7007 token/s」这种可对比的数字。有了这些数字你才知道该不该调--max-num-seqs、该不该加卡、该不该限制上下文长度。同时压测过程中会反复调用 API如果每个工具都单独配一套 Key管理起来非常乱。这篇就把两件事合在一起讲用 LLM-Benchmark 和 EvalScope 做模型压测再用 TaoToken 统一 Key/API 通道把 OpenWebUI、压测脚本、后续的编码工具都收敛到一套配置上。适合谁看已经用 vLLM 部署完 DeepSeek、OpenWebUI 能正常对话现在想知道性能边界、并且想统一管理 API 调用的同学。下面所有命令和配置都可以直接复制改参数使用。2. TaoToken 前置统一 Key 与 API 通道在压测之前先把 API 通道理清楚。压测脚本需要填--api_key和--llm_urlOpenWebUI 也需要配 API 地址。如果每个地方都写一套改起来容易漏。TaoToken 的作用就是提供一个统一的 API 入口和 Key 管理让压测脚本、OpenWebUI、后续的 Coding Plan 都指向同一个通道。先拿到 Key。打开控制台地址https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole在 API Keys 页面创建一个 Key复制保存。这个 Key 后面会同时用在压测脚本和 OpenWebUI 里。API 基础地址是https://taotoken.net/api注意这个地址不加 UTM 参数直接作为base_url使用。如果你用的是 OpenAI 兼容的客户端填https://taotoken.net/api/v1即可。模型对话入口可以用来快速验证 Key 是否可用https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel-chat接入文档在这里遇到参数问题可以对照https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc注意压测脚本里的--llm_url指向的是你本地 vLLM 服务的地址比如http://localhost:8000/v1不是 TaoToken 地址。TaoToken 统一 Key 主要用在 OpenWebUI 和后续需要外部 API 的工具上。两者不要混。如果你后续要做长期编码或 Agent 任务可以了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan3. 可复制配置压测脚本与 OpenWebUI 接入3.1 准备 Python 虚拟环境压测脚本依赖 numpy、openai、rich 等包建议在虚拟环境里跑避免污染系统 Python。apt install python3.10-venv -y python3 -m venv llm_benchmark_test source llm_benchmark_test/bin/activate pip install numpy openai rich -i https://mirrors.aliyun.com/pypi/simple3.2 获取 LLM-Benchmark 项目git clone https://github.com/lework/llm-benchmark.git cd llm-benchmark项目里两个核心脚本llm_benchmark.py负责单次并发测试run_benchmarks.py负责自动多轮压测并给出建议。3.3 单次并发压测命令先跑一次小规模测试确认服务能正常响应。总请求数 100并发 10python3 llm_benchmark.py \ --llm_url http://localhost:8000/v1 \ --api_key OPENWEBUI123 \ --model deepseek-r1 \ --num_requests 100 \ --concurrency 10这里的--api_key填你 vLLM 启动时设置的 Key如果没设可以随便填一个非空值。跑完后关注几个数字RPS每秒请求数、平均延迟、TTFT首 token 时间、TPS每秒输出 token 数。3.4 全套自动压测确认单次没问题后跑全套。它会自动调整并发1 到 300最后给出最佳配置建议python3 run_benchmarks.py \ --llm_url http://localhost:8000/v1 \ --api_key OPENWEBUI123 \ --model deepseek-r1 \ --use_long_context--use_long_context会使用长文本模式更贴近真实业务场景。跑完后重点看工具给出的「最佳并发数」建议。3.5 OpenWebUI 接入 TaoToken 统一 KeyOpenWebUI 的配置文件通常是config.toml或通过环境变量注入。如果你想让 OpenWebUI 走 TaoToken 通道在 OpenAI 连接配置里填[openai] enable true api_base_url https://taotoken.net/api/v1 api_key 你的_TaoToken_Key如果用 Docker 启动可以用环境变量docker run -d \ -p 3000:8080 \ -e OPENAI_API_BASE_URLhttps://taotoken.net/api/v1 \ -e OPENAI_API_KEY你的_TaoToken_Key \ -v open-webui:/app/backend/data \ --name open-webui \ ghcr.io/open-webui/open-webui:main这样 OpenWebUI 的模型调用就走统一通道了后续换 Key 或加工具只需要改一处。3.6 EvalScope 压测配置EvalScope 适合做更细粒度的性能测试支持多并发、多请求数组合。先安装pip install evalscope[perf] -U -i https://mirrors.aliyun.com/pypi/simple pip install evalscope[app] -U -i https://mirrors.aliyun.com/pypi/simple并发测试命令evalscope perf \ --parallel 1 10 50 100 200 \ --number 10 20 100 200 400 \ --api-key OPENWEBUI123 \ --model deepseek-r1 \ --url http://127.0.0.1:8000/v1/chat/completions \ --api openai \ --dataset random \ --max-tokens 1024 \ --min-tokens 1024 \ --prefix-length 0 \ --min-prompt-length 1024 \ --max-prompt-length 1024 \ --tokenizer-path /data/DeepSeek/DeepSeek-R1-Distill-Qwen-32B \ --extra-args {ignore_eos: true}--parallel和--number要一一对应比如 parallel 200 对应 number 400表示 200 并发共发 400 个请求。--tokenizer-path必须指向你本地模型权重目录否则 random 数据集无法计算 token 数。4. 验证请求与成功结果解读4.1 单次压测结果跑完llm_benchmark.py后终端会输出类似RPS: 4.6 Average Latency: 2.2s TTFT: 0.19s TPS: 22.6 token/s这说明在并发 10 的情况下每秒能处理 4.6 个请求首 token 只要 0.19 秒输出速度 22.6 token/s。这个首 token 延迟已经很快了用户体验上基本感觉不到等待。4.2 全套压测结果run_benchmarks.py跑完后会给出各并发档位的对比。典型输出Concurrency 300: RPS 32, Avg Latency 9s, TPS 10 Best configuration: concurrency 200并发 300 时 TPS 掉到 10延迟涨到 9 秒说明已经过载。工具建议最佳并发 200这个数字就是你后续配--max-num-seqs的参考。4.3 EvalScope 结果EvalScope 的输出更结构化RPS: 3.42 Throughput: 7007 token/s TTFT: 0.428s TPOT: 0.028s吞吐 7007 token/s 是整体处理能力TPOT 0.028s 表示每个输出 token 间隔 28 毫秒生成很流畅。TTFT 0.428s 比 LLM-Benchmark 测的略高因为输入 prompt 长度不同这里固定 1024 token。4.4 用 TaoToken 验证 Key 可用在压测之外快速验证 TaoToken Key 是否正常curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的_TaoToken_Key \ -H Content-Type: application/json \ -d { model: deepseek-chat, messages: [{role: user, content: 你好}] }返回正常 JSON 就说明 Key 和通道都没问题。也可以直接在模型对话页面测试https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel-chat5. 本篇常见错排查5.1 压测脚本报连接超时现象Connection refused或Timeout。排查确认 vLLM 服务在跑curl http://localhost:8000/v1/models能返回模型列表。如果 vLLM 在 Docker 里注意端口映射--llm_url要用宿主能访问的地址。5.2 TTFT 指标测不出来EvalScope 默认--stream为 True只有流式输出才能测 TTFT。如果你设了--no-streamTTFT 会缺失。检查命令里没有误加--no-stream。5.3 random 数据集报 tokenizer 错误--dataset random必须配--tokenizer-path且路径要指向模型权重目录包含 tokenizer.json 或 tokenizer_config.json。路径写错会直接报错退出。5.4 OpenWebUI 连不上 TaoToken检查api_base_url是否写成https://taotoken.net/api/v1少写/v1会 404。Key 是否有多余空格。Docker 环境下确认容器能访问外网。5.5 并发 300 时服务无响应这是预期内的过载。vLLM 的--max-num-seqs默认值有限超过后请求会排队。压测的目的就是找到这个拐点然后把生产并发控制在拐点以下。如果确实需要更高并发考虑加卡或调大--max-num-seqs和--gpu-memory-utilization。5.6 API Key 管理混乱如果压测脚本、OpenWebUI、其他工具各用一套 Key改起来容易漏。统一用 TaoToken 的 Key在控制台集中管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys接入文档里有各客户端的配置示例https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc6. 压测之后把 Key 统一管起来压测跑完你手里有了几个关键数字最佳并发数、TTFT、TPS、吞吐量。这些数字决定了你的服务能服务多少人、要不要优化。但压测只是开始后续你还会接更多工具——编码助手、Agent、自动化脚本每个都要调 API。这时候统一 Key 的价值就出来了。TaoToken 的控制台可以集中管理 Key接入文档覆盖了常见客户端的配置方式。如果你主要做长期编码任务Coding Plan 提供了更适合的通道https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-planClaudeCode 相关接入参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaudecode压测脚本里的--api_key虽然填的是本地 vLLM 的 Key但 OpenWebUI 和后续工具都走 TaoToken 通道后你只需要维护一套 Key。改 Key、加额度、看用量都在一个地方完成。这样下次再压测或扩容时不用到处翻配置文件。
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

DXF/DWG中文乱码全解析:从编码诊断到Python/Java/C#实操转换 2026/9/28 4:59:57

DXF/DWG中文乱码全解析:从编码诊断到Python/Java/C#实操转换

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

阅读更多 →
舆情热点分析平台:爬虫、MySQL与NLP情感分析实战拆解 2026/9/28 4:59:57

舆情热点分析平台:爬虫、MySQL与NLP情感分析实战拆解

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

阅读更多 →
公司做网站的oa办公系统多少钱?5个关键问题拆解 2026/9/28 4:59:50

公司做网站的oa办公系统多少钱?5个关键问题拆解

公司做网站的oa办公系统多少钱?5个关键问题拆解 很多老板一上来就问:“我想给公司做个网站,顺便把OA办公系统也搭进去,这得多少钱?”…

阅读更多 →
LabVIEW 宽带记录 80 MHz ELINT 信号 2026/9/28 4:59:37

LabVIEW 宽带记录 80 MHz ELINT 信号

一台紧凑型设备要连续记录 80 MHz 带宽、160 MHz 中频的电子侦察信号,同时实时评估低至 300 ns 脉冲重复率下的来波脉冲信息。最终的方案把多块新一代 FlexRIO 模块、宽带高性能数字化仪和一块经过改造的 PXI Express 机箱内数据流模块组合在一起,做成了…

阅读更多 →
YOLOv3目标检测从原理到实战:训练、评估与避坑指南 2026/9/28 4:59:31

YOLOv3目标检测从原理到实战:训练、评估与避坑指南

简介:一套基于YOLOv3的目标检测课程项目资源,面向深度学习初学者或需要完成目标检测实验报告的高校学生,以行人、自行车与机动车三类目标的识别为主线,覆盖YOLO算法原理、PaddlePaddle代码实现、模型训练与优化全流程。压缩包共12…

阅读更多 →
STM32+FPGA工业控制器分级存储:EEPROM/NOR Flash/SD卡实战 2026/9/28 4:59:30

STM32+FPGA工业控制器分级存储:EEPROM/NOR Flash/SD卡实战

/* 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
📞 ✉