Unverified Commit 8625ec26 authored by Nicolò Lucchesi's avatar Nicolò Lucchesi Committed by GitHub
Browse files

[Misc] Multi-turn benchmark output performance json (#39572)


Signed-off-by: default avatarNickLucche <nlucches@redhat.com>
parent 995e9a20
...@@ -1439,6 +1439,12 @@ async def main() -> None: ...@@ -1439,6 +1439,12 @@ async def main() -> None:
action="store_true", action="store_true",
help="Export summary to Excel file (optional)", help="Export summary to Excel file (optional)",
) )
parser.add_argument(
"--stats-json-output",
type=str,
default=None,
help="Export per-request stats (ttft_ms, tpot_ms, etc.) to a JSON file",
)
parser.add_argument( parser.add_argument(
"-v", "-v",
"--verbose", "--verbose",
...@@ -1651,6 +1657,19 @@ async def main() -> None: ...@@ -1651,6 +1657,19 @@ async def main() -> None:
warmup_runtime_sec=warmup_runtime_sec, warmup_runtime_sec=warmup_runtime_sec,
) )
if args.stats_json_output is not None:
# Export per-request metrics as a JSON array for downstream analysis.
stats_data = [s._asdict() for s in client_metrics]
logger.info(
f"{Color.GREEN}Writing per-request stats JSON: "
f"{args.stats_json_output}{Color.RESET}"
)
os.makedirs(
os.path.dirname(os.path.abspath(args.stats_json_output)), exist_ok=True
)
with open(args.stats_json_output, "w") as f:
json.dump(stats_data, f, indent=2)
if args.output_file is not None: if args.output_file is not None:
# Write a JSON file with the updated conversations # Write a JSON file with the updated conversations
# The "assistant" content will contain the answers from the tested LLM # The "assistant" content will contain the answers from the tested LLM
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment