UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

46 lines 1.55 kB
import { createClient } from "../client.js"; import { getDatasetInfo } from "./getDatasetInfo.js"; import invariant from "tiny-invariant"; /** * Append examples to an existing dataset * @experimental this interface may change in the future */ export async function appendDatasetExamples({ client: _client, dataset, examples, }) { const client = _client || createClient(); const inputs = examples.map((example) => example.input); const outputs = examples.map((example) => example.output ?? {}); // Treat null as an empty object const metadata = examples.map((example) => example.metadata ?? {}); const splits = examples.map((example) => example.splits !== undefined ? example.splits : null); let datasetName; if ("datasetName" in dataset) { datasetName = dataset.datasetName; } else { const datasetInfo = await getDatasetInfo({ client, dataset, }); datasetName = datasetInfo.name; } const appendResponse = await client.POST("/v1/datasets/upload", { params: { query: { sync: true, }, }, body: { name: datasetName, action: "append", inputs, outputs, metadata, splits, }, }); invariant(appendResponse.data?.data, "Failed to append dataset examples"); const datasetId = appendResponse.data.data.dataset_id; return { datasetId, }; } //# sourceMappingURL=appendDatasetExamples.js.map