@ovotech/genesys-web-messaging-tester-cli
Version:
65 lines (64 loc) • 3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.schema = void 0;
const joi_1 = __importDefault(require("joi"));
const modelTypes_1 = require("./modelTypes");
exports.schema = joi_1.default.object({
config: joi_1.default.object({
deploymentId: joi_1.default.string(),
region: joi_1.default.string(),
origin: joi_1.default.string(),
ai: joi_1.default.object({
provider: joi_1.default.string()
.valid(modelTypes_1.SupportedAiProviders.GoogleVertexAi, modelTypes_1.SupportedAiProviders.ChatGpt)
.required(),
config: joi_1.default.when('provider', {
is: modelTypes_1.SupportedAiProviders.GoogleVertexAi,
then: joi_1.default.object({
location: joi_1.default.string(),
project: joi_1.default.string(),
temperature: joi_1.default.number(),
topK: joi_1.default.number(),
topP: joi_1.default.number(),
seed: joi_1.default.number(),
modelVersion: joi_1.default.string().regex(/\d{3}/),
examples: joi_1.default.array().items(joi_1.default.object({
input: joi_1.default.string().required(),
output: joi_1.default.string().required(),
}).required()),
}),
}).when('provider', {
is: modelTypes_1.SupportedAiProviders.ChatGpt,
then: joi_1.default.object({
model: joi_1.default.string(),
temperature: joi_1.default.number(),
}),
}),
}).required(),
}).required(),
scenarios: joi_1.default.object()
.min(1)
.pattern(/./, joi_1.default.object({
setup: joi_1.default.object({
placeholders: joi_1.default.object()
.min(1)
.pattern(/./, joi_1.default.array().items(joi_1.default.string()).required()),
prompt: joi_1.default.string().required(),
terminatingPhrases: joi_1.default.object({
pass: joi_1.default.array().items(joi_1.default.string()).min(1).required(),
fail: joi_1.default.array().items(joi_1.default.string()).min(1).required(),
}).required(),
}).required(),
followUp: joi_1.default.object({
prompt: joi_1.default.string().required(),
terminatingPhrases: joi_1.default.object({
pass: joi_1.default.array().items(joi_1.default.string()).min(1).required(),
fail: joi_1.default.array().items(joi_1.default.string()).min(1).required(),
}).required(),
}).optional(),
}).required())
.required(),
});