@arizeai/phoenix-client
Version:
A client for the Phoenix API
66 lines • 2.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.listExperiments = listExperiments;
const client_1 = require("../client");
const tiny_invariant_1 = __importDefault(require("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}`);
* }
* ```
*/
async function listExperiments({ client: _client, datasetId, }) {
var _a, _b;
const client = _client || (0, client_1.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 = ((_a = res.data) === null || _a === void 0 ? void 0 : _a.next_cursor) || null;
const data = (_b = res.data) === null || _b === void 0 ? void 0 : _b.data;
(0, tiny_invariant_1.default)(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