Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.
You can’t automate a check you haven’t defined. Start by reading real traces in your tracing project, spotting failure patterns, and grouping them into a taxonomy. The labels you collect become ground truth - and the taxonomy tells you which evals are worth building.There are two ways to do this: annotate traces, spans, sessions, datasets, or experiments yourself, or route them to reviewers through a labeling queue.
An annotation is a human label on a trace, span, session, dataset example, or experiment result - a category (Correct / Incorrect), a numeric score, or freeform text. Annotation configs are reusable schemas for those labels, which is what keeps reviews consistent and comparable over time.To add your first one, open Annotation Configs in the left nav and click New Annotation Config. You’ll define:
Name: a clear label for the annotation (e.g. “Correctness”)
Type: categorical, numeric score, or freeform text (up to 1,500 characters)
Optimization direction: Set to maximize if a higher score is better (e.g. accuracy), or minimize if a lower score is better (e.g. error rate). This determines how scores are color-coded in the UI.
Labels and score range: e.g. Correct (1) / Incorrect (0)
Let Alyx set it up for you. Press Cmd+L (macOS) or Ctrl+L (Windows/Linux) to open Alyx and try: “Create an annotation config called helpfulness with values helpful and not helpful” or “Annotate all the error spans”
The same annotation configs work across traces, spans, sessions, dataset examples, and experiment results. See the examples below for ways to annotate span data.
By Arize Skills
By Alyx
By UI
By Code
Use the Arize skills plugin in your coding agent to manage annotation configs and apply annotations without leaving your editor. See the full arize-annotation skill documentation for supported commands. Then ask your agent:
“Create a categorical annotation config called Correctness with correct/incorrect labels”
“List all annotation configs in my space”
“Bulk annotate these spans with their correctness labels”
Use Alyx to help you find common error patterns across your traces. From there you can ask Alyx to annotate spans directly:
“Show me the most common failure patterns in my traces”
“Create an annotation config capturing good and bad responses”
“Annotate spans where the output looks incorrect - a good response is factually accurate and directly answers the user’s question, a bad response is vague, hallucinated, or off-topic”
Open the Spans view and review real outputs. Optionally use filters to focus on a specific span kind, time range, or status. To annotate a span, click the annotate button, and select your config.
Apply annotations via the Python SDK to attach human feedback programmatically.
Note: Annotations can be applied on spans up to 31 days prior to the current day. To apply annotations beyond this lookback window, please reach out to support@arize.com
These are our sample annotations to be logged:
import pandas as pd# Sample annotation df with multiple annotationsannotations_dataframe = pd.DataFrame({ "context.span_id": [ "12345", "67890", ], # Categorical annotation: quality "annotation.quality.label": ["good", "excellent"], "annotation.quality.updated_by": ["annotator_1", "annotator_2"], # Optional notes for each span "annotation.notes": [ "User confirmed the summary was helpful.", "Response was clear and accurate.", ],})
The dataframe flow above writes to spans. To annotate dataset examples or experiment runs, use the dedicated SDK methods, which upsert by annotation config name and accept up to 1000 records per request:
The annotations_dataframe requires the following columns:
context.span_id: The unique identifier of the span to which the annotations should be attached.
Annotation columns use the pattern annotation.NAME.SUFFIX, where NAME is your annotation key (for example quality, correctness, or sentiment) using only letters, numbers, and underscores, and SUFFIX is one of the field types below:
SUFFIX defines the type and metadata of the annotation. Valid suffixes are:
label: For categorical annotations (for example, _good_, _bad_, _spam_). The value should be a string.
score: For numerical annotations (for example, a rating from 1–5). The value should be numeric (int or float).
You must provide at least one annotation.NAME.label or annotation.NAME.score column for each annotation you want to log.
updated_by (Optional): A string indicating who made the annotation (for example, user_id_123 or annotator_team_a). If not provided, the SDK automatically sets this to SDK Logger.
updated_at (Optional): A timestamp indicating when the annotation was made, represented as milliseconds since the Unix epoch (integer). If not provided, the SDK automatically sets this to the current UTC time.
annotation.notes (Optional): A column containing free-form text notes that apply to the entire span, not a specific annotation label or score. The value should be a string.
An example annotation data dictionary would look like:
# Assume TARGET_SPAN_ID holds the ID of the span you want to annotateTARGET_SPAN_ID = "3461a49d-e0c3-469a-837b-d83f4a606543"annotation_data = { "context.span_id": [TARGET_SPAN_ID], # Annotation 1: Categorical label, let SDK autogenerate updated_by/updated_at "annotation.quality.label": ["good"], # Annotation 2: Categorical label, manually set updated_by "annotation.relevance.label": ["relevant"], "annotation.relevance.updated_by": ["human_annotator_1"], # Annotation 3: Numerical score, let SDK autogenerate updated_by/updated_at "annotation.sentiment_score.score": [4.5], # Optional notes for the span "annotation.notes": ["User confirmed the summary was helpful."],}annotations_dataframe = pd.DataFrame(annotation_data)
Labeling queues are the other way to do human review: reach for one when a subject matter expert or third party should label spans without seeing the full traces view. Reviewers get a focused interface with only what they need to annotate, and the labeled examples become the ground truth you validate evals against.
By Alyx
By UI
Ask Alyx to create a labeling queue, send data to it, and optionally annotate data. For example:
“Send spans where latency is over 5 seconds to my Slow Response labeling queue”
“Send spans where hallucination eval scored 0 to the Hallucination Review queue”
Send data to a labeling queue with Alyx
You can create a labeling queue from the traces or spans table, from within an individual span, or directly from Labeling Queues in the left nav. In all cases you define review instructions, select annotation configs, and assign team members.
After records have been assigned, users with queue update access can change a record’s assignee from the record’s assignee selector. Reassign records to balance review workloads or route work to another annotator when the current annotator is unavailable.
A ground truth dataset is a curated set of labeled examples that captures the range of behaviors your system should and should not produce. It gives you a stable benchmark for validating automated evaluators and a reusable dataset to run experiments against as your prompts and models evolve.
By Alyx
By UI
Ask Alyx to create a dataset from spans of interest, append spans to an existing dataset, or suggest examples that cover edge cases for your rubric.Example prompts:
“Create a dataset from the spans I filtered in this trace view and include inputs and outputs”
“Append these high-error spans to my regression benchmark dataset”
“Suggest 20 diverse examples for a golden dataset based on my last week’s traces”
Create a golden dataset with Alyx
To build one, filter or search your spans in Tracing to find representative examples. Select rows and use Add to Dataset to create a new dataset or append to an existing one - span fields map to columns you can edit. Open the dataset from the left nav to review rows, add reference output columns, and version the dataset as labels stabilize.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Arize AX Docs","colors":{"primary":"#7A0047","light":"#FF8AC8","dark":"#FF74BF"},"logo":{"light":"https://mintcdn.com/arize-ax/V-uvingrGLOCK4VD/logo/light.svg?fit=max\u0026auto=format\u0026n=V-uvingrGLOCK4VD\u0026q=85\u0026s=cc58ee9388d5b5253d39b65cc662908f","dark":"https://mintcdn.com/arize-ax/V-uvingrGLOCK4VD/logo/dark.svg?fit=max\u0026auto=format\u0026n=V-uvingrGLOCK4VD\u0026q=85\u0026s=b16a0266f5913934131301a1b60af51e","href":"https://arize.com"},"favicon":"https://mintcdn.com/arize-ax/1gcABHkqP5TIGbru/favicon.ico?fit=max\u0026auto=format\u0026n=1gcABHkqP5TIGbru\u0026q=85\u0026s=aef538e87b54a3c819583bc40acfc2f8","appearance":{"default":"dark"},"background":{"color":{"light":"#FFFFFF","dark":"#0A0A12"}},"navbar":{"links":[],"primary":{"type":"button","label":"Get started","href":"https://app.arize.com/auth/join"}},"footer":{"socials":{"x":"https://x.com/arizeai","bluesky":"https://bsky.app/profile/arize.bsky.social","threads":"https://www.threads.com/@arize.ai","instagram":"https://www.instagram.com/arize_ai","linkedin":"https://www.linkedin.com/company/arizeai","youtube":"https://youtube.com/@arizeai","slack":"https://arize-ai.slack.com/ssb/redirect","website":"https://fosstodon.org/@arizeai"},"links":[{"header":"Support","items":[{"label":"Chat Us On Slack","href":"https://arize-ai.slack.com/ssb/redirect"},{"label":"support@arize.com","href":"mailto:support@arize.com"},{"label":"System Status","href":"https://status.arize.com"}]},{"header":"Get Started","items":[{"label":"Signup For Free","href":"https://arize.com/join"},{"label":"Book A Demo","href":"https://arize.com/request-a-demo"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://arize.com/blog"}]}]},"seo":{"metatags":{"canonical":"https://arize.com/docs"},"indexing":"all"},"fonts":{"heading":{"family":"Geist","weight":600},"body":{"family":"Geist"}},"styling":{"codeblocks":{"theme":{"light":"github-light-default","dark":"github-dark-default"}},"latex":true},"integrations":{"gtm":{"tagId":"GTM-W96XM35"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"arize-ax","hasAudioNarration":false,"actualSubdomain":"arize-ax","customDomains":[],"gitSource":{"type":"github","owner":"arize-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecb71689050d16a725393f","collectionId":"8a5cb569-f22b-4695-a64b-50423639aa75","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecb71689050d16a725393f"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true,"emailDisclaimer":"We will only use your email to follow up with you about this feedback."}},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aecc60b0589123067b441db","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"APIs, SDKs, \u0026 Skills","count":354},{"language":"default","tag":"Get Started","count":243},{"language":"default","tag":"API reference","count":200},{"language":"default","tag":"REST","count":167},{"language":"default","tag":"Endpoints","count":164},{"language":"default","tag":"API clients","count":142},{"language":"default","tag":"Machine Learning","count":139},{"language":"default","tag":"ML observability","count":139},{"language":"default","tag":"Integrations","count":129},{"language":"default","tag":"Guides","count":69}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@arize.com"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6944513fe59e82150b5700b3","deploymentId":"6894ef048eafbd2a7c20796e","questionText":"Need more help? Ask our team in #arize-ax-platform-support on community Slack.","status":"active","generatedBy":"manual","createdAt":"2025-12-18T19:08:47.802Z","updatedAt":"2025-12-18T19:15:01.436Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\nhtml:root{--font-family-mono-custom: 'Geist Mono'}html:root{--gray-50: 248 248 246;--gray-100: 242 242 237;--gray-200: 230 230 223;--gray-300: 205 205 200;--gray-400: 179 179 191;--gray-500: 138 138 150;--gray-600: 91 91 105;--gray-700: 62 62 78;--gray-800: 46 46 61;--gray-900: 21 21 31;--gray-950: 10 10 18}html:root{--ax-radius-sm: 2px;--ax-radius-md: 6px;--ax-radius-lg: 8px;--ax-accent-bg: #FF74BF;--ax-panel: #CDBEF7;--ax-panel-2: #E3DBFC;--ax-panel-code: #FFFFFF;--ax-panel-border: rgba(19, 22, 64, 0.22);--ax-panel-icon: #4827C1;--ax-panel-t1: #121221;--ax-panel-t2: #2A2A38;--ax-panel-accent: #6E1046;--ax-panel-code-kw: #3F4110;--ax-panel-code-flag: #5A3200;--ax-panel-code-url: #004A70;--ax-panel-selection: #FFE9F4}html:not(.dark){--ax-bg: #FFFFFF;--ax-surface: #F8F8F4;--ax-code-bg: #F5F5ED;--ax-chip: #EDEDE2;--ax-line: rgba(19, 22, 64, 0.20);--ax-t1: #121221;--ax-t2: #2E2E3D;--ax-t3: #3E3E4E;--ax-accent: #7A0047;--ax-accent-line: rgba(255, 98, 182, 0.55);--ax-accent-soft: #FFE9F4;--ax-on-accent: #121221;--ax-note: #E8F3EC;--ax-note-line: rgba(30, 70, 50, 0.24);--ax-note-t: #1B4230;--ax-warn: #FBEEE0;--ax-warn-line: rgba(90, 50, 0, 0.24);--ax-warn-t: #54300A;--ax-blue: #E7F3FD;--ax-blue-line: rgba(0, 82, 125, 0.24);--ax-blue-t: #00527D;--ax-danger: #FFEBE9;--ax-danger-line: rgba(207, 34, 46, 0.28);--ax-danger-t: #A40E26}html.dark{--ax-bg: #0A0A12;--ax-surface: #15151F;--ax-code-bg: #05050B;--ax-chip: #221B3A;--ax-line: rgba(247, 247, 252, 0.16);--ax-t1: #F5F5FA;--ax-t2: #DCDCE6;--ax-t3: #B3B3C4;--ax-accent: #FF8AC8;--ax-accent-line: rgba(255, 138, 200, 0.45);--ax-accent-soft: #2A1425;--ax-on-accent: #0A0A12;--ax-note: #10241A;--ax-note-line: rgba(159, 224, 188, 0.30);--ax-note-t: #9FE0BC;--ax-warn: #2A1B0A;--ax-warn-line: rgba(255, 201, 138, 0.30);--ax-warn-t: #FFC98A;--ax-blue: #0A1A24;--ax-blue-line: rgba(57, 195, 255, 0.30);--ax-blue-t: #97D8FF;--ax-danger: #2A0F12;--ax-danger-line: rgba(255, 138, 148, 0.30);--ax-danger-t: #FFB3B8}#content{line-height:1.75}#page-title,#content h1{font-size:clamp(2rem, 1.4rem + 2.1vw, 2.875rem);line-height:1.12;letter-spacing:-0.02em;font-weight:600}#content h2,#content h3,#content h4{letter-spacing:-0.01em;font-weight:600}#content code,#content kbd,#content samp{font-feature-settings:'tnum' 1}#content a:not(.card){color:var(--ax-accent);text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--ax-accent-line);outline-offset:2px}html.dark :focus-visible{outline-color:var(--ax-accent-line)}::selection{background:var(--ax-accent-soft)}#navbar{background:var(--ax-bg);border-bottom:1px solid var(--ax-line)}#navbar div:has(>.nav-tabs){position:relative}#navbar div:has(>.nav-tabs)::before{content:'';position:absolute;top:0;left:50%;width:100vw;margin-left:-50vw;border-top:1px solid var(--ax-line);pointer-events:none}.nav-tabs-item[data-active]{box-shadow:inset 0 -2px 0 var(--ax-accent)}.ax-product-selector{position:relative;display:inline-flex;align-items:stretch;flex:0 0 auto}.ax-product-selector--desktop{margin-left:0.75rem;align-self:center}.page-context-dropdown__label{font-family:inherit;font-weight:400}.page-context-dropdown__chevron>span{display:inline-block;transition:transform 150ms ease}.page-context-dropdown__chevron svg{display:block;width:1rem;height:1rem}.page-context-dropdown__chevron[aria-expanded=\"true\"]>span{transform:rotate(180deg)}.page-context-dropdown__menu{position:absolute;z-index:60;top:calc(100% + 0.55rem);right:0;min-width:12.5rem;padding:0.4rem;background:var(--ax-bg);border:1px solid var(--ax-line);border-radius:var(--ax-radius-md);box-shadow:0 0.75rem 1.5rem rgb(10 10 18 / 0.18)}.ax-product-selector--desktop .page-context-dropdown__menu{right:auto;left:0}.page-context-dropdown__menu[hidden]{display:none}.page-context-dropdown__item{display:flex;align-items:center;justify-content:space-between;min-height:2.5rem;padding:0.55rem 0.65rem;color:var(--ax-t1);border-radius:var(--ax-radius-sm);font-size:0.9375rem;font-weight:400;text-decoration:none;transition:background-color 150ms ease, color 150ms ease}.page-context-dropdown__item:hover,.page-context-dropdown__item:focus-visible{color:var(--ax-accent);background:var(--ax-accent-soft)}.page-context-dropdown__item[data-selected=\"true\"]{color:var(--ax-accent);font-weight:500}.page-context-dropdown__item[data-selected=\"true\"]::after{content:'✓';margin-left:1.5rem;color:var(--ax-accent);font-size:0.875rem}@media (prefers-reduced-motion: reduce){.page-context-dropdown__chevron>span,.page-context-dropdown__item{transition:none}}@media (max-width: 767px){#navbar .ax-product-selector--desktop{display:none}#mobile-nav-content .ax-product-selector--mobile{margin:0.5rem 0 1rem}#mobile-nav-content .page-context-dropdown__label{flex:1 1 auto}#mobile-nav-content .page-context-dropdown__chevron{flex:0 0 auto}#mobile-nav-content .page-context-dropdown__menu{position:static;margin-top:0.4rem}}#topbar-cta-button{background:var(--ax-accent-bg);color:var(--ax-on-accent);border-radius:var(--ax-radius-md);border:none}#topbar-cta-button span,#topbar-cta-button svg{color:var(--ax-on-accent)!important}#search-bar-entry{background:var(--ax-surface);border:1px solid var(--ax-line);border-radius:var(--ax-radius-md)}#assistant-entry{background:var(--ax-surface);border:1px solid var(--ax-accent-line);border-radius:var(--ax-radius-md)}#assistant-entry svg{color:var(--ax-accent)}#page-context-menu,.page-context-dropdown{font-size:0.9375rem;align-items:stretch}#page-context-menu-button,.page-context-dropdown__label{display:inline-flex;align-items:center;padding:10px 14px;border-radius:var(--ax-radius-md) 0 0 var(--ax-radius-md);background:var(--ax-surface);border-color:var(--ax-line);color:var(--ax-t1);border:1px solid var(--ax-line);text-decoration:none}#page-context-menu-button>div{font-size:0.9375rem;gap:9px}#page-context-menu>button[aria-haspopup],.page-context-dropdown__chevron{height:auto;align-self:stretch;aspect-ratio:auto;padding:10px 11px;border-radius:0 var(--ax-radius-md) var(--ax-radius-md) 0;background:var(--ax-surface);border-color:var(--ax-line);color:var(--ax-t3);border:1px solid var(--ax-line);border-left:0;cursor:pointer}#sidebar-content li[data-active]>a{background:var(--ax-accent-soft);color:var(--ax-accent);border-radius:var(--ax-radius-md);font-weight:500}.sidebar-group-header{font-weight:600;color:var(--ax-t1)}.toc-item[data-active],.toc-item[data-active] a{color:var(--ax-accent);font-weight:400}.card.card{background:var(--ax-surface);border-color:var(--ax-line);border-radius:var(--ax-radius-lg);box-shadow:none}.frame.frame{background:var(--ax-surface);border:1px solid var(--ax-line);border-radius:var(--ax-radius-lg)}.accordion.accordion,.accordion-group.accordion-group{border-radius:var(--ax-radius-md);border-color:var(--ax-line)}.accordion.accordion{background:var(--ax-surface)}.code-block.code-block,.code-group.code-group{background:var(--ax-code-bg);border-color:var(--ax-line);border-radius:var(--ax-radius-md)}.code-block-background{background:var(--ax-code-bg)!important}html.dark .code-block-background{background:var(--ax-code-bg)!important}#content :not(pre)>code{background:var(--ax-chip);border-radius:var(--ax-radius-sm)}.code-block:has([data-floating-buttons]) [data-fade-overlay]{background-image:none}[data-floating-buttons] button{background:var(--ax-chip)}.callout .code-block.code-block,.callout .code-group.code-group,.callout .code-block-background,html.dark .callout .code-block-background{background:var(--ax-bg)!important}.callout{border-radius:var(--ax-radius-lg)}.callout[data-callout-type=\"callout\"],.callout[data-callout-type=\"info\"]{background:var(--ax-surface);border-color:var(--ax-line)}.callout[data-callout-type=\"callout\"] [data-component-part=\"callout-content\"],.callout[data-callout-type=\"info\"] [data-component-part=\"callout-content\"]{color:var(--ax-t2)!important}.callout[data-callout-type=\"tip\"],.callout[data-callout-type=\"check\"]{background:var(--ax-note);border-color:var(--ax-note-line)}.callout[data-callout-type=\"tip\"] [data-component-part=\"callout-content\"],.callout[data-callout-type=\"check\"] [data-component-part=\"callout-content\"]{color:var(--ax-note-t)!important}.callout[data-callout-type=\"warning\"]{background:var(--ax-warn);border-color:var(--ax-warn-line)}.callout[data-callout-type=\"warning\"] [data-component-part=\"callout-content\"]{color:var(--ax-warn-t)!important}.callout[data-callout-type=\"note\"]{background:var(--ax-blue);border-color:var(--ax-blue-line)}.callout[data-callout-type=\"note\"] [data-component-part=\"callout-content\"]{color:var(--ax-blue-t)!important}.callout[data-callout-type=\"danger\"]{background:var(--ax-danger);border-color:var(--ax-danger-line)}.callout[data-callout-type=\"danger\"] [data-component-part=\"callout-content\"]{color:var(--ax-danger-t)!important}[data-component-part=\"step-number\"]>div{background:var(--ax-accent-soft);border:1px solid var(--ax-accent-line);color:var(--ax-accent);font-weight:500}.update.update-container{flex-direction:column;gap:0.5rem;border-top:1px solid var(--ax-line)}.update.update-container:first-of-type{border-top:none}.update.update-container>div:first-child{width:100%;position:static}.update.update-container>div:last-child{width:100%;max-width:none}#content th{color:var(--ax-t1);font-weight:600;border-bottom:1px solid var(--ax-line)}#content td{border-bottom:1px solid var(--ax-line)}footer{border-top:1px solid var(--ax-line)}.ax-hero .callout{background:var(--ax-panel);border-color:var(--ax-panel-border);border-radius:var(--ax-radius-lg)}.ax-hero .callout [data-component-part=\"callout-content\"],.ax-hero .callout p,.ax-hero .callout li{color:var(--ax-panel-t2)!important}.ax-hero .callout h2,.ax-hero .callout h3,.ax-hero .callout strong{color:var(--ax-panel-t1)!important}.ax-hero .callout [data-component-part=\"callout-icon\"] svg{background:var(--ax-panel-icon)!important}.ax-hero .code-block,.ax-hero .code-group,.ax-hero .code-block-background{background:var(--ax-panel-code)!important;border-color:var(--ax-panel-border)}.ax-hero .code-block,.ax-hero .code-group{padding:0;overflow:hidden}html.dark .ax-hero .code-block,html.dark .ax-hero .code-group,html.dark .ax-hero .code-block-background,html.dark .ax-hero .shiki,html:not(.dark) .ax-hero .code-block,html:not(.dark) .ax-hero .code-group,html:not(.dark) .ax-hero .code-block-background{background:var(--ax-panel-code)!important}html.dark .ax-hero .shiki,html.dark .ax-hero .shiki span{color:var(--ax-panel-t1)!important}html.dark .ax-hero .shiki span[style*=\"#FFA657\"]{color:var(--ax-panel-code-kw)!important}html.dark .ax-hero .shiki span[style*=\"#79C0FF\"]{color:var(--ax-panel-code-flag)!important}html.dark .ax-hero .shiki span[style*=\"#A5D6FF\"]{color:var(--ax-panel-code-url)!important}.ax-hero .code-group>div:first-child,html.dark .ax-hero .code-group>div:first-child{background:var(--ax-panel-2)!important;border-bottom:1px solid var(--ax-panel-border)}.ax-hero .code-group [role=\"tab\"]{color:var(--ax-panel-t2)!important}.ax-hero .code-group [role=\"tab\"][aria-selected=\"true\"]{color:var(--ax-panel-accent)!important}.ax-hero .code-group [role=\"tab\"][aria-selected=\"true\"]>div:last-child{background:var(--ax-panel-accent)!important}.ax-hero .code-block svg,.ax-hero .code-group svg{color:var(--ax-panel-t2)}html.dark .ax-hero [data-fade-overlay]{background-image:linear-gradient(\n to right,\n rgb(255 255 255 / 0) 0,\n rgb(255 255 255 / 0.2) 10px,\n rgb(255 255 255 / 0.5) 25px,\n rgb(255 255 255 / 0.8) 35px,\n rgb(255 255 255) 45px\n )}.ax-hero .callout a{color:var(--ax-panel-accent)!important}.ax-hero::selection,.ax-hero ::selection{background:var(--ax-panel-selection)}.card-group .card img{max-height:197px!important}.card-group[class$=\"-2\"] .card img{height:160px!important}.card-group[class$=\"-3\"] .card img{height:150px!important}table{display:table!important}.step-title{font-size:1.5rem!important}"}],"page":{"pagePath":"ax/evaluate/human-review","slug":"/ax/evaluate/human-review","pageMetadata":{"title":"Human review","sidebarTitle":"Human review","description":"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.","href":"/ax/evaluate/human-review"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,CodeBlock,CodeGroup,Danger,Frame,Heading,OptimizedImage,Tab,Tabs,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Danger)_missingMdxReference(`Danger`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`You can’t automate a check you haven’t defined. Start by reading real traces in your `,_jsx(_components.a,{href:`/ax/observe/tracing/view-and-manage-traces`,children:`tracing project`}),`, spotting failure patterns, and grouping them into a taxonomy. The labels you collect become ground truth - and the taxonomy tells you which `,_jsx(_components.a,{href:`/ax/evaluate/create-evaluators`,children:`evals are worth building`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`There are two ways to do this: `,_jsx(_components.strong,{children:`annotate traces, spans, sessions, datasets, or experiments yourself`}),`, or route them to reviewers through a `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`#labeling-queues`,children:`labeling queue`})}),`.`]}),`\n`,_jsx(Frame,{caption:`Annotation Configs`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/human%20judgement.png`,alt:`Arize AX Annotation Configs page with a table of reusable configs showing names, label values as colored pills, created by, timestamps, tags, and New Annotation Config in the header`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-an-annotation`,children:`What is an annotation`}),`\n`,_jsxs(_components.p,{children:[`An annotation is a human label on a trace, span, session, dataset example, or experiment result - a category (Correct / Incorrect), a numeric score, or freeform text. `,_jsx(_components.strong,{children:`Annotation configs`}),` are reusable schemas for those labels, which is what keeps reviews consistent and comparable over time.`]}),`\n`,_jsxs(_components.p,{children:[`To add your first one, open `,_jsx(_components.strong,{children:`Annotation Configs`}),` in the left nav and click `,_jsx(_components.strong,{children:`New Annotation Config`}),`. You’ll define:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Name:`}),` a clear label for the annotation (e.g. “Correctness”)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type:`}),` categorical, numeric score, or freeform text (up to 1,500 characters)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Optimization direction:`}),` Set to `,_jsx(_components.strong,{children:`maximize`}),` if a higher score is better (e.g. accuracy), or `,_jsx(_components.strong,{children:`minimize`}),` if a lower score is better (e.g. error rate). This determines how scores are color-coded in the UI.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Labels and score range:`}),` e.g. Correct (1) / Incorrect (0)`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/annotation_config.png`,alt:`New Annotation Config form with fields for name, type, optimization direction, and label values`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Let Alyx set it up for you.`}),` Press `,_jsx(_components.strong,{children:`Cmd+L`}),` (macOS) or `,_jsx(_components.strong,{children:`Ctrl+L`}),` (Windows/Linux) to open `,_jsx(_components.a,{href:`/ax/alyx`,children:`Alyx`}),` and try: `,_jsx(_components.em,{children:`“Create an annotation config called helpfulness with values helpful and not helpful”`}),` or `,_jsx(_components.em,{children:`“Annotate all the error spans”`})]})}),`\n`,_jsx(Heading,{level:`2`,id:`annotate-your-spans`,children:`Annotate your data`}),`\n`,_jsx(_components.p,{children:`The same annotation configs work across traces, spans, sessions, dataset examples, and experiment results. See the examples below for ways to annotate span data.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`By Arize Skills`,id:`by-arize-skills`,children:[_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/ax/skills/overview`,children:`Arize skills plugin`}),` in your coding agent to manage annotation configs and apply annotations without leaving your editor. See the full `,_jsx(_components.a,{href:`https://github.com/Arize-ai/arize-skills/blob/main/skills/arize-annotation/SKILL.md`,children:`arize-annotation skill documentation`}),` for supported commands. Then ask your agent:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Create a categorical annotation config called Correctness with correct/incorrect labels”`}),`\n`,_jsx(_components.li,{children:`“List all annotation configs in my space”`}),`\n`,_jsx(_components.li,{children:`“Bulk annotate these spans with their correctness labels”`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.img,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/config-new.png`,alt:`Coding agent terminal using the Arize skills plugin to create annotation configs with the ax CLI`})})]}),_jsxs(Tab,{title:`By Alyx`,id:`by-alyx`,children:[_jsxs(_components.p,{children:[`Use `,_jsx(_components.a,{href:`/ax/alyx/meet-alyx`,children:`Alyx`}),` to help you find common error patterns across your traces. From there you can ask Alyx to annotate spans directly:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Show me the most common failure patterns in my traces”`}),`\n`,_jsx(_components.li,{children:`“Create an annotation config capturing good and bad responses”`}),`\n`,_jsx(_components.li,{children:`“Annotate spans where the output looks incorrect - a good response is factually accurate and directly answers the user’s question, a bad response is vague, hallucinated, or off-topic”`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/config_alyx.png`,alt:`Eval Traces view with Alyx in the side panel analyzing errors and proposing an annotation config to label data`})})]}),_jsxs(Tab,{title:`By UI`,id:`by-ui`,children:[_jsxs(_components.p,{children:[`Open the `,_jsx(_components.a,{href:`/ax/observe/tracing/spans`,children:`Spans`}),` view and review real outputs. Optionally use filters to focus on a specific span kind, time range, or status. To annotate a span, click the annotate button, and select your config.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/trace_config.png`,alt:`Trace detail view with span input and output and the Annotations panel open to select correctness labels`})})]}),_jsxs(Tab,{title:`By Code`,id:`by-code`,children:[_jsx(_components.p,{children:`Apply annotations via the Python SDK to attach human feedback programmatically.`}),_jsx(Danger,{children:_jsxs(_components.p,{children:[`Note: Annotations can be applied on spans up to 31 days prior to the current day. To apply annotations beyond this lookback window, please reach out to `,_jsx(_components.a,{href:`mailto:support@arize.com`,children:`support@arize.com`})]})}),_jsx(_components.p,{children:`These are our sample annotations to be logged:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default github-dark-default`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0d1117`,color:`#1f2328`,\"--shiki-dark\":`#e6edf3`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` pandas `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` pd`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:`# Sample annotation df with multiple annotations`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`annotations_dataframe `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` pd.DataFrame({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"context.span_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"12345\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"67890\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Categorical annotation: quality`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.quality.label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"good\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"excellent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.quality.updated_by\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"annotator_1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"annotator_2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Optional notes for each span`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.notes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"User confirmed the summary was helpful.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"Response was clear and accurate.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`})`})}),`\n`]})})}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python SDK v8`,numberOfLines:`10`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default github-dark-default`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0d1117`,color:`#1f2328`,\"--shiki-dark\":`#e6edf3`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` arize `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` ArizeClient`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` ArizeClient(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:`api_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-arize-api-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` client.spans.update_annotations(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` space_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-arize-space-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` project_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-project-name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` dataframe`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`annotations_dataframe,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` validate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python SDK v7`,numberOfLines:`12`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default github-dark-default`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0d1117`,color:`#1f2328`,\"--shiki-dark\":`#e6edf3`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` arize.pandas.logger `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` Client`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`arize_client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` Client(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` space_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-arize-space-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` api_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-arize-api-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` arize_client.log_annotations(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` dataframe`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`annotations_dataframe,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` project_name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your-project-name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` validate`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`)`})}),`\n`]})})})]}),_jsx(_components.p,{children:`The dataframe flow above writes to spans. To annotate dataset examples or experiment runs, use the dedicated SDK methods, which upsert by annotation config name and accept up to 1000 records per request:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Python`}),` - `,_jsx(_components.a,{href:`/api-clients/python/version-8/client-resources/datasets#annotate-dataset-examples`,children:_jsx(_components.code,{children:`client.datasets.annotate_examples()`})}),` and `,_jsx(_components.a,{href:`/api-clients/python/version-8/client-resources/experiments#annotate-experiment-runs`,children:_jsx(_components.code,{children:`client.experiments.annotate_runs()`})})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TypeScript`}),` - `,_jsx(_components.a,{href:`/api-clients/typescript/version-1/client-resources/datasets`,children:_jsx(_components.code,{children:`annotateDatasetExamples()`})}),` and `,_jsx(_components.a,{href:`/api-clients/typescript/version-1/client-resources/experiments`,children:_jsx(_components.code,{children:`annotateExperimentRuns()`})})]}),`\n`]}),_jsx(`span`,{id:`annotations-dataframe-schema`}),_jsxs(Accordion,{title:`Annotations Dataframe Schema`,id:`annotations-dataframe-schema`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`annotations_dataframe`}),` requires the following columns:`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`context.span_id`}),`: The unique identifier of the span to which the annotations should be attached.`]}),`\n`,_jsxs(_components.li,{children:[`Annotation columns use the pattern `,_jsx(_components.code,{children:`annotation.NAME.SUFFIX`}),`, where `,_jsx(_components.strong,{children:`NAME`}),` is your annotation key (for example `,_jsx(_components.code,{children:`quality`}),`, `,_jsx(_components.code,{children:`correctness`}),`, or `,_jsx(_components.code,{children:`sentiment`}),`) using only letters, numbers, and underscores, and `,_jsx(_components.strong,{children:`SUFFIX`}),` is one of the field types below:`]}),`\n`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SUFFIX`}),` defines the type and metadata of the annotation. Valid suffixes are:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`label`}),`: For categorical annotations (for example, `,_jsx(_components.code,{children:`_good_`}),`, `,_jsx(_components.code,{children:`_bad_`}),`, `,_jsx(_components.code,{children:`_spam_`}),`). The value should be a string.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`score`}),`: For numerical annotations (for example, a rating from 1–5). The value should be numeric (int or float).`]}),`\n`,_jsxs(_components.li,{children:[`You must provide at least one `,_jsx(_components.code,{children:`annotation.NAME.label`}),` or `,_jsx(_components.code,{children:`annotation.NAME.score`}),` column for each annotation you want to log.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`updated_by`}),` (Optional): A string indicating who made the annotation (for example, `,_jsx(_components.code,{children:`user_id_123`}),` or `,_jsx(_components.code,{children:`annotator_team_a`}),`). If not provided, the SDK automatically sets this to `,_jsx(_components.code,{children:`SDK Logger`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`updated_at`}),` (Optional): A timestamp indicating when the annotation was made, represented as milliseconds since the Unix epoch (integer). If not provided, the SDK automatically sets this to the current UTC time.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`annotation.notes`}),` (Optional): A column containing free-form text notes that apply to the entire span, not a specific annotation label or score. The value should be a string.`]}),`\n`]}),_jsx(_components.p,{children:`An example annotation data dictionary would look like:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default github-dark-default`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0d1117`,color:`#1f2328`,\"--shiki-dark\":`#e6edf3`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:`# Assume TARGET_SPAN_ID holds the ID of the span you want to annotate`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`TARGET_SPAN_ID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"3461a49d-e0c3-469a-837b-d83f4a606543\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`annotation_data `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"context.span_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`TARGET_SPAN_ID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Annotation 1: Categorical label, let SDK autogenerate updated_by/updated_at`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.quality.label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"good\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Annotation 2: Categorical label, manually set updated_by`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.relevance.label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"relevant\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.relevance.updated_by\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"human_annotator_1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Annotation 3: Numerical score, let SDK autogenerate updated_by/updated_at`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.sentiment_score.score\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`4.5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:` # Optional notes for the span`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"annotation.notes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"User confirmed the summary was helpful.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`annotations_dataframe `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` pd.DataFrame(annotation_data)`})]}),`\n`]})})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`labeling-queues`,children:`Labeling queues`}),`\n`,_jsx(_components.p,{children:`Labeling queues are the other way to do human review: reach for one when a subject matter expert or third party should label spans without seeing the full traces view. Reviewers get a focused interface with only what they need to annotate, and the labeled examples become the ground truth you validate evals against.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`By Alyx`,id:`by-alyx-2`,children:[_jsx(_components.p,{children:`Ask Alyx to create a labeling queue, send data to it, and optionally annotate data. For example:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Send spans where latency is over 5 seconds to my Slow Response labeling queue”`}),`\n`,_jsx(_components.li,{children:`“Send spans where hallucination eval scored 0 to the Hallucination Review queue”`}),`\n`]}),_jsx(Frame,{caption:`Send data to a labeling queue with Alyx`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/alyx%20-%20send%20data%20to%20queue.png`,alt:`Tracing view with eval filter applied and Alyx sidebar suggesting sending low-scoring hallucination spans to the Hallucination Review labeling queue`})})]}),_jsxs(Tab,{title:`By UI`,id:`by-ui-2`,children:[_jsxs(_components.p,{children:[`You can create a labeling queue from the traces or spans table, from within an individual span, or directly from `,_jsx(_components.strong,{children:`Labeling Queues`}),` in the left nav. In all cases you define review instructions, select annotation configs, and assign team members.`]}),_jsx(Frame,{caption:`Select traces then add them to a labeling queue`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/create%20queue%20from%20trace.png`,alt:`Playground Traces table with rows selected and the footer action bar showing Send to Labeling Queue and Add to Dataset`})}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/create_queue.png`,alt:`New Labeling Queue modal with queue name, annotation configs, instructions, assignment method, and annotator selection`})}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/queues.png`,alt:`Labeling queue open with a records table showing assignees and completed or pending status for each record`})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`reassign-records`,children:`Reassign records`}),`\n`,_jsx(_components.p,{children:`After records have been assigned, users with queue update access can change a record’s assignee from the record’s assignee selector. Reassign records to balance review workloads or route work to another annotator when the current annotator is unavailable.`}),`\n`,_jsx(Heading,{level:`3`,id:`build-a-ground-truth-dataset`,children:`Build a ground truth dataset`}),`\n`,_jsx(_components.p,{children:`A ground truth dataset is a curated set of labeled examples that captures the range of behaviors your system should and should not produce. It gives you a stable benchmark for validating automated evaluators and a reusable dataset to run experiments against as your prompts and models evolve.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`By Alyx`,id:`by-alyx-3`,children:[_jsx(_components.p,{children:`Ask Alyx to create a dataset from spans of interest, append spans to an existing dataset, or suggest examples that cover edge cases for your rubric.`}),_jsx(_components.p,{children:`Example prompts:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“Create a dataset from the spans I filtered in this trace view and include inputs and outputs”`}),`\n`,_jsx(_components.li,{children:`“Append these high-error spans to my regression benchmark dataset”`}),`\n`,_jsx(_components.li,{children:`“Suggest 20 diverse examples for a golden dataset based on my last week’s traces”`}),`\n`]}),_jsx(Frame,{caption:`Create a golden dataset with Alyx`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/Use%20Alyx%20-%20golden%20dataset.png`,alt:`Tracing view with span filter applied and Alyx sidebar offering to create a golden dataset from factual spans, with preview table and Accept and Create Dataset action`})})]}),_jsxs(Tab,{title:`By UI`,id:`by-ui-3`,children:[_jsx(_components.p,{children:`To build one, filter or search your spans in Tracing to find representative examples. Select rows and use Add to Dataset to create a new dataset or append to an existing one - span fields map to columns you can edit. Open the dataset from the left nav to review rows, add reference output columns, and version the dataset as labels stabilize.`}),_jsx(Frame,{caption:`Filter spans`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/filter.png`,alt:`Tracing Traces tab with Span Query bar filtering on eval label, summary counts, and traces table`})}),_jsx(Frame,{caption:`Add to dataset`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/evaluate/create%20golden%20dataset%20UI.png`,alt:`Traces table with rows selected and footer showing Add to Dataset with option to append to an existing golden dataset or create a new dataset`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`further-reading`,children:`Further reading`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://hamel.dev/blog/posts/evals-faq/#q-why-is-error-analysis-so-important-in-llm-evals-and-how-is-it-performed`,children:`Hamel Husain: Why is “error analysis” so important in LLM evals?`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light-default","dark":"github-dark-default"}},"config":{},"pageMetadata":{"title":"Human review","sidebarTitle":"Human review","description":"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.","href":"/ax/evaluate/human-review"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is an annotation","slug":"what-is-an-annotation","depth":2,"children":[]},{"title":"Annotate your data","slug":"annotate-your-spans","depth":2,"children":[]},{"title":"Labeling queues","slug":"labeling-queues","depth":2,"children":[{"title":"Reassign records","slug":"reassign-records","depth":3,"children":[]},{"title":"Build a ground truth dataset","slug":"build-a-ground-truth-dataset","depth":3,"children":[]}]},{"title":"Further reading","slug":"further-reading","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/arize-ax/6a30b7a67da02161/analytics.js","/docs/_mintlify/custom/arize-ax/67a4d27b62fababa/product-selector.js"],"subdomain":"arize-ax","siteName":"Arize AX Docs","title":"Human review - Arize AX Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-28T07:40:10.761Z","originalFileLocation":"ax/evaluate/human-review.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Arize AX Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Human review - Arize AX Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Arize AX Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://arize.com/docs/ax/evaluate/human-review\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://arize-ax.mintlify.app/_mintlify/api/og/v2?division=Evaluate\u0026amp;title=Human+review\u0026amp;description=Read+real+traces%2C+label+what+went+wrong%2C+and+turn+those+labels+into+the+ground+truth+your+evals+are+measured+against.\u0026amp;theme=95c8f62533e1d113476c56a7\u0026amp;signature=012215ac8ae01f847656ae42d12ad0d569c3d79e9e6821cefaf41de416042477\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Human review - Arize AX Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://arize-ax.mintlify.app/_mintlify/api/og/v2?division=Evaluate\u0026amp;title=Human+review\u0026amp;description=Read+real+traces%2C+label+what+went+wrong%2C+and+turn+those+labels+into+the+ground+truth+your+evals+are+measured+against.\u0026amp;theme=95c8f62533e1d113476c56a7\u0026amp;signature=012215ac8ae01f847656ae42d12ad0d569c3d79e9e6821cefaf41de416042477\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/arize-ax/vxzD83QsbAzzm43O/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Arize AX Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7A0047\">\u003clink data-mint-head rel=\"canonical\" href=\"https://arize.com/docs/ax/evaluate/human-review\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ax/evaluate/human-review.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://arize.com/#organization\",\"name\":\"Arize AX Docs\",\"url\":\"https://arize.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/arize-ax/V-uvingrGLOCK4VD/logo/light.svg?fit=max\u0026auto=format\u0026n=V-uvingrGLOCK4VD\u0026q=85\u0026s=cc58ee9388d5b5253d39b65cc662908f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://arize.com/docs#website\",\"name\":\"Arize AX Docs\",\"url\":\"https://arize.com/docs\",\"publisher\":{\"@id\":\"https://arize.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://arize.com/docs/ax/evaluate/human-review#webpage\",\"url\":\"https://arize.com/docs/ax/evaluate/human-review\",\"name\":\"Human review\",\"description\":\"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\",\"dateModified\":\"2026-08-28T07:40:10.761Z\",\"isPartOf\":{\"@id\":\"https://arize.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://arize.com/docs/ax/evaluate/human-review#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://arize.com/docs/ax/evaluate/human-review#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evaluate\",\"item\":\"https://arize.com/docs/ax/evaluate/what-are-evals\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Human review\",\"item\":\"https://arize.com/docs/ax/evaluate/human-review\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://arize.com/docs/ax/evaluate/human-review#article\",\"headline\":\"Human review\",\"name\":\"Human review\",\"description\":\"Read real traces, label what went wrong, and turn those labels into the ground truth your evals are measured against.\",\"url\":\"https://arize.com/docs/ax/evaluate/human-review\",\"mainEntityOfPage\":{\"@id\":\"https://arize.com/docs/ax/evaluate/human-review#webpage\"},\"dateModified\":\"2026-08-28T07:40:10.761Z\",\"publisher\":{\"@id\":\"https://arize.com/#organization\"},\"isPartOf\":{\"@id\":\"https://arize.com/docs#website\"}}]}\u003c/script>","siteName":"Arize AX Docs","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Arize AX","sidebarTitle":"What is Arize AX?","href":"/ax"},{"group":"Quickstart","expanded":true,"pages":[{"title":"Observe your agent","sidebarTitle":"Observe your agent","href":"/ax/get-started/get-started-tracing"},{"title":"Evaluate production traffic","sidebarTitle":"Evaluate production traffic","href":"/ax/get-started/get-started-evaluations"},{"title":"Run evals on experiments","sidebarTitle":"Run evals on experiments","href":"/ax/get-started/get-started-improve-your-agent"},{"title":"Signal to find issues","sidebarTitle":"Signal to find issues","href":"/ax/get-started/get-started-managed-agent"},{"title":"Arize AX for Agents","href":"/ax/set-up-with-ai-assistants"},{"group":"Alyx","pages":[{"title":"Alyx","sidebarTitle":"Get Started","href":"/ax/alyx"},{"title":"Alyx Learn More","sidebarTitle":"Learn More","href":"/ax/alyx-learn-more"}]}]},{"group":"Instrument","pages":[{"title":"Tracing Concepts","sidebarTitle":"Tracing concepts","href":"/ax/instrument/what-are-traces"},{"title":"Auto-Instrumentation","sidebarTitle":"Auto-instrumentation","href":"/ax/instrument/set-up-tracing"},{"title":"Manual Instrumentation","sidebarTitle":"Manual instrumentation","href":"/ax/instrument/manual-instrumentation"},{"title":"Customize Your Traces","sidebarTitle":"Customize your traces","href":"/ax/instrument/customize-your-traces"},{"title":"Track Costs","sidebarTitle":"Track costs","href":"/ax/instrument/track-costs"},{"group":"Going Deeper","pages":[{"title":"Set Up Sessions","sidebarTitle":"Set up sessions","href":"/ax/instrument/set-up-sessions"},{"title":"Combining Auto and Manual Instrumentation","sidebarTitle":"Combine auto + manual","href":"/ax/instrument/combining-auto-and-manual"},{"title":"Setup Agent Trajectory and Path","sidebarTitle":"Agent trajectory and path","href":"/ax/instrument/agent-trajectory"},{"title":"Configure Your Tracer","sidebarTitle":"Configure your tracer","href":"/ax/instrument/configure-your-tracer"},{"title":"Mask and Redact Sensitive Data","sidebarTitle":"Mask and redact data","href":"/ax/instrument/mask-and-redact-data"},{"title":"Sync traces with Data Fabric","sidebarTitle":"Data Fabric","href":"/ax/security-and-settings/data-fabric"},{"title":"Guardrails","href":"/ax/security-and-settings/llm-security/guardrails"},{"title":"Advanced Tracing Patterns","sidebarTitle":"Advanced patterns","href":"/ax/instrument/advanced-patterns"}]}]},{"group":"Observe","pages":[{"title":"Explore Your Traces","sidebarTitle":"Explore your traces","href":"/ax/observe/tracing/view-and-manage-traces"},{"title":"Create Custom Views","sidebarTitle":"Create custom views","href":"/ax/observe/create-custom-views"},{"title":"Observe coding agents","href":"/ax/observe/coding-agents"},{"title":"Set Up Custom Metrics","sidebarTitle":"Set up custom metrics","href":"/ax/observe/projects/custom-metrics-api"},{"title":"Set Up Dashboards","sidebarTitle":"Set up dashboards","href":"/ax/observe/dashboards"},{"group":"Continuously monitor","pages":[{"title":"Continuously Monitor","sidebarTitle":"Overview","href":"/ax/observe/production-monitoring"},{"title":"Slack","href":"/ax/observe/production-monitoring/alerting-integrations/slack"},{"title":"Slack (self-hosted)","href":"/ax/observe/production-monitoring/alerting-integrations/slack/onprem"},{"title":"PagerDuty","href":"/ax/observe/production-monitoring/alerting-integrations/pagerduty"},{"title":"OpsGenie","href":"/ax/observe/production-monitoring/alerting-integrations/opsgenie"},{"title":"Microsoft Teams","href":"/ax/observe/production-monitoring/alerting-integrations/teams"}]}]},{"group":"Agents","pages":[{"title":"Signal","sidebarTitle":"Signal","href":"/ax/observe/signal"},{"title":"Cost Agent","sidebarTitle":"Cost agent","href":"/ax/agents/cost-agent"},{"title":"Eval Health Agent","sidebarTitle":"Eval Health agent","href":"/ax/agents/eval-health-agent"},{"title":"Dataset Coverage Agent","sidebarTitle":"Dataset Coverage agent","href":"/ax/agents/dataset-coverage-agent"},{"title":"Managed agents","href":"/ax/agents/build-your-own-agent"},{"title":"Connect your harness","sidebarTitle":"Connect your harness","href":"/ax/agents/connect-your-harness"}]},{"group":"Evaluate","pages":[{"title":"What are evals?","sidebarTitle":"What are evals?","description":"A trace tells you what your AI agent did. An eval tells you whether what it did was good.","href":"/ax/evaluate/what-are-evals"},{"title":"Human review","sidebarTitle":"Human review","href":"/ax/evaluate/human-review"},{"group":"Build evals","pages":[{"title":"Build evals","sidebarTitle":"Overview","description":"The failure you need to catch decides which kind of evaluator you build, and the unit it scores - a span, a trace, a session, or an experiment.","href":"/ax/evaluate/create-evaluators"},{"title":"LLM-as-a-judge","sidebarTitle":"LLM-as-a-judge","href":"/ax/evaluate/evaluators/llm-as-a-judge"},{"title":"Code evals","sidebarTitle":"Code","href":"/ax/evaluate/evaluators/code-evaluations"},{"title":"Agent-as-a-judge","sidebarTitle":"Agent-as-a-judge","href":"/ax/evaluate/agent-as-a-judge"},{"title":"Decision Judge","sidebarTitle":"Decision Judge","href":"/ax/evaluate/decision-judge"},{"title":"Remote evaluators","sidebarTitle":"Remote","href":"/ax/evaluate/remote-evaluators"},{"title":"Trace and session evals","sidebarTitle":"Trace and session evals","href":"/ax/evaluate/trace-and-session-evals"}]},{"group":"Run evals on your data","pages":[{"title":"Run evals on your data","sidebarTitle":"Overview","href":"/ax/evaluate/run-evals"},{"title":"Run online evals on traces","sidebarTitle":"Online evals","href":"/ax/evaluate/run-evals-on-traces"},{"title":"Run offline evals on experiments","sidebarTitle":"Offline evals","href":"/ax/evaluate/run-evals-on-experiments"}]},{"title":"Align evals to human feedback","href":"/ax/evaluate/align-evals-to-human-feedback"},{"title":"View eval results and costs","sidebarTitle":"Results and costs","href":"/ax/evaluate/results-and-costs"}]},{"group":"Experimentation","pages":[{"title":"Build a dataset","href":"/ax/improve/build-a-dataset"},{"group":"Create an experiment","pages":[{"title":"Code experiments","href":"/ax/improve/code-experiments"},{"group":"Remote agent experiments","pages":[{"title":"Remote agent experiments","sidebarTitle":"Overview","href":"/ax/improve/remote-agent-experiments"},{"title":"Connect a remote agent","href":"/ax/improve/setup-agent-endpoint"},{"title":"Agent playground","href":"/ax/improve/agent-playground"},{"title":"Trace context for remote agent experiments","href":"/ax/improve/agent-tracing-context"}]},{"title":"Prompt playground","href":"/ax/improve/prompt-playground"}]},{"group":"CI/CD with experiments","pages":[{"title":"CI/CD with experiments","sidebarTitle":"Overview","href":"/ax/improve/ci-cd-for-automated-experiments"},{"title":"Azure DevOps CI/CD Basics","href":"/ax/improve/azure-devops-ci-cd"},{"title":"Github Action Basics","href":"/ax/improve/github-action-basics"},{"title":"Gitlab CI/CD Basics","href":"/ax/improve/gitlab-ci-cd-basics"},{"title":"Jenkins CI/CD Basics","href":"/ax/improve/jenkins-integration"},{"title":"Harness CI/CD Basics","href":"/ax/improve/harness-ci-cd"}]}]},{"group":"Settings","pages":[{"title":"General Settings","href":"/ax/security-and-settings/general-settings"},{"title":"API and Service Keys","href":"/ax/security-and-settings/api-keys"},{"title":"Webhooks","href":"/ax/security-and-settings/webhooks"},{"group":"AI Provider Integrations","pages":[{"title":"AI Provider Integrations Overview","sidebarTitle":"Overview","href":"/ax/security-and-settings/integrations-playground/overview"},{"title":"Anthropic","href":"/ax/security-and-settings/integrations-playground/anthropic"},{"title":"AWS Bedrock","href":"/ax/security-and-settings/integrations-playground/aws-bedrock"},{"title":"Azure OpenAI","href":"/ax/security-and-settings/integrations-playground/azure-openai"},{"title":"Cursor","sidebarTitle":"Cursor","href":"/ax/security-and-settings/integrations-playground/cursor"},{"title":"Databricks","href":"/ax/security-and-settings/integrations-playground/databricks"},{"title":"Doubleword","href":"/ax/security-and-settings/integrations-playground/doubleword"},{"title":"Fireworks AI","href":"/ax/security-and-settings/integrations-playground/fireworks"},{"title":"Gemini","href":"/ax/security-and-settings/integrations-playground/gemini"},{"title":"Gravitee","href":"/ax/security-and-settings/integrations-playground/gravitee"},{"title":"LiteLLM","href":"/ax/security-and-settings/integrations-playground/litellm"},{"title":"NVIDIA","href":"/ax/security-and-settings/integrations-playground/nvidia-nim"},{"title":"OpenAI","href":"/ax/security-and-settings/integrations-playground/openai"},{"title":"OpenRouter","href":"/ax/security-and-settings/integrations-playground/openrouter"},{"title":"OrcaRouter","href":"/ax/security-and-settings/integrations-playground/orcarouter"},{"title":"Together AI","href":"/ax/security-and-settings/integrations-playground/together-ai"},{"title":"TrueFoundry","href":"/ax/security-and-settings/integrations-playground/truefoundry"},{"title":"TypeSafe AI","sidebarTitle":"TypeSafe AI","href":"/ax/security-and-settings/integrations-playground/typesafe"},{"title":"VertexAI","href":"/ax/security-and-settings/integrations-playground/vertexai"},{"title":"Custom Model Endpoints","href":"/ax/security-and-settings/integrations-playground/custom-llm-models"}]},{"title":"Pricing and Usage","sidebarTitle":"Pricing and Usage","href":"/ax/security-and-settings/pricing-and-usage"},{"title":"adb, the database behind Arize AX","sidebarTitle":"adb","href":"/ax/security-and-settings/adb"},{"title":"Space rate limiting","href":"/ax/security-and-settings/space-rate-limiting"},{"title":"Tags","href":"/ax/security-and-settings/tags"}]},{"group":"Security","pages":[{"title":"LLM Red Teaming","href":"/ax/security-and-settings/llm-security/llm-red-teaming"},{"group":"SSO \u0026 RBAC","pages":[{"title":"SSO \u0026 RBAC","sidebarTitle":"Overview","href":"/ax/security-and-settings/sso-and-rbac"},{"title":"Custom Roles","href":"/ax/security-and-settings/sso-and-rbac/custom-roles"},{"title":"Resource Restrictions","href":"/ax/security-and-settings/sso-and-rbac/resource-restrictions"},{"title":"RBAC REST API","sidebarTitle":"REST API","href":"/ax/security-and-settings/sso-and-rbac/rbac-rest-api"},{"title":"SAML Configuration","href":"/ax/security-and-settings/sso-and-rbac/saml-configuration"},{"title":"Setting Up SSO with Okta","href":"/ax/security-and-settings/sso-and-rbac/setting-up-sso-with-okta"}]},{"title":"Arize Private Connect","href":"/ax/security-and-settings/arize-private-connect"},{"group":"Compliance","pages":[{"title":"Compliance","sidebarTitle":"Overview","href":"/ax/security-and-settings/compliance"},{"title":"Arize Audit Log","href":"/ax/security-and-settings/compliance/arize-audit-log"},{"title":"Delete Traces with Sensitive Data","href":"/ax/security-and-settings/compliance/delete-traces-with-sensitive-data"}]},{"title":"Data Regions \u0026 Whitelisting","href":"/ax/security-and-settings/whitelisting"}]},{"group":"Machine Learning","pages":[{"group":"ML observability","pages":[{"title":"ML observability","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning"},{"title":"User guide: ML","href":"/ax/machine-learning/machine-learning/what-is-ml-observability"},{"title":"Quickstart: ML","href":"/ax/machine-learning/machine-learning/quickstart"},{"group":"Concepts: ML","pages":[{"title":"Concepts: ML","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/concepts-ml"},{"title":"What is a Model Schema","href":"/ax/machine-learning/machine-learning/concepts-ml/model-schema-reference"},{"title":"Delayed Actuals and Tags","href":"/ax/machine-learning/machine-learning/concepts-ml/how-to-send-delayed-actuals"},{"title":"ML Glossary","href":"/ax/machine-learning/machine-learning/concepts-ml/glossary"}]},{"group":"How To: ML","pages":[{"title":"How to: ML","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml"},{"group":"Upload Data to Arize AX","pages":[{"title":"Upload data to Arize","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize"},{"title":"Pandas SDK Example","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/log-directly-via-sdk-api"},{"group":"Local File Upload","pages":[{"title":"Local File Upload","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/ui-drag-and-drop"},{"title":"File Upload FAQ","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/ui-drag-and-drop/ui-drag-and-drop-faq"}]},{"title":"Table Ingestion Tuning","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/table-ingestion-tuning"},{"title":"Wildcard Paths for Cloud Storage","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/wildcard-paths-for-cloud-storage"},{"title":"Troubleshoot Data Upload","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/faq-and-troubleshoot-data-upload"},{"title":"Sending Data FAQ","href":"/ax/machine-learning/machine-learning/how-to-ml/upload-data-to-arize/sending-data-faq"}]},{"group":"Monitors","pages":[{"title":"Monitors","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors"},{"title":"ML Monitor Types","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors/setup"},{"group":"Configure Monitors","pages":[{"title":"Configure Monitors","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors/configure-monitors"},{"title":"Notifications and integrations","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors/configure-monitors/notifications-and-integrations"}]},{"title":"Programmatically Create Monitors","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors/monitors-api"},{"title":"Best Practices for Monitors","href":"/ax/machine-learning/machine-learning/how-to-ml/monitors/choosing-your-metrics"}]},{"group":"Dashboards","pages":[{"title":"Dashboards","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards"},{"title":"Dashboard Widgets","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/widgets"},{"group":"Dashboard Templates","pages":[{"title":"Dashboard Templates","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/templates"},{"title":"Model Performance","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/templates/model-performance"},{"title":"Pre Production Performance","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/templates/pre-production-performance"},{"title":"Feature Analysis","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/templates/feature-analysis"},{"title":"Drift","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/templates/drift"}]},{"title":"Programmatically Create Dashboards","href":"/ax/machine-learning/machine-learning/how-to-ml/dashboards/programmatically-create-dashboards"}]},{"group":"Performance Tracing","pages":[{"title":"Performance Tracing","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/performance-tracing"},{"title":"Time Filtering","href":"/ax/machine-learning/machine-learning/how-to-ml/performance-tracing/time-filtering"},{"title":"Alyx: Performance Insights","href":"/ax/machine-learning/machine-learning/how-to-ml/performance-tracing/ai-powered-performance-insights"}]},{"group":"Drift Tracing","pages":[{"title":"Drift tracing","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/drift-tracing"},{"title":"Alyx: Drift Insights","href":"/ax/machine-learning/machine-learning/how-to-ml/drift-tracing/ai-powered-drift-insights"},{"title":"Data Distribution Visualization","href":"/ax/machine-learning/machine-learning/how-to-ml/drift-tracing/data-distribution-visualization"},{"title":"Embeddings for Tabular Data (Multivariate Drift)","href":"/ax/machine-learning/machine-learning/how-to-ml/drift-tracing/embeddings-for-tabular-data-multivariate-drift"}]},{"group":"Custom Metrics","pages":[{"title":"Custom metrics","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api"},{"group":"Arize Query Language Syntax","pages":[{"title":"Arize Query Language Syntax","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/custom-metric-syntax"},{"title":"Conditionals and Filters","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/custom-metric-syntax/conditionals-and-filters"},{"title":"All Operators","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/custom-metric-syntax/all-operators"},{"title":"All Functions","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/custom-metric-syntax/all-functions"}]},{"title":"Custom Metric Examples","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/custom-metric-examples"},{"title":"Custom Metrics Query Language","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/12-custom-metrics"},{"title":"Alyx: ArizeQL Generator","href":"/ax/machine-learning/machine-learning/how-to-ml/custom-metrics-api/arizeql-generator"}]},{"group":"Troubleshoot Data Quality","pages":[{"title":"Troubleshoot data quality","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/data-quality-troubleshooting"},{"title":"Alyx: Data Quality Insights","href":"/ax/machine-learning/machine-learning/how-to-ml/data-quality-troubleshooting/ai-powered-data-quality-insights"}]},{"group":"Explainability","pages":[{"title":"Explainability","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability"},{"title":"Interpreting \u0026 Analyzing Feature Importance Values","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability/interpreting-and-analyzing-feature-importance-values"},{"title":"SHAP","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability/shap"},{"title":"Surrogate Model","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability/surrogate-model"},{"title":"Explainability FAQ","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability/explainability-faq"},{"title":"Model Explainability","href":"/ax/machine-learning/machine-learning/how-to-ml/explainability/explainability"}]},{"title":"Bias Tracing (Fairness)","href":"/ax/machine-learning/machine-learning/how-to-ml/11-bias-tracing-fairness"},{"title":"Automate Model Retraining","href":"/ax/machine-learning/machine-learning/how-to-ml/automate-model-retraining"},{"title":"Feature Store Monitoring","href":"/ax/machine-learning/machine-learning/how-to-ml/feature-store-monitoring"},{"title":"ML FAQ","href":"/ax/machine-learning/machine-learning/how-to-ml/product"}]},{"group":"Use Cases: ML","pages":[{"title":"Use cases: ML","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/use-cases-ml"},{"group":"Binary Classification","pages":[{"title":"Binary Classification","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/use-cases-ml/binary-classification"},{"title":"Fraud","href":"/ax/machine-learning/machine-learning/use-cases-ml/binary-classification/fraud"},{"title":"Insurance","href":"/ax/machine-learning/machine-learning/use-cases-ml/binary-classification/insurance"}]},{"title":"Multi Class Classification","href":"/ax/machine-learning/machine-learning/use-cases-ml/multiclass-classification"},{"group":"Regression","pages":[{"title":"Regression","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/use-cases-ml/regression"},{"title":"Lending","href":"/ax/machine-learning/machine-learning/use-cases-ml/regression/lending"},{"title":"Customer Lifetime Value","href":"/ax/machine-learning/machine-learning/use-cases-ml/regression/customer-lifetime-value"},{"title":"Click Through Rate","href":"/ax/machine-learning/machine-learning/use-cases-ml/regression/click-through-rate"}]},{"group":"Timeseries Forecasting","pages":[{"title":"Timeseries Forecasting","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/use-cases-ml/timeseries-forecasting"},{"title":"Demand Forecasting","href":"/ax/machine-learning/machine-learning/use-cases-ml/timeseries-forecasting/demand-forecasting"},{"title":"Churn Forecasting","href":"/ax/machine-learning/machine-learning/use-cases-ml/timeseries-forecasting/churn-forecasting"}]},{"group":"Ranking","pages":[{"title":"Ranking","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/use-cases-ml/ranking"},{"title":"Collaborative Filtering","href":"/ax/machine-learning/machine-learning/use-cases-ml/ranking/collaborative-filtering-recommendation-engine"},{"title":"Search Ranking","href":"/ax/machine-learning/machine-learning/use-cases-ml/ranking/search-ranking"}]},{"title":"Natural Language Processing (NLP)","href":"/ax/machine-learning/machine-learning/use-cases-ml/natural-language-processing-nlp"},{"title":"Common Industry Use Cases","href":"/ax/machine-learning/machine-learning/use-cases-ml/use-cases"}]},{"group":"Integrations: ML","pages":[{"title":"Integrations: ML","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml"},{"group":"Google BigQuery","pages":[{"title":"Google BigQuery","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml/google-bigquery"},{"title":"GBQ Views","href":"/ax/machine-learning/machine-learning/integrations-ml/google-bigquery/gbq-views"},{"title":"Google BigQuery FAQ","href":"/ax/machine-learning/machine-learning/integrations-ml/google-bigquery/google-bigquery-faq"}]},{"group":"Snowflake","pages":[{"title":"Snowflake","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml/snowflake"},{"title":"Snowflake permissions configuration","href":"/ax/machine-learning/machine-learning/integrations-ml/snowflake/snowflake-permissions-configuration"}]},{"title":"Databricks","href":"/ax/machine-learning/machine-learning/integrations-ml/databricks"},{"title":"Google Cloud Storage (GCS)","href":"/ax/machine-learning/machine-learning/integrations-ml/gcs-example"},{"title":"Azure Blob Storage","href":"/ax/machine-learning/machine-learning/integrations-ml/azure-example"},{"group":"AWS S3","pages":[{"title":"AWS S3","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml/aws-s3-example"},{"title":"Private image link access via AWS S3","href":"/ax/machine-learning/machine-learning/integrations-ml/aws-s3-example/aws-s3-example"}]},{"title":"Kafka","href":"/ax/machine-learning/machine-learning/integrations-ml/connecting-to-kafka"},{"title":"Airflow Retrain","href":"/ax/machine-learning/machine-learning/integrations-ml/airflow-retrain"},{"title":"Amazon Eventbridge Retrain","href":"/ax/machine-learning/machine-learning/integrations-ml/amazon-eventbridge"},{"group":"MLOps Partners","pages":[{"title":"MLOps Partners","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations"},{"title":"Algorithmia","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/algorithmia"},{"title":"Anyscale","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/anyscale"},{"title":"Azure \u0026 Databricks","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/azure-and-databricks-python"},{"title":"Bentoml","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/bentoml"},{"title":"CML (DVC)","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/ci-cd-cml"},{"title":"Feast","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/feast"},{"title":"Google Cloud ML","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/google-cloud-ml-python"},{"title":"Hugging Face","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/hugging-face"},{"title":"LangChain 🦜🔗","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/langchain"},{"title":"MLflow","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/mlflow"},{"title":"Neptune","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/neptune"},{"title":"Paperspace","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/paperspace"},{"title":"PySpark","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/pyspark"},{"title":"Ray serve (Anyscale)","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/anyscale-ray-serve"},{"group":"SageMaker","pages":[{"title":"SageMaker","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/sagemaker-python"},{"title":"Batch","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/sagemaker-python/batch"},{"title":"RealTime","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/sagemaker-python/realtime"},{"title":"Notebook instance with greater than 20GB of data","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/sagemaker-python/notebook-instance-with-greater-than-20gb-of-data"}]},{"title":"Spell","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/spell"},{"title":"UbiOps","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/ubiops"},{"title":"Weights \u0026 Biases","href":"/ax/machine-learning/machine-learning/integrations-ml/integrations/weights-and-biases"}]}]},{"group":"API Reference: ML","pages":[{"title":"API reference: ML","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/api-reference-ml"},{"title":"Python SDK","sidebarTitle":"Python SDK","href":"/ax/machine-learning/machine-learning/api-reference-ml/python-sdk"},{"group":"Java SDK","pages":[{"title":"Java SDK","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk"},{"title":"Constructor","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk/constructor"},{"title":"Log","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk/log"},{"title":"BulkLog","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk/bulklog"},{"title":"Logvalidationrecords","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk/logvalidationrecords"},{"title":"Logtrainingrecords","href":"/ax/machine-learning/machine-learning/api-reference-ml/java-sdk/logtrainingrecords"}]},{"group":"R SDK","pages":[{"title":"R SDK","sidebarTitle":"Overview","href":"/ax/machine-learning/machine-learning/api-reference-ml/r-sdk"},{"title":"Client$New()","href":"/ax/machine-learning/machine-learning/api-reference-ml/r-sdk/clientusdnew"},{"title":"Client$Log()","href":"/ax/machine-learning/machine-learning/api-reference-ml/r-sdk/clientusdlog"}]},{"title":"gRPC API","href":"/ax/machine-learning/machine-learning/api-reference-ml/grpc-api"}]},{"group":"Computer Vision","pages":[{"title":"Computer vision","sidebarTitle":"Overview","href":"/ax/machine-learning/computer-vision"},{"group":"How to: CV","pages":[{"title":"How to: CV","sidebarTitle":"Overview","href":"/ax/machine-learning/computer-vision/how-to-cv"},{"group":"Generate Embeddings","pages":[{"title":"Generate Embeddings","sidebarTitle":"Overview","href":"/ax/machine-learning/computer-vision/how-to-cv/7-troubleshoot-embedding-data"},{"title":"How To Generate Your Own Embedding","href":"/ax/machine-learning/computer-vision/how-to-cv/7-troubleshoot-embedding-data/how-to-generate-your-own-embedding"},{"title":"Let Arize Generate Your Embeddings","href":"/ax/machine-learning/computer-vision/how-to-cv/7-troubleshoot-embedding-data/let-arize-generate-your-embeddings"}]},{"title":"Embedding \u0026 Cluster Analyzer","href":"/ax/machine-learning/computer-vision/how-to-cv/embedding-and-cluster-analyzer"},{"title":"Alyx: Embedding Summarization","href":"/ax/machine-learning/computer-vision/how-to-cv/embedding-summarization"},{"title":"Similarity Search","href":"/ax/machine-learning/computer-vision/how-to-cv/similarity-search"},{"title":"Embedding Drift","href":"/ax/machine-learning/computer-vision/how-to-cv/embedding-drift"},{"title":"Embeddings FAQ","href":"/ax/machine-learning/computer-vision/how-to-cv/embeddings-faq"}]},{"title":"Integrations: CV","href":"/ax/machine-learning/computer-vision/integrations-cv"},{"group":"Use Cases: CV","pages":[{"title":"Use Cases: CV","sidebarTitle":"Overview","href":"/ax/machine-learning/computer-vision/use-cases-cv"},{"title":"Image Classification","href":"/ax/machine-learning/computer-vision/use-cases-cv/computer-vision-cv"},{"title":"Image Segmentation","href":"/ax/machine-learning/computer-vision/use-cases-cv/image-segmentation"},{"title":"Object Detection","href":"/ax/machine-learning/computer-vision/use-cases-cv/object-detection"},{"title":"Available Metrics","href":"/ax/machine-learning/computer-vision/use-cases-cv/available-metrics"}]},{"title":"API Reference: CV","href":"/ax/machine-learning/computer-vision/api-reference-cv"}]}]}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/ax/cookbooks"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/ax/integrations"}]},{"tab":"APIs, SDKs, \u0026 Skills","pages":[{"title":"APIs, SDKs, \u0026 Skills","href":"/api-reference/overview"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/ax/learn"}]},{"tab":"Concepts","pages":[{"title":"Concepts","href":"/ax/concepts/otel-openinference/overview"}]},{"tab":"Self-Hosting","pages":[{"title":"Self-Hosting","href":"/ax/selfhosting"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/ax/release-notes"}]}]},"basePath":"","title":"Human review - Arize AX Docs","buildId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","deploymentId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DcbodgP9.js","DynamicMarkdown-BBrVIqs3.js","zoom-image-lightbox-BB8grMv9.js","lightbox-handle-r17bVUz3.js"]}