33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""测试用例公共工具"""
|
|
from ..ollama_client import InferenceResult
|
|
|
|
|
|
def make_result(infer: InferenceResult, iteration: int, **extra) -> dict:
|
|
"""将一次推理结果转换为用例数据条目"""
|
|
item = {
|
|
"iteration": iteration,
|
|
"ttft_ms": round(infer.ttft_ms, 2),
|
|
"prefill_ms": round(infer.prefill_ms, 2),
|
|
"decode_speed_tok_s": round(infer.decode_speed_tok_s, 2),
|
|
"total_tokens": infer.total_tokens,
|
|
"prompt_tokens": infer.prompt_tokens,
|
|
"completion_tokens": infer.completion_tokens,
|
|
"e2e_ms": round(infer.e2e_ms, 2),
|
|
"elapsed_ms": round(infer.e2e_ms, 2),
|
|
"response_length": len(infer.response),
|
|
}
|
|
item.update(extra)
|
|
return item
|
|
|
|
|
|
def case_meta(case_id: str, name: str, description: str,
|
|
difficulty: str, estimated_seconds: int) -> dict:
|
|
"""构造用例元数据"""
|
|
return {
|
|
"case_id": case_id,
|
|
"name": name,
|
|
"description": description,
|
|
"difficulty": difficulty,
|
|
"estimated_seconds": estimated_seconds,
|
|
}
|