Evaluations, which can be considered a form of automated annotation, are logged as annotations inside of Phoenix. Instead of coming from a “HUMAN” source, they are either “CODE” (aka heuristic) or “LLM” kinds. An evaluation must have a name (e.g. “Q&A Correctness”) and its DataFrame must contain identifiers for the subject of evaluation, e.g. a span or a document (more on that below), and values under either theDocumentation Index
Fetch the complete documentation index at: https://arizeai-433a7140-mikeldking-12899-providers-and-secrets.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
score, label, or explanation columns. An optional metadata column can also be provided.
Connect to Phoenix
Initialize the Phoenix client to connect to your Phoenix instance:Span Evaluations
A dataframe of span evaluations would look similar to the table below. It must containspan_id as an index or as a column. Once ingested, Phoenix uses the span_id to associate the evaluation with its target span.
| span_id | label | score | explanation |
|---|---|---|---|
| 5B8EF798A381 | correct | 1 | ”this is correct …” |
| E19B7EC3GG02 | incorrect | 0 | ”this is incorrect …” |
annotation_name annotator_kind parameters, or as columns with the same names in the dataframe.
Document Evaluations
A dataframe of document evaluations would look something like the table below. It must containspan_id and document_position as either indices or columns. document_position is the document’s (zero-based) index in the span’s list of retrieved documents. Once ingested, Phoenix uses the span_id and document_position to associate the evaluation with its target span and document.
| span_id | document_position | label | score | explanation |
|---|---|---|---|---|
| 5B8EF798A381 | 0 | relevant | 1 | ”this is …“ |
| 5B8EF798A381 | 1 | irrelevant | 0 | ”this is …” |
| E19B7EC3GG02 | 0 | relevant | 1 | ”this is …” |
Logging Multiple Evaluation DataFrames
Multiple sets of Evaluations can be logged using separate function calls with the new client.annotation_name and annotator_kind as columns, you can vertically concatenate the dataframes and upload them all at once.

