The GenAI semantic conventions are still moving, so exports in the wild use several different spellings at once. GetEvals accepts all of them: the current <code>gen_ai.input.messages</code> parts model, the older <code>gen_ai.user.message</code> span events, OpenInference's flattened <code>llm.input_messages.0.message.*</code> attributes, and the Vercel AI SDK's <code>ai.prompt.*</code> JSON-string attributes.
JSONL · JSON · NDJSON · CSV · TSV · TXT · GZ · ZIP
file exporter, or the file exporter in your SDK, to write OTLP JSON.px.Client().get_spans_dataframe(), then save as CSV or JSON.traceId and ordered by start time; tool spans become real tool calls with their results.Content capture is opt-in in most instrumentations. If your spans carry only tool names and token counts, the report will say the traces have no content rather than inventing an analysis — turn on content capture and re-export.
A self-contained HTML report: the failure modes discovered in your own traces (not a generic checklist), a heatmap of which traces hit which mode, the exact quoted evidence behind every verdict, and the judge's own reliability numbers. Plus downloadable evals — a promptfoo config, an OpenAI Evals data file, and a portable judge suite — so the analysis turns into a regression suite you keep.