@arizeai/phoenix-client
Version:
A client for the Phoenix API
43 lines • 1.86 kB
JavaScript
import { createClient } from "../client.js";
import invariant from "tiny-invariant";
/**
* Create a new experiment without running it.
* This creates an experiment record that can later be executed using resumeExperiment.
*/
export async function createExperiment({ client: _client, datasetId, datasetVersionId, experimentName, experimentDescription, experimentMetadata = {}, splits, repetitions = 1, }) {
const client = _client || createClient();
const experimentResponse = await client
.POST("/v1/datasets/{dataset_id}/experiments", {
params: {
path: {
dataset_id: datasetId,
},
},
body: {
name: experimentName,
description: experimentDescription,
metadata: experimentMetadata,
repetitions,
...(datasetVersionId ? { version_id: datasetVersionId } : {}),
...(splits ? { splits: [...splits] } : {}),
},
})
.then((res) => res.data?.data);
invariant(experimentResponse, `Failed to create experiment`);
return {
id: experimentResponse.id,
datasetId: experimentResponse.dataset_id,
datasetVersionId: experimentResponse.dataset_version_id,
datasetSplits: splits ? [...splits] : [],
repetitions: experimentResponse.repetitions,
metadata: experimentResponse.metadata || {},
projectName: experimentResponse.project_name ?? null,
createdAt: experimentResponse.created_at,
updatedAt: experimentResponse.updated_at,
exampleCount: experimentResponse.example_count,
successfulRunCount: experimentResponse.successful_run_count,
failedRunCount: experimentResponse.failed_run_count,
missingRunCount: experimentResponse.missing_run_count,
};
}
//# sourceMappingURL=createExperiment.js.map