UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

59 lines (52 loc) 1.56 kB
import invariant from "tiny-invariant"; import { createClient } from "../client"; import { ClientFn } from "../types/core"; import { DatasetSelector, DatasetExamples } from "../types/datasets"; import { getDatasetInfoByName } from "./getDatasetInfoByName"; export type GetDatasetExamplesParams = ClientFn & { dataset: DatasetSelector; versionId?: string; }; /** * Get examples from a dataset * @param dataset - Dataset selector (ID, name, or version ID) * @param versionId - Optional specific version ID (ignored if dataset selector is datasetVersionId) */ export async function getDatasetExamples({ client: _client, dataset, versionId, }: GetDatasetExamplesParams): Promise<DatasetExamples> { const client = _client || createClient(); let datasetId: string; if ("datasetName" in dataset) { const datasetInfo = await getDatasetInfoByName({ client, datasetName: dataset.datasetName, }); datasetId = datasetInfo.id; } else { datasetId = dataset.datasetId; } const response = await client.GET("/v1/datasets/{id}/examples", { params: { path: { id: datasetId, }, query: versionId ? { version_id: versionId, } : undefined, }, }); invariant(response.data?.data, "Failed to get dataset examples"); const examplesData = response.data.data; return { versionId: examplesData.version_id, examples: examplesData.examples.map((example) => ({ ...example, updatedAt: new Date(example.updated_at), })), }; }