@arizeai/phoenix-client
Version:
A client for the Phoenix API
43 lines • 1.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDataset = createDataset;
const client_1 = require("../client");
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
/**
* Create a new dataset
* @experimental this interface may change in the future
*/
async function createDataset({ client: _client, name, description, examples, }) {
var _a;
const client = _client || (0, client_1.createClient)();
const inputs = examples.map((example) => example.input);
const outputs = examples.map((example) => { var _a; return (_a = example === null || example === void 0 ? void 0 : example.output) !== null && _a !== void 0 ? _a : {}; }); // Treat null as an empty object
const metadata = examples.map((example) => { var _a; return (_a = example === null || example === void 0 ? void 0 : example.metadata) !== null && _a !== void 0 ? _a : {}; });
const splits = examples.map((example) => (example === null || example === void 0 ? void 0 : example.splits) !== undefined ? example.splits : null);
const createDatasetResponse = await client.POST("/v1/datasets/upload", {
params: {
query: {
// TODO: parameterize this
sync: true,
},
},
body: {
name,
description,
action: "create",
inputs,
outputs,
metadata,
splits,
},
});
(0, tiny_invariant_1.default)((_a = createDatasetResponse.data) === null || _a === void 0 ? void 0 : _a.data, "Failed to create dataset");
const datasetId = createDatasetResponse.data.data.dataset_id;
return {
datasetId,
};
}
//# sourceMappingURL=createDataset.js.map