Initial commit of LLM speed test app

This commit is contained in:
2026-09-06 11:45:52 +08:00
commit 5544b5f9f9
38 changed files with 8587 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
"""客户端公共基类:推理指标与错误类型
Ollama 原生客户端与 OpenAI 兼容客户端共享同一数据模型,
测试用例通过统一接口(generate/chat)调用,无需关心后端差异。
"""
from dataclasses import dataclass
class ClientError(Exception):
"""推理服务调用相关错误(统一异常基类)"""
@dataclass
class InferenceResult:
"""单次推理的完整指标(两套后端共用)"""
ttft_ms: float = 0.0 # 首 Token 延迟(毫秒)
prefill_ms: float = 0.0 # 预填充/处理 prompt 时间(毫秒)
decode_speed_tok_s: float = 0.0 # 解码速度(tokens/s)
total_tokens: int = 0 # 总 token 数
prompt_tokens: int = 0 # prompt token 数
completion_tokens: int = 0 # 生成 token 数
e2e_ms: float = 0.0 # 端到端耗时(毫秒)
response: str = "" # 完整回复文本
def to_dict(self) -> dict:
return {
"ttft_ms": round(self.ttft_ms, 2),
"prefill_ms": round(self.prefill_ms, 2),
"decode_speed_tok_s": round(self.decode_speed_tok_s, 2),
"total_tokens": self.total_tokens,
"prompt_tokens": self.prompt_tokens,
"completion_tokens": self.completion_tokens,
"e2e_ms": round(self.e2e_ms, 2),
"response_length": len(self.response),
}