Initial commit of LLM speed test app
This commit is contained in:
@@ -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),
|
||||
}
|
||||
Reference in New Issue
Block a user