Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes
In Arize AX, a dataset is the fixed set of examples you rerun in experiments to compare changes to your app over time. It gives you a stable benchmark, so you can tell whether a prompt, model, or pipeline update actually improved results or introduced regressions.
An experiment runs a fixed dataset through one version of your app and scores the results. The experiment type determines what the dataset must contain, so choose it before you build rows.From any dataset, New Experiment offers four paths:
Path
Use it when
Code required
Run in Agent Playground
The change is in an agent you have already deployed behind an HTTP endpoint.
None in Arize AX, but the agent must be reachable over HTTPS
Run via Code
The task is a function you can call from your own process, including pipelines, sandboxes, and anything needing runtime credentials.
Python, TypeScript, CLI, or REST
Run via Agent (Skills)
You want your AI coding agent to write and run the experiment through the Arize skills.
Driven by your coding agent
Run in Prompt Playground
The change fits inside a single prompt call: wording, model, parameters, or tool definitions.
Each {variable} in the prompt is filled from a column of the current row.
A column per prompt variable.
Evaluators on any of the above
Evaluators compare the output against reference columns in the row.
An expected output or label column, when the evaluator needs one.
Column names are part of the contract. Placeholders and prompt variables resolve by exact column name, so renaming a column breaks every run that references it. Keep names stable across dataset versions. Names you choose read best as variables, such as question or expected_category. Trace-sourced columns keep their OpenInference names and work as placeholders unchanged, so attributes.input.value becomes {{dataset.attributes.input.value}}.
A dataset built for one experiment type usually works for another. The same rows that fill a prompt variable can fill a field in an agent request body. A regression set collected while testing prompts stays useful once that logic moves into a deployed agent.
Build the dataset around a real failure rather than a hunch. The failing rows become both the variable you test and the benchmark that proves the fix.If you do not have traces in Arize AX yet, set up tracing first so you have real failures to work from.
Open a bad outcome in Traces: a thumbs-down, a low eval score, an exception, or anything a reviewer flagged.
Step through the trace span by span. Was the prompt ambiguous? Did the model ignore an instruction? Did the retriever return the wrong chunk? Did a tool call fail to parse?
Identify the step that most directly caused the bad outcome. That step is your experimental variable, and the spans around it are the rows worth collecting.
Test one variable at a time. If you change the prompt, the model, and the retriever together, a score change tells you nothing about which of the three caused it. Split them into separate experiments against the same dataset and evaluators.Common variables to test:
Prompt: wording, few-shot examples, output schema, or tool definitions.
Model: the same prompt against a different LLM.
Invocation parameters: temperature, top-p, max tokens.
Pipeline or agent behavior: retrieval strategy, routing, tool-using loops, or any logic that lives outside a single prompt.
Your first run against a new dataset is the unchanged setup: the prompt, model, and parameters you use today. Name that run baseline-original-prompt. Name each variant after the variable under test, such as variant-concise-prompt or variant-gpt-5.5, so the comparison view stays readable once you have a dozen runs on the same dataset.If your task predicts labels, decide now which column holds ground truth, which holds the prediction, and which label counts as the positive class. You need all three for the classification metrics setup.
A useful dataset blends typical examples that represent everyday traffic, edge cases the app has struggled with (ambiguous inputs, long contexts, unusual formats), and known failures pulled from traces, evaluator results, or reviewer feedback. Without typical examples, you optimize for edge cases and regress on the common path; without failures, you can’t prove a fix actually holds.
You’ll also see datasets described by their source or purpose. These labels overlap and shift as a dataset matures:
Regression: Examples where the app has already failed. Use these to verify a fix holds and doesn’t quietly reintroduce the bug.
Golden: Inputs with hand-labeled expected outputs, a stable benchmark for comparing prompt and model changes.
Synthetic: Generated examples that mimic real inputs. Useful when production data is thin, sensitive, or missing the edge cases you want to stress-test.
A regression set becomes part of a golden dataset once you label the expected output for each row. Collect failures first, label them as you go, and fold in typical traffic so the benchmark isn’t just past bugs.
Each row can include input messages, expected outputs, metadata, or any other columns your task function needs. Trace-sourced rows follow the OpenInference convention (e.g., attributes.input.value). CSVs and inline examples use your own column names. Keep them consistent across sources.
The labels above describe why a row belongs in the dataset. The row itself should match what your task function reads. Common patterns include:Key-value rows. Use this when the task needs multiple fields such as an input, retrieved context, and an expected output.
Input
Context
Output
What is Paul Graham known for?
Paul Graham is an investor, entrepreneur, and computer scientist known for...
Paul Graham is known for co-founding Y Combinator...
Prompt-completion pairs. Use this for the simplest single-turn completion or classification cases.
Input
Output
"do you have to have two license plates in ontario"
"True"
Messages or chat rows. Use this when your task expects multi-message inputs or outputs.
{ "input": { "messages": [{"role": "system", "content": "You are an expert SQL assistant"}] }, "output": { "messages": [{"role": "assistant", "content": "SELECT * FROM users;"}] }}
Choose the shape that matches your task function and keep it consistent within a dataset version.
“Export error spans from the last 7 days in my production-chatbot project and create a dataset called error-regression-v1.”
“Find spans where annotation.hallucination.label = 'yes' over the past 14 days and save them as hallucination-examples.”
From a local file. Point the arize-dataset skill at a CSV, JSON, JSONL, or Parquet file you already have. Try:
“Create a dataset called billing-qa-v1 from ./data/billing_qa.csv in my support space.”
“Append the rows in new_edge_cases.jsonl to my existing edge-cases dataset.”
Generate synthetic rows. Have the agent draft examples for you. Try:
“Generate 50 synthetic billing support tickets with query and expected_category fields, then save as support-synthetic-v1.”
“Draft 20 adversarial inputs targeting prompt injection for my chat agent and save as adversarial-v1.”
Running Arize skills from your coding agent.
Alyx builds datasets directly from the app. It’s available on the pages where you’re already looking at traces, datasets, and prompts (see where to find Alyx for the full list of surfaces). Ask Alyx to turn specific spans into dataset rows, or have it draft synthetic examples when you don’t have production data to pull from.From traces. Try:
“Add this span and every similar error to a new regression dataset.”
“Show me the most common failure patterns in the last 24 hours and add one example of each to a new dataset.”
Generate synthetic rows. Try:
“Create a synthetic dataset of 100 examples covering billing, technical, and general support categories.”
“Generate 30 edge cases for my router prompt and save them as a new dataset.”
Ask Alyx to create a new dataset from the pages where you already work.
From the Traces table. Filter by status, eval score, latency, annotations, or a natural-language query via AI Search. For example, status_code = 'ERROR' for exceptions, eval.groundedness.score < 0.5 for low-scoring spans, or “traces with hallucinations from yesterday”.
Filter the Traces table to find the spans you want.
Select the spans you want and click Add to Dataset to create a new dataset or append to an existing one. Map at minimum the span’s input and output (stored under attributes.input.value and attributes.output.value); for classification tasks, also include a column with the expected label.
Select spans in the Traces table and add them to a dataset.
Upload a file. Go to Datasets & Experiments, click New Dataset, then choose Upload CSV and select a file you generated elsewhere.
Upload a CSV in the New Dataset dialog.
Start with no datasets yet. Before your space contains a dataset, the Datasets & Experiments page offers three shortcuts. Start with Alyx generates a starter dataset, Create regression dataset from traces turns low-scoring interactions into a regression set, and Upload a dataset takes a CSV you already have.Add rows to an existing dataset. On a dataset, click New Examples to add rows: Add Manually for a row you type in, Select Traces to pull in spans from a project, Upload CSV, Add via Code, or Add via Agent (Skills) to work through the Arize skills in your coding agent.
Use the Arize SDK to create datasets programmatically. For the Python examples, install arize>=8.0.0 and set ARIZE_API_KEY and ARIZE_SPACE_ID in your environment.
import osfrom datetime import datetime, timedeltafrom arize import ArizeClientclient = ArizeClient(api_key=os.environ["ARIZE_API_KEY"])space = os.environ["ARIZE_SPACE_ID"]# From inline examplesclient.datasets.create( name="support-qa-v1", space=space, examples=[ {"input": "How do I cancel?", "expected_category": "account"}, {"input": "I was charged twice.", "expected_category": "billing"}, ],)# From traces (columns are OpenInference span attributes)spans_df = client.spans.export_to_df( space_id=space, project_name="my-llm-app", start_time=datetime.now() - timedelta(days=30), end_time=datetime.now(),)client.datasets.create(name="traces-v1", space=space, examples=spans_df)
import { createDataset } from "@arizeai/ax-client";const dataset = await createDataset({ space: "my-space", // space name or ID name: "support-qa-v1", examples: [{ question: "What is 2+2?", answer: "4", topic: "math" }],});
Optional: include prompt template metadata in each row
Continuing from the Python example above, if each row needs to carry the prompt template and its filled variables, store them on the OpenInference prompt-template columns so Playground and code can map them consistently:
Python SDK v8
import jsonimport pandas as pdPROMPT_TEMPLATE = """You are an expert in the history of technological inventions.Identify the individual or organization that created the following invention.Invention: {invention}"""prompt_rows = pd.DataFrame( [ { "attributes.llm.prompt_template.template": PROMPT_TEMPLATE, "attributes.llm.prompt_template.variables": json.dumps( {"invention": "Telephone"} ), "attributes.output.value": "Alexander Graham Bell", } ])client.datasets.create( name="prompt-invention-dataset", space=space, examples=prompt_rows,)
If you’re migrating from Python SDK v7 dataset APIs, see the datasets client migration guide for create_dataset() and update_dataset() replacements.
Add, edit, export, or delete rows as the app evolves. Datasets are versioned, and appends land in the latest version in place.
By Arize Skills
By Alyx
By UI
By Code
Use the arize-dataset skill to append, export, or inspect datasets without leaving your editor. Try asking your agent:
“Append the rows in new_examples.csv to my support-regression dataset.”
“Export the latest version of my support-tickets dataset so I can review it offline.”
“Show me the schema and the first five rows of my support-qa-v1 dataset.”
Append new examples to an existing dataset from your coding agent with the arize-dataset skill
The Dataset Page Agent can append, annotate, or summarize datasets. Try:
“Add the last 20 error spans to my regression dataset.”
“Label the rows in this dataset with their expected category.”
“Summarize how my regression dataset rows break down by failure type.”
Dataset Page Agent appending spans, annotating rows, or summarizing a dataset in Alyx.
Everything below happens on the dataset detail view, where you are working with a single dataset version at a time.To add a row, click + Example and fill in the fields inline.
Add a row inline with + Example on the dataset detail view.
To edit, open any row in the table and change values in place. That is the natural place to add or correct expected outputs so regression rows become golden rows. To remove rows from the latest version, select them and click Delete.When you want a file for offline review or to share outside AX, click Download as CSV on the dataset page.
Download a dataset as CSV from the dataset page
Use the Arize SDK to append or export dataset rows.
import osfrom arize import ArizeClientclient = ArizeClient(api_key=os.environ["ARIZE_API_KEY"])# Append rows — lands in the latest version in place.# Pass `dataset_version_id` to target a specific version.client.datasets.append_examples( dataset="YOUR_DATASET_ID", examples=[{"input": "...", "expected_category": "billing"}],)# Export examples for offline analysis. `all=True` fetches every row.examples_df = client.datasets.list_examples( dataset="YOUR_DATASET_ID", all=True,).to_df()
import { appendExamples, listDatasetExamples } from "@arizeai/ax-client";// Append new examples to an existing datasetawait appendExamples({ dataset: "your_dataset_id", examples: [{ question: "What is 3+3?", answer: "6", topic: "math" }],});// List examples for offline analysisconst examples = await listDatasetExamples({ dataset: "your_dataset_id",});
Once the dataset exists, set up rules that automatically add spans when they match your criteria. Auto-add rules keep the dataset current with what’s actually happening in production, without manual curation.After you’ve set up an evaluator on a project, add a post-processing step that routes spans to a dataset based on the evaluator’s result. See Create evaluators for evaluator setup, then edit the evaluator configuration for your task.
Select the evaluator from the task configuration
Select Auto Add Spans to Dataset, then specify which eval labels should trigger the addition. For example, all spans where Correctness is Incorrect, or any span where the eval label is not null.
{"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":""},"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":"6af18a47e7b89d498acb997c","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"APIs, SDKs, \u0026 Skills","count":369},{"language":"default","tag":"Get Started","count":243},{"language":"default","tag":"API reference","count":214},{"language":"default","tag":"REST","count":181},{"language":"default","tag":"Endpoints","count":178},{"language":"default","tag":"API clients","count":143},{"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":"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":"editor-metadata","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},{"name":"comment-mode","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/improve/build-a-dataset","slug":"/ax/improve/build-a-dataset","pageMetadata":{"title":"Build a dataset","description":"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes","keywords":["dataset","golden dataset","regression dataset","synthetic dataset","experiments","traces"],"href":"/ax/improve/build-a-dataset"},"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: \"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\"\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];const AskAlyx=({children})=>{const gradientId=`askAlyxGradient-${Math.random().toString(36).slice(2)}`;return _jsxs(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:`0.625rem`,margin:`1rem 0`,padding:`0.75rem 1rem`,borderRadius:`10px`,border:`1px solid rgba(120, 115, 245, 0.25)`,background:`linear-gradient(135deg, rgba(255, 110, 196, 0.08), rgba(120, 115, 245, 0.08))`},children:[_jsxs(`svg`,{width:`18`,height:`18`,viewBox:`0 0 21 17`,xmlns:`http://www.w3.org/2000/svg`,style:{flexShrink:0,marginTop:`0.2rem`},children:[_jsx(`defs`,{children:_jsxs(`linearGradient`,{id:gradientId,x1:`0%`,y1:`100%`,x2:`100%`,y2:`0%`,children:[_jsx(`stop`,{offset:`0%`,stopColor:`#FF3CA8`}),_jsx(`stop`,{offset:`100%`,stopColor:`#4827C1`})]})}),_jsx(`path`,{d:`M6.28906 12.7223C6.28889 11.3831 5.24007 10.3385 3.98926 10.3385C2.73859 10.3387 1.68963 11.3832 1.68945 12.7223C1.68945 14.0616 2.73849 15.1059 3.98926 15.1061C5.24018 15.1061 6.28906 14.0617 6.28906 12.7223ZM7.81152 0.557254C9.70554 -0.563135 12.1081 0.0645388 13.2607 1.91468L13.3691 2.09827V2.09925L20.7266 15.402C20.8713 15.6637 20.8667 15.9823 20.7148 16.2399C20.5629 16.4975 20.2864 16.6559 19.9873 16.6559H14.5459C13.0953 16.6474 11.7648 15.848 11.0469 14.5748V14.5739L6.33301 6.19104C5.22656 4.2273 5.87813 1.706 7.80957 0.558231L7.81152 0.557254ZM11.8906 2.91761C11.2374 1.74047 9.78961 1.34962 8.67188 2.01038L8.67285 2.01136C7.61521 2.64 7.19477 3.99924 7.69336 5.13733L7.80566 5.36194V5.36292L12.5186 13.7448C12.9466 14.5038 13.7274 14.9616 14.5557 14.9664H18.5547L11.8906 2.91663V2.91761ZM7.97949 12.7223C7.97949 14.9527 6.21527 16.7965 3.98926 16.7965C1.7634 16.7963 0 14.9526 0 12.7223C0.000173728 10.4921 1.76351 8.64923 3.98926 8.64905C6.21516 8.64905 7.97932 10.492 7.97949 12.7223Z`,fill:`url(#${gradientId})`})]}),_jsx(`span`,{children})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,CardGroup,CodeBlock,CodeGroup,Frame,Heading,OptimizedImage,Tab,Table,Tabs,Tip,_MdxComponentBoundary}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`In Arize AX, a dataset is the fixed set of examples you rerun in experiments to compare changes to your app over time. It gives you a stable benchmark, so you can tell whether a prompt, model, or pipeline update actually improved results or introduced regressions.`}),`\n`,_jsx(_MdxComponentBoundary,{name:`AskAlyx`,children:_jsxs(AskAlyx,{children:[_jsx(_components.strong,{children:`Ask Alyx`}),` to build a dataset for you — try `,_jsx(_components.em,{children:`“Create a dataset from the spans with errors”`}),` or `,_jsx(_components.em,{children:`“Create a synthetic dataset with 100 examples for regression testing.”`})]})}),`\n`,_jsx(Frame,{caption:`Datasets page in Arize AX`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/dataset_hero.png`,alt:`Datasets page in Arize AX showing a list of datasets with names, row counts, created by, and timestamps`})}),`\n`,_jsx(Heading,{level:`2`,id:`experiment-planning`,children:`Experiment planning`}),`\n`,_jsx(_components.p,{children:`An experiment runs a fixed dataset through one version of your app and scores the results. The experiment type determines what the dataset must contain, so choose it before you build rows.`}),`\n`,_jsxs(_components.p,{children:[`From any dataset, `,_jsx(_components.strong,{children:`New Experiment`}),` offers four paths:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Path`}),_jsx(_components.th,{children:`Use it when`}),_jsx(_components.th,{children:`Code required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Run in Agent Playground`})}),_jsx(_components.td,{children:`The change is in an agent you have already deployed behind an HTTP endpoint.`}),_jsx(_components.td,{children:`None in Arize AX, but the agent must be reachable over HTTPS`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Run via Code`})}),_jsx(_components.td,{children:`The task is a function you can call from your own process, including pipelines, sandboxes, and anything needing runtime credentials.`}),_jsx(_components.td,{children:`Python, TypeScript, CLI, or REST`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Run via Agent (Skills)`})}),_jsxs(_components.td,{children:[`You want your AI coding agent to write and run the experiment through the `,_jsx(_components.a,{href:`/ax/set-up-with-ai-assistants`,children:`Arize skills`}),`.`]}),_jsx(_components.td,{children:`Driven by your coding agent`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Run in Prompt Playground`})}),_jsx(_components.td,{children:`The change fits inside a single prompt call: wording, model, parameters, or tool definitions.`}),_jsx(_components.td,{children:`None`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`experiment-dataset-requirements`,children:`Experiment dataset requirements`}),`\n`,_jsx(_components.p,{children:`Each experiment type reads dataset rows differently, which changes how you name columns.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Experiment type`}),_jsx(_components.th,{children:`How it reads the dataset`}),_jsx(_components.th,{children:`What the dataset needs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/ax/improve/remote-agent-experiments`,children:`Agent experiment`})}),_jsxs(_components.td,{children:[`Each `,_jsx(_components.code,{children:`{{dataset.column}}`}),` placeholder in the request body is filled from the current row, and the row is sent to your agent’s endpoint.`]}),_jsx(_components.td,{children:`A column per placeholder, named exactly as referenced.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/ax/improve/code-experiments`,children:`Code experiments`})}),_jsx(_components.td,{children:`Your task function receives the whole row and reads whichever fields it needs.`}),_jsx(_components.td,{children:`Whatever fields your task function reads.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.a,{href:`/ax/improve/prompt-playground`,children:`Prompt playground`})}),_jsxs(_components.td,{children:[`Each `,_jsx(_components.code,{children:`{variable}`}),` in the prompt is filled from a column of the current row.`]}),_jsx(_components.td,{children:`A column per prompt variable.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Evaluators on any of the above`}),_jsx(_components.td,{children:`Evaluators compare the output against reference columns in the row.`}),_jsx(_components.td,{children:`An expected output or label column, when the evaluator needs one.`})]})]})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Column names are part of the contract.`}),` Placeholders and prompt variables resolve by exact column name, so renaming a column breaks every run that references it. Keep names stable across dataset versions. Names you choose read best as variables, such as `,_jsx(_components.code,{children:`question`}),` or `,_jsx(_components.code,{children:`expected_category`}),`. Trace-sourced columns keep their OpenInference names and work as placeholders unchanged, so `,_jsx(_components.code,{children:`attributes.input.value`}),` becomes `,_jsx(_components.code,{children:`{{dataset.attributes.input.value}}`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A dataset built for one experiment type usually works for another.`}),` The same rows that fill a prompt variable can fill a field in an agent request body. A regression set collected while testing prompts stays useful once that logic moves into a deployed agent.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`choose-the-variable`,children:`Choose the variable`}),`\n`,_jsx(_components.p,{children:`Build the dataset around a real failure rather than a hunch. The failing rows become both the variable you test and the benchmark that proves the fix.`}),`\n`,_jsxs(_components.p,{children:[`If you do not have traces in Arize AX yet, `,_jsx(_components.a,{href:`/ax/instrument/set-up-tracing`,children:`set up tracing`}),` first so you have real failures to work from.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open a bad outcome in `,_jsx(_components.a,{href:`/ax/observe/tracing/view-and-manage-traces`,children:`Traces`}),`: a thumbs-down, a low eval score, an exception, or anything a reviewer flagged.`]}),`\n`,_jsx(_components.li,{children:`Step through the trace span by span. Was the prompt ambiguous? Did the model ignore an instruction? Did the retriever return the wrong chunk? Did a tool call fail to parse?`}),`\n`,_jsx(_components.li,{children:`Identify the step that most directly caused the bad outcome. That step is your experimental variable, and the spans around it are the rows worth collecting.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Test one variable at a time. If you change the prompt, the model, and the retriever together, a score change tells you nothing about which of the three caused it. Split them into separate experiments against the same dataset and evaluators.`}),`\n`,_jsx(_components.p,{children:`Common variables to test:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Prompt:`}),` wording, few-shot examples, output schema, or tool definitions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Model:`}),` the same prompt against a different LLM.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Invocation parameters:`}),` temperature, top-p, max tokens.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pipeline or agent behavior:`}),` retrieval strategy, routing, tool-using loops, or any logic that lives outside a single prompt.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`plan-a-baseline`,children:`Plan a baseline`}),`\n`,_jsxs(_components.p,{children:[`Your first run against a new dataset is the unchanged setup: the prompt, model, and parameters you use today. Name that run `,_jsx(_components.code,{children:`baseline-original-prompt`}),`. Name each variant after the variable under test, such as `,_jsx(_components.code,{children:`variant-concise-prompt`}),` or `,_jsx(_components.code,{children:`variant-gpt-5.5`}),`, so the comparison view stays readable once you have a dozen runs on the same dataset.`]}),`\n`,_jsxs(_components.p,{children:[`If your task predicts labels, decide now which column holds ground truth, which holds the prediction, and which label counts as the positive class. You need all three for the `,_jsx(_components.a,{href:`/ax/improve/prompt-playground#classification-metrics`,children:`classification metrics setup`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`dataset-design`,children:`Dataset design`}),`\n`,_jsx(_components.p,{children:`Two things determine whether a dataset is useful: which rows it holds, and how those rows are shaped. The experiment type constrains both.`}),`\n`,_jsx(Heading,{level:`3`,id:`what-to-include`,children:`What to include`}),`\n`,_jsxs(_components.p,{children:[`A useful dataset blends `,_jsx(_components.strong,{children:`typical examples`}),` that represent everyday traffic, `,_jsx(_components.strong,{children:`edge cases`}),` the app has struggled with (ambiguous inputs, long contexts, unusual formats), and `,_jsx(_components.strong,{children:`known failures`}),` pulled from traces, evaluator results, or reviewer feedback. Without typical examples, you optimize for edge cases and regress on the common path; without failures, you can’t prove a fix actually holds.`]}),`\n`,_jsx(Heading,{level:`3`,id:`dataset-types`,children:`Dataset types`}),`\n`,_jsx(_components.p,{children:`You’ll also see datasets described by their source or purpose. These labels overlap and shift as a dataset matures:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Regression:`}),` Examples where the app has already failed. Use these to verify a fix holds and doesn’t quietly reintroduce the bug.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Golden:`}),` Inputs with hand-labeled expected outputs, a stable benchmark for comparing prompt and model changes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Synthetic:`}),` Generated examples that mimic real inputs. Useful when production data is thin, sensitive, or missing the edge cases you want to stress-test.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`A regression set becomes part of a golden dataset once you label the expected output for each row. Collect failures first, label them as you go, and fold in typical traffic so the benchmark isn’t just past bugs.`})}),`\n`,_jsx(Heading,{level:`3`,id:`dataset-row-schema`,children:`Dataset row schema`}),`\n`,_jsxs(_components.p,{children:[`Each row can include input messages, expected outputs, metadata, or any other columns your task function needs. Trace-sourced rows follow the `,_jsx(_components.a,{href:`https://github.com/Arize-ai/openinference/blob/main/spec/semantic_conventions.md`,children:`OpenInference`}),` convention (e.g., `,_jsx(_components.code,{children:`attributes.input.value`}),`). CSVs and inline examples use your own column names. Keep them consistent across sources.`]}),`\n`,_jsx(Heading,{level:`3`,id:`common-dataset-row-shapes`,children:`Common dataset row shapes`}),`\n`,_jsx(_components.p,{children:`The labels above describe why a row belongs in the dataset. The row itself should match what your task function reads. Common patterns include:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Key-value rows.`}),` Use this when the task needs multiple fields such as an input, retrieved context, and an expected output.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input`}),_jsx(_components.th,{children:`Context`}),_jsx(_components.th,{children:`Output`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`What is Paul Graham known for?`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Paul Graham is an investor, entrepreneur, and computer scientist known for...`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Paul Graham is known for co-founding Y Combinator...`})})]})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prompt-completion pairs.`}),` Use this for the simplest single-turn completion or classification cases.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input`}),_jsx(_components.th,{children:`Output`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`\"do you have to have two license plates in ontario\"`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"True\"`})})]})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Messages or chat rows.`}),` Use this when your task expects multi-message inputs or outputs.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_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:`#116329`,\"--shiki-dark\":`#7EE787`},children:` \"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:` \"messages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"system\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"You are an expert SQL assistant\"`}),_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:`#116329`,\"--shiki-dark\":`#7EE787`},children:` \"output\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:` \"messages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: [{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"assistant\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#7EE787`},children:`\"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"SELECT * FROM users;\"`}),_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`]})})}),`\n`,_jsx(_components.p,{children:`Choose the shape that matches your task function and keep it consistent within a dataset version.`}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-dataset`,children:`Create a dataset`}),`\n`,_jsx(_components.p,{children:`Pick the tool you work in. Each tab covers the trace-based, file-upload, and synthetic paths where they apply.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`By Arize Skills`,id:`by-arize-skills`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/ax/set-up-with-ai-assistants`,children:`Arize skills plugin`}),` wires dataset and trace workflows into your coding agent through the `,_jsx(_components.code,{children:`ax`}),` CLI.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`From traces.`}),` Combine `,_jsx(_components.a,{href:`https://github.com/Arize-ai/arize-skills/tree/main/skills/arize-trace`,children:_jsx(_components.code,{children:`arize-trace`})}),` with `,_jsx(_components.a,{href:`https://github.com/Arize-ai/arize-skills/tree/main/skills/arize-dataset`,children:_jsx(_components.code,{children:`arize-dataset`})}),`. Try:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`“Export error spans from the last 7 days in my `,_jsx(_components.code,{children:`production-chatbot`}),` project and create a dataset called `,_jsx(_components.code,{children:`error-regression-v1`}),`.”`]}),`\n`,_jsxs(_components.li,{children:[`“Find spans where `,_jsx(_components.code,{children:`annotation.hallucination.label = 'yes'`}),` over the past 14 days and save them as `,_jsx(_components.code,{children:`hallucination-examples`}),`.”`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`From a local file.`}),` Point the `,_jsx(_components.code,{children:`arize-dataset`}),` skill at a CSV, JSON, JSONL, or Parquet file you already have. Try:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`“Create a dataset called `,_jsx(_components.code,{children:`billing-qa-v1`}),` from `,_jsx(_components.code,{children:`./data/billing_qa.csv`}),` in my `,_jsx(_components.code,{children:`support`}),` space.”`]}),`\n`,_jsxs(_components.li,{children:[`“Append the rows in `,_jsx(_components.code,{children:`new_edge_cases.jsonl`}),` to my existing `,_jsx(_components.code,{children:`edge-cases`}),` dataset.”`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Generate synthetic rows.`}),` Have the agent draft examples for you. Try:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`“Generate 50 synthetic billing support tickets with `,_jsx(_components.code,{children:`query`}),` and `,_jsx(_components.code,{children:`expected_category`}),` fields, then save as `,_jsx(_components.code,{children:`support-synthetic-v1`}),`.”`]}),`\n`,_jsxs(_components.li,{children:[`“Draft 20 adversarial inputs targeting prompt injection for my chat agent and save as `,_jsx(_components.code,{children:`adversarial-v1`}),`.”`]}),`\n`]}),_jsx(Frame,{caption:`Running Arize skills from your coding agent.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/find_load_trace_skill.png`,alt:`Coding agent running Arize skills via the ax CLI to create datasets from traces and generated examples`})})]}),_jsxs(Tab,{title:`By Alyx`,id:`by-alyx`,children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/ax/alyx`,children:`Alyx`}),` builds datasets directly from the app. It’s available on the pages where you’re already looking at traces, datasets, and prompts (see `,_jsx(_components.a,{href:`/ax/alyx-learn-more#where-alyx-works`,children:`where to find Alyx`}),` for the full list of surfaces). Ask Alyx to turn specific spans into dataset rows, or have it draft synthetic examples when you don’t have production data to pull from.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`From traces.`}),` Try:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Add this span and every similar error to a new regression dataset.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Show me the most common failure patterns in the last 24 hours and add one example of each to a new dataset.”`})}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Generate synthetic rows.`}),` Try:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Create a synthetic dataset of 100 examples covering billing, technical, and general support categories.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Generate 30 edge cases for my router prompt and save them as a new dataset.”`})}),`\n`]}),_jsx(Frame,{caption:`Ask Alyx to create a new dataset from the pages where you already work.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/alyx_create_dataset.png`,alt:`Alyx sidebar in Arize AX responding to a request to create a new dataset`})})]}),_jsxs(Tab,{title:`By UI`,id:`by-ui`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`From the Traces table.`}),` Filter by status, eval score, latency, annotations, or a natural-language query via AI Search. For example, `,_jsx(_components.code,{children:`status_code = 'ERROR'`}),` for exceptions, `,_jsx(_components.code,{children:`eval.groundedness.score \u003c 0.5`}),` for low-scoring spans, or `,_jsx(_components.em,{children:`“traces with hallucinations from yesterday”`}),`.`]}),_jsx(Frame,{caption:`Filter the Traces table to find the spans you want.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/trace_filter.png`,alt:`Filter bar in the Arize AX Traces table with multiple span-query conditions applied`})}),_jsxs(_components.p,{children:[`Select the spans you want and click `,_jsx(_components.strong,{children:`Add to Dataset`}),` to create a new dataset or append to an existing one. Map at minimum the span’s input and output (stored under `,_jsx(_components.code,{children:`attributes.input.value`}),` and `,_jsx(_components.code,{children:`attributes.output.value`}),`); for classification tasks, also include a column with the expected label.`]}),_jsx(Frame,{caption:`Select spans in the Traces table and add them to a dataset.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/ui_new_dataset_traces.png`,alt:`Selecting spans in the Arize AX Traces table and adding them to a new dataset with column mapping`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Upload a file.`}),` Go to `,_jsx(_components.strong,{children:`Datasets \u0026 Experiments`}),`, click `,_jsx(_components.strong,{children:`New Dataset`}),`, then choose `,_jsx(_components.strong,{children:`Upload CSV`}),` and select a file you generated elsewhere.`]}),_jsx(Frame,{caption:`Upload a CSV in the New Dataset dialog.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/ui_new_dataset_csv.png`,alt:`New Dataset dialog in Arize AX with a CSV upload drop zone`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Start with no datasets yet.`}),` Before your space contains a dataset, the `,_jsx(_components.strong,{children:`Datasets \u0026 Experiments`}),` page offers three shortcuts. `,_jsx(_components.strong,{children:`Start with Alyx`}),` generates a starter dataset, `,_jsx(_components.strong,{children:`Create regression dataset from traces`}),` turns low-scoring interactions into a regression set, and `,_jsx(_components.strong,{children:`Upload a dataset`}),` takes a CSV you already have.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Add rows to an existing dataset.`}),` On a dataset, click `,_jsx(_components.strong,{children:`New Examples`}),` to add rows: `,_jsx(_components.strong,{children:`Add Manually`}),` for a row you type in, `,_jsx(_components.strong,{children:`Select Traces`}),` to pull in spans from a project, `,_jsx(_components.strong,{children:`Upload CSV`}),`, `,_jsx(_components.strong,{children:`Add via Code`}),`, or `,_jsx(_components.strong,{children:`Add via Agent (Skills)`}),` to work through the `,_jsx(_components.a,{href:`/ax/set-up-with-ai-assistants`,children:`Arize skills`}),` in your coding agent.`]})]}),_jsxs(Tab,{title:`By Code`,id:`by-code`,children:[_jsxs(_components.p,{children:[`Use the Arize SDK to create datasets programmatically. For the Python examples, install `,_jsx(_components.code,{children:`arize>=8.0.0`}),` and set `,_jsx(_components.code,{children:`ARIZE_API_KEY`}),` and `,_jsx(_components.code,{children:`ARIZE_SPACE_ID`}),` in your environment.`]}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python`,numberOfLines:`25`,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:`25`,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:` os`})]}),`\n`,_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:` datetime `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` datetime, timedelta`})]}),`\n`,_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:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"ARIZE_API_KEY\"`}),_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:`space `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"ARIZE_SPACE_ID\"`}),_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:`# From inline examples`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`client.datasets.create(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"support-qa-v1\"`}),_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:` space`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`space,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` examples`}),_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:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"How do I cancel?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"expected_category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"account\"`}),_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:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"I was charged twice.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"expected_category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"billing\"`}),_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:`# From traces (columns are OpenInference span attributes)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`spans_df `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` client.spans.export_to_df(`})]}),`\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:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`space,`})]}),`\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:`\"my-llm-app\"`}),_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:` start_time`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`datetime.now() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` timedelta(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:`days`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`30`}),_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:` end_time`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`datetime.now(),`})]}),`\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:`client.datasets.create(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"traces-v1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:`space`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`space, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:`examples`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`spans_df)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`TS/JS`,numberOfLines:`7`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,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:` { createDataset } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"@arizeai/ax-client\"`}),_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:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:` dataset`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#D2A8FF`},children:` createDataset`}),_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:` space: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"my-space\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:`// space name or ID`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` name: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"support-qa-v1\"`}),_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:` examples: [{ question: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"What is 2+2?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, answer: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"4\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, topic: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"math\"`}),_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(Accordion,{title:`Optional: include prompt template metadata in each row`,id:`optional-include-prompt-template-metadata-in-each-row`,children:[_jsx(_components.p,{children:`Continuing from the Python example above, if each row needs to carry the prompt template and its filled variables, store them on the OpenInference prompt-template columns so Playground and code can map them consistently:`}),_jsx(CodeBlock,{filename:`Python SDK v8`,numberOfLines:`27`,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:`27`,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:` json`})]}),`\n`,_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`PROMPT_TEMPLATE`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`You are an expert in the history of technological inventions.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`Identify the individual or organization that created the following invention.`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`Invention: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`{invention}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"\"\"`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`prompt_rows `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` pd.DataFrame(`})]}),`\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(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"attributes.llm.prompt_template.template\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:`PROMPT_TEMPLATE`}),_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:` \"attributes.llm.prompt_template.variables\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: json.dumps(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"invention\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"Telephone\"`}),_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:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"attributes.output.value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"Alexander Graham Bell\"`}),_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`,_jsx(_components.span,{className:`line`,children:_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:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`client.datasets.create(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"prompt-invention-dataset\"`}),_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:` space`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`space,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` examples`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`prompt_rows,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`)`})}),`\n`]})})})]}),_jsxs(_components.p,{children:[`If you’re migrating from Python SDK v7 dataset APIs, see the `,_jsx(_components.a,{href:`/api-clients/python/version-8/migration/datasets-client`,children:`datasets client migration guide`}),` for `,_jsx(_components.code,{children:`create_dataset()`}),` and `,_jsx(_components.code,{children:`update_dataset()`}),` replacements.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`manage-your-dataset`,children:`Manage your dataset`}),`\n`,_jsx(_components.p,{children:`Add, edit, export, or delete rows as the app evolves. Datasets are versioned, and appends land in the latest version in place.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`By Arize Skills`,id:`by-arize-skills-2`,children:[_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`https://github.com/Arize-ai/arize-skills/tree/main/skills/arize-dataset`,children:_jsx(_components.code,{children:`arize-dataset`})}),` skill to append, export, or inspect datasets without leaving your editor. Try asking your agent:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`“Append the rows in `,_jsx(_components.code,{children:`new_examples.csv`}),` to my `,_jsx(_components.code,{children:`support-regression`}),` dataset.”`]}),`\n`,_jsxs(_components.li,{children:[`“Export the latest version of my `,_jsx(_components.code,{children:`support-tickets`}),` dataset so I can review it offline.”`]}),`\n`,_jsxs(_components.li,{children:[`“Show me the schema and the first five rows of my `,_jsx(_components.code,{children:`support-qa-v1`}),` dataset.”`]}),`\n`]}),_jsx(Frame,{caption:`Append new examples to an existing dataset from your coding agent with the arize-dataset skill`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/dataset_update_skill.png`,alt:`Coding agent running the arize-dataset skill via the ax CLI to append new examples to an existing dataset without leaving the editor`})})]}),_jsxs(Tab,{title:`By Alyx`,id:`by-alyx-2`,children:[_jsx(_components.p,{children:`The Dataset Page Agent can append, annotate, or summarize datasets. Try:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Add the last 20 error spans to my regression dataset.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Label the rows in this dataset with their expected category.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Summarize how my regression dataset rows break down by failure type.”`})}),`\n`]}),_jsx(Frame,{caption:`Dataset Page Agent appending spans, annotating rows, or summarizing a dataset in Alyx.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/alyx_append_dataset.png`,alt:`Alyx Dataset Page Agent appending spans to an existing dataset in Arize AX`})})]}),_jsxs(Tab,{title:`By UI`,id:`by-ui-2`,children:[_jsxs(_components.p,{children:[`Everything below happens on the `,_jsx(_components.strong,{children:`dataset detail view`}),`, where you are working with a single dataset version at a time.`]}),_jsxs(_components.p,{children:[`To add a row, click `,_jsx(_components.strong,{children:`+ Example`}),` and fill in the fields inline.`]}),_jsx(Frame,{caption:`Add a row inline with + Example on the dataset detail view.`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/ui_add_example.png`,alt:`Dataset detail view in Arize AX with the + Example button for adding a new row inline`})}),_jsxs(_components.p,{children:[`To edit, open any row in the table and change values in place. That is the natural place to add or correct expected outputs so regression rows become golden rows. To remove rows from the latest version, select them and click `,_jsx(_components.strong,{children:`Delete`}),`.`]}),_jsxs(_components.p,{children:[`When you want a file for offline review or to share outside AX, click `,_jsx(_components.strong,{children:`Download as CSV`}),` on the dataset page.`]}),_jsx(Frame,{caption:`Download a dataset as CSV from the dataset page`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/alyx_export_csv_dataset.png`,alt:`Download CSV from the dataset page in Arize AX`})})]}),_jsxs(Tab,{title:`By Code`,id:`by-code-2`,children:[_jsx(_components.p,{children:`Use the Arize SDK to append or export dataset rows.`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Python`,numberOfLines:`17`,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:`17`,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:` os`})]}),`\n`,_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:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"ARIZE_API_KEY\"`}),_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:`# Append rows — lands in the latest version in place.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:\"# Pass `dataset_version_id` to target a specific version.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`client.datasets.append_examples(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` dataset`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"YOUR_DATASET_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:` examples`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`[{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"expected_category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"billing\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:\"# Export examples for offline analysis. `all=True` fetches every row.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`examples_df `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:` client.datasets.list_examples(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#FFA657`},children:` dataset`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"YOUR_DATASET_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:` all`}),_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:`).to_df()`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`TS/JS`,numberOfLines:`12`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`12`,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:` { appendExamples, listDatasetExamples } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:` \"@arizeai/ax-client\"`}),_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:`// Append new examples to an existing dataset`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#D2A8FF`},children:` appendExamples`}),_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:` dataset: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your_dataset_id\"`}),_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:` examples: [{ question: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"What is 3+3?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, answer: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"6\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#E6EDF3`},children:`, topic: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"math\"`}),_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#8B949E`},children:`// List examples for offline analysis`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#79C0FF`},children:` examples`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#FF7B72`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#D2A8FF`},children:` listDatasetExamples`}),_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:` dataset: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#A5D6FF`},children:`\"your_dataset_id\"`}),_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.p,{children:[`For the full reference, including `,_jsx(_components.code,{children:`get`}),`, `,_jsx(_components.code,{children:`delete`}),`, DataFrame input, and pagination, see the `,_jsx(_components.a,{href:`/api-clients/python/version-8/client-resources/datasets`,children:`Python datasets client`}),` and `,_jsx(_components.a,{href:`/api-clients/typescript/version-1/client-resources/datasets`,children:`TypeScript datasets client`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`auto-add-rows-from-evaluator-labels`,children:`Auto-add rows from evaluator labels`}),`\n`,_jsx(_components.p,{children:`Once the dataset exists, set up rules that automatically add spans when they match your criteria. Auto-add rules keep the dataset current with what’s actually happening in production, without manual curation.`}),`\n`,_jsxs(_components.p,{children:[`After you’ve set up an evaluator on a project, add a post-processing step that routes spans to a dataset based on the evaluator’s result. See `,_jsx(_components.a,{href:`/ax/evaluate/create-evaluators`,children:`Create evaluators`}),` for evaluator setup, then edit the evaluator configuration for your task.`]}),`\n`,_jsx(Frame,{caption:`Select the evaluator from the task configuration`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/auto_add_one.png`,alt:`Task configuration page in Arize AX showing the evaluator selection dropdown`})}),`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Auto Add Spans to Dataset`}),`, then specify which eval labels should trigger the addition. For example, all spans where `,_jsx(_components.em,{children:`Correctness`}),` is `,_jsx(_components.em,{children:`Incorrect`}),`, or any span where the eval label is not null.`]}),`\n`,_jsx(Frame,{caption:`Configure auto-add rules from evaluator results`,children:_jsx(OptimizedImage,{src:`https://storage.googleapis.com/arize-phoenix-assets/assets/images/arize-docs-images/improve/auto_add_two.png`,alt:`Evaluator configuration panel in Arize AX with the 'Auto Add Spans to Dataset' option selected and filter criteria entered`})}),`\n`,_jsx(Heading,{level:`2`,id:`run-your-first-experiment`,children:`Run your first experiment`}),`\n`,_jsx(_components.p,{children:`Measure whether a prompt, model, agent, or pipeline change actually improves your app.`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Remote agent experiments`,icon:`robot`,href:`/ax/improve/remote-agent-experiments`,children:_jsx(_components.p,{children:`Run the dataset against a deployed agent over HTTP and collect every response.`})}),_jsx(Card,{title:`Code experiments`,icon:`code`,href:`/ax/improve/code-experiments`,children:_jsx(_components.p,{children:`Run the task in your own runtime, then log and compare results in Arize AX.`})}),_jsx(Card,{title:`Prompt playground`,icon:`window`,href:`/ax/improve/prompt-playground`,children:_jsx(_components.p,{children:`Build a prompt, run it across the dataset, and compare variants without leaving the UI.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`further-reading`,children:`Further reading`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ax/get-started/get-started-improve-your-agent`,children:`Run evals on experiments`}),`: a walkthrough that replays a failing production trace and validates the fix across a dataset.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ax/observe/tracing/view-and-manage-traces`,children:`View and manage traces`}),`: find spans worth turning into regression cases.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ax/evaluate/human-review`,children:`Human review`}),`: turn reviewer feedback into dataset rows.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ax/evaluate/human-review#labeling-queues`,children:`Labeling queues`}),`: collect labels at scale before you build or update a golden dataset.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://github.com/Arize-ai/tutorials/blob/main/python/llm/experiments/datasets_experiments_quickstart_python.ipynb`,children:`Complete experiments notebook`}),`: an end-to-end dataset, evaluator, and comparison walkthrough.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{AskAlyx,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":"Build a dataset","description":"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes","keywords":["dataset","golden dataset","regression dataset","synthetic dataset","experiments","traces"],"href":"/ax/improve/build-a-dataset"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[143,1957,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Experiment planning","slug":"experiment-planning","depth":2,"children":[{"title":"Experiment dataset requirements","slug":"experiment-dataset-requirements","depth":3,"children":[]},{"title":"Choose the variable","slug":"choose-the-variable","depth":3,"children":[]},{"title":"Plan a baseline","slug":"plan-a-baseline","depth":3,"children":[]}]},{"title":"Dataset design","slug":"dataset-design","depth":2,"children":[{"title":"What to include","slug":"what-to-include","depth":3,"children":[]},{"title":"Dataset types","slug":"dataset-types","depth":3,"children":[]},{"title":"Dataset row schema","slug":"dataset-row-schema","depth":3,"children":[]},{"title":"Common dataset row shapes","slug":"common-dataset-row-shapes","depth":3,"children":[]}]},{"title":"Create a dataset","slug":"create-a-dataset","depth":2,"children":[]},{"title":"Manage your dataset","slug":"manage-your-dataset","depth":2,"children":[]},{"title":"Auto-add rows from evaluator labels","slug":"auto-add-rows-from-evaluator-labels","depth":2,"children":[]},{"title":"Run your first experiment","slug":"run-your-first-experiment","depth":2,"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":"Build a dataset - Arize AX Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T02:32:35.607Z","originalFileLocation":"ax/improve/build-a-dataset.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=\"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\">\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=\"Build a dataset - Arize AX Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\">\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/improve/build-a-dataset\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://arize-ax.mintlify.site/docs/_mintlify/api/og/v2?division=Experimentation\u0026amp;title=Build+a+dataset\u0026amp;description=Turn+traces%2C+reviewer+feedback%2C+or+your+own+examples+into+a+dataset+you+can+reuse+to+compare+prompt%2C+model%2C+and+pipeline+changes\u0026amp;theme=6b2e1c1a14346acb1262754f\u0026amp;signature=c8e50a5b86ab0e53b7d4604881d8558544812427da9ab7a1c0cd1c0a06b0e885\">\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=\"Build a dataset - Arize AX Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://arize-ax.mintlify.site/docs/_mintlify/api/og/v2?division=Experimentation\u0026amp;title=Build+a+dataset\u0026amp;description=Turn+traces%2C+reviewer+feedback%2C+or+your+own+examples+into+a+dataset+you+can+reuse+to+compare+prompt%2C+model%2C+and+pipeline+changes\u0026amp;theme=6b2e1c1a14346acb1262754f\u0026amp;signature=c8e50a5b86ab0e53b7d4604881d8558544812427da9ab7a1c0cd1c0a06b0e885\">\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/improve/build-a-dataset\">\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/improve/build-a-dataset.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/improve/build-a-dataset#webpage\",\"url\":\"https://arize.com/docs/ax/improve/build-a-dataset\",\"name\":\"Build a dataset\",\"description\":\"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\",\"dateModified\":\"2026-10-09T02:32:35.607Z\",\"isPartOf\":{\"@id\":\"https://arize.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://arize.com/docs/ax/improve/build-a-dataset#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://arize.com/docs/ax/improve/build-a-dataset#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Arize AX Docs\",\"item\":\"https://arize.com/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build a dataset\",\"item\":\"https://arize.com/docs/ax/improve/build-a-dataset\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://arize.com/docs/ax/improve/build-a-dataset#article\",\"headline\":\"Build a dataset\",\"name\":\"Build a dataset\",\"description\":\"Turn traces, reviewer feedback, or your own examples into a dataset you can reuse to compare prompt, model, and pipeline changes\",\"url\":\"https://arize.com/docs/ax/improve/build-a-dataset\",\"mainEntityOfPage\":{\"@id\":\"https://arize.com/docs/ax/improve/build-a-dataset#webpage\"},\"dateModified\":\"2026-10-09T02:32:35.607Z\",\"keywords\":\"dataset, golden dataset, regression dataset, synthetic dataset, experiments, traces\",\"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?","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","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","description":"Understand where to find evaluation results, how to monitor quality over time, and how to track and reduce evaluation spend.","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","description":"Run experiments from your own runtime for pipelines, agents, sandboxes, and multi-step workflows, then score and compare each run in Arize AX","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":"Build a dataset - Arize AX Docs","buildId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","deploymentId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DM_qMxGl.js","DynamicMarkdown-C91yhnNP.js","zoom-image-lightbox-g3ZzIKzc.js","lightbox-handle-r17bVUz3.js"]}