@arizeai/phoenix-client
Version:
A client for the Phoenix API
46 lines • 1.55 kB
JavaScript
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