from arize.pandas.logger import Client
from phoenix.evals.utils import to_annotation_dataframe
import pandas as pd
client = Client(api_key="your-arize-api-key", space_id="your-arize-space-id")
root_spans = primary_df[primary_df["parent_id"].isna()][["attributes.session.id", "context.span_id"]]
results_with_spans = pd.merge(
results_df.reset_index(),
root_spans,
left_on="session_id",
right_on="attributes.session.id",
how="left"
).set_index("context.span_id", drop=False)
# Format for logging
correctness_eval_df = to_annotation_dataframe(results_with_spans)
# Using session_eval prefix to rename columns
correctness_eval_df = correctness_eval_df.rename(columns={
"label": "session_eval.correctness.label",
"score": "session_eval.correctness.score",
"explanation": "session_eval.correctness.explanation"
})
client.log_evaluations_sync(correctness_eval_df, "your-project-name")