UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

59 lines 2 kB
import { createClient } from "../client.js"; import invariant from "tiny-invariant"; const DEFAULT_PAGE_SIZE = 50; /** * List all experiments for a dataset with automatic pagination handling. * * This function automatically handles pagination behind the scenes and returns * a simple list of experiments. * * @example * ```ts * import { listExperiments } from "@arizeai/phoenix-client/experiments"; * * const experiments = await listExperiments({ * datasetId: "dataset_123", * }); * * for (const experiment of experiments) { * console.log(`Experiment: ${experiment.id}, Runs: ${experiment.successfulRunCount}`); * } * ``` */ export async function listExperiments({ client: _client, datasetId, }) { const client = _client || createClient(); const experiments = []; let cursor = null; do { const res = await client.GET("/v1/datasets/{dataset_id}/experiments", { params: { path: { dataset_id: datasetId, }, query: { cursor, limit: DEFAULT_PAGE_SIZE, }, }, }); cursor = res.data?.next_cursor || null; const data = res.data?.data; invariant(data, "Failed to list experiments"); experiments.push(...data.map((exp) => ({ id: exp.id, datasetId: exp.dataset_id, datasetVersionId: exp.dataset_version_id, repetitions: exp.repetitions, metadata: exp.metadata || {}, projectName: exp.project_name || null, createdAt: exp.created_at, updatedAt: exp.updated_at, exampleCount: exp.example_count, successfulRunCount: exp.successful_run_count, failedRunCount: exp.failed_run_count, missingRunCount: exp.missing_run_count, }))); } while (cursor != null); return experiments; } //# sourceMappingURL=listExperiments.js.map