mongodb-rag-core
Version:
Common elements used by MongoDB Chatbot Framework components.
41 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getConversationEvalCasesFromBraintrust = void 0;
const getConversationEvalCasesFromYaml_1 = require("./getConversationEvalCasesFromYaml");
const braintrust_1 = require("../braintrust");
const zod_1 = require("zod");
// Schema of dataset stored in Braintrust.
const ConversationDatasetEntrySchema = zod_1.z.object({
input: getConversationEvalCasesFromYaml_1.ConversationEvalCaseSchema.pick({
name: true,
messages: true,
}).partial({ name: true }),
expected: getConversationEvalCasesFromYaml_1.ConversationEvalCaseSchema.pick({
expectation: true,
reject: true,
expectedLinks: true,
reference: true,
}),
metadata: zod_1.z.object({
tags: zod_1.z.array(zod_1.z.string()).optional(),
author: zod_1.z.string().optional(),
}),
created: zod_1.z.string().optional(),
});
async function getConversationEvalCasesFromBraintrust({ projectName, datasetName, }) {
const datasetRows = await (0, braintrust_1.getDatasetFromBraintrust)({
projectName,
datasetName,
datasetRowSchema: ConversationDatasetEntrySchema,
});
return datasetRows.map((evalData) => {
return {
...evalData.input,
...evalData.expected,
name: evalData.input?.name ?? evalData.input.messages[0].content,
tags: evalData.metadata.tags,
};
});
}
exports.getConversationEvalCasesFromBraintrust = getConversationEvalCasesFromBraintrust;
//# sourceMappingURL=getConversationEvalCasesFromBraintrust.js.map