Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ Recommended demo flow:
3. `Load Demo Evidence` 클릭
4. TensorRT vs ONNX Runtime 비교와 Lab-owned deployment decision context 확인

브라우저를 열지 않고도 같은 evidence 수치를 CLI에서 확인하거나 Markdown으로 export할 수 있습니다.

```bash
poetry run inferedgelab demo-evidence-summary
poetry run inferedgelab demo-evidence-summary --format json
poetry run inferedgelab export-demo-evidence --output reports/studio_demo_evidence.md
```

Load Demo Evidence는 bundled ONNX Runtime CPU / TensorRT Jetson result fixture를 불러오고, Run / Import / Jetson Helper는 기존 CLI/API workflow를 local UI로 확장하는 보조 기능입니다.
Studio evidence와 jobs는 in-memory이며 local server process가 재시작되면 초기화됩니다.

Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@ Recommended demo flow:
3. Click `Load Demo Evidence`
4. Review TensorRT vs ONNX Runtime comparison and deployment decision context

The same evidence can be exported from the CLI without opening the browser:

```bash
poetry run inferedgelab demo-evidence-summary
poetry run inferedgelab demo-evidence-summary --format json
poetry run inferedgelab export-demo-evidence --output reports/studio_demo_evidence.md
```

![InferEdge Local Studio demo evidence](assets/images/local-studio-demo-evidence.png)

Verified demo fixture values:
Expand Down
4 changes: 4 additions & 0 deletions inferedgelab/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from inferedgelab.commands.compare_latest import compare_latest_cmd
from inferedgelab.commands.enrich_pair import enrich_pair_cmd
from inferedgelab.commands.enrich_result import enrich_result_cmd
from inferedgelab.commands.demo_evidence import demo_evidence_summary_cmd
from inferedgelab.commands.demo_evidence import export_demo_evidence_cmd
from inferedgelab.commands.list_results import list_results_cmd
from inferedgelab.commands.history_report import history_report_cmd
from inferedgelab.commands.serve import serve_cmd
Expand Down Expand Up @@ -40,6 +42,8 @@ def version_cmd() -> None:
app.command("compare-latest", help="Compare the two most recent structured benchmark results")(compare_latest_cmd)
app.command("enrich-pair", help="Attach accuracy metadata to a base/new structured result pair")(enrich_pair_cmd)
app.command("enrich-result", help="Attach accuracy metadata to an existing structured benchmark result")(enrich_result_cmd)
app.command("demo-evidence-summary", help="Print Local Studio demo evidence summary")(demo_evidence_summary_cmd)
app.command("export-demo-evidence", help="Export Local Studio demo evidence as Markdown")(export_demo_evidence_cmd)
app.command("list-results", help="List recent structured benchmark results")(list_results_cmd)
app.command("history-report", help="Generate HTML history report from structured benchmark results")(history_report_cmd)
app.command("serve", help="Run InferEdgeLab FastAPI server")(serve_cmd)
Expand Down
50 changes: 50 additions & 0 deletions inferedgelab/commands/demo_evidence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
from __future__ import annotations

from pathlib import Path

import typer
from rich import print as rprint

from inferedgelab.services.demo_evidence_report import (
build_demo_evidence_markdown,
build_demo_evidence_summary,
build_demo_evidence_summary_text,
demo_evidence_summary_json,
write_demo_evidence_markdown,
)


def demo_evidence_summary_cmd(
format: str = typer.Option("text", "--format", "-f", help="text/json/markdown"),
output: str = typer.Option("", "--output", "-o", help="Optional output path"),
) -> None:
summary = build_demo_evidence_summary()
normalized_format = format.strip().lower()
if normalized_format == "text":
text = build_demo_evidence_summary_text(summary)
elif normalized_format == "json":
text = demo_evidence_summary_json(summary)
elif normalized_format in {"markdown", "md"}:
text = build_demo_evidence_markdown(summary)
else:
raise typer.BadParameter("--format must be one of: text, json, markdown")

if output:
path = Path(output)
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(text, encoding="utf-8")
rprint(f"[green]Saved[/green]: {path}")
else:
print(text, end="")


def export_demo_evidence_cmd(
output: str = typer.Option(
"reports/studio_demo_evidence.md",
"--output",
"-o",
help="Markdown output path",
),
) -> None:
path = write_demo_evidence_markdown(output)
rprint(f"[green]Saved[/green]: {path}")
Loading
Loading