Skip to content

save_trace

autogen.beta.eval.sources.trace_source.save_trace #

save_trace(directory, trace_id, spans, *, task_id=None, metadata=None)

Write spans as one <trace_id>.json under directory (creating it).

The companion writer for :class:DirectoryTraceSource. Returns the path written.

Source code in autogen/beta/eval/sources/trace_source.py
def save_trace(
    directory: str | os.PathLike[str],
    trace_id: str,
    spans: Sequence[SpanData],
    *,
    task_id: str | None = None,
    metadata: dict[str, Any] | None = None,
) -> Path:
    """Write ``spans`` as one ``<trace_id>.json`` under ``directory`` (creating it).

    The companion writer for :class:`DirectoryTraceSource`. Returns the path written.
    """
    path = Path(directory)
    path.mkdir(parents=True, exist_ok=True)
    doc = {
        "trace_id": trace_id,
        "task_id": task_id,
        "metadata": dict(metadata or {}),
        "spans": [span_data_to_dict(s) for s in spans],
    }
    file = path / f"{trace_id}.json"
    file.write_text(json.dumps(doc, indent=2), encoding="utf-8")
    return file