UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

113 lines 4.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MATCH_PATTERN = void 0; const createNodeDescriptor_1 = require("../../createNodeDescriptor"); const patternMatcher_1 = require("./utils/patternMatcher"); exports.MATCH_PATTERN = (0, createNodeDescriptor_1.createNodeDescriptor)({ type: "matchPattern", defaultLabel: "Match Pattern", preview: { key: "patternGroupName", type: "text" }, summary: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__SUMMARY", tags: ["ai", "nlu", "pattern", "patterns"], fields: [ { key: "patterns", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__PATTERNS_LABEL", type: "textArray", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__PATTERNS_DESCRIPTION", defaultValue: ["@NUMBER>val1 or @NUMBER>val2"] }, { key: "patternGroupName", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__PATTERN_GROUP_NAME_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__PATTERN_GROUP_NAME_DESCRIPTION", type: "cognigyText", defaultValue: "patternGroupName", params: { required: true }, }, { key: "alternateInput", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__ALTERNATE_INPUT_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__ALTERNATE_INPUT_DESCRIPTION", type: "cognigyText", }, { key: "detailedCompoundSlots", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__DETAILED_COMPOUND_SLOTS_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__DETAILED_COMPOUND_SLOTS_DESCRIPTION", type: "toggle", defaultValue: false }, { key: "createNewSlots", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__CREATE_NEW_SLOTS_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__CREATE_NEW_SLOTS_DESCRIPTION", type: "toggle", defaultValue: false }, { key: "tagExistingSlots", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__TAG_EXISTING_SLOTS_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__TAG_EXISTING_SLOTS_DESCRIPTION", type: "toggle", defaultValue: true }, { key: "useFullSystemslotText", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__USE_FULL_SYSTEM_SLOT_TEXT_LABEL", description: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__FIELDS__USE_FULL_SYSTEM_SLOT_TEXT_DESCRIPTION", type: "toggle", defaultValue: true, } ], sections: [ { key: "advanced", label: "UI__NODE_EDITOR__NLU__MATCH_PATTERN__SECTIONS__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "createNewSlots", "tagExistingSlots", "detailedCompoundSlots", "useFullSystemslotText", "alternateInput", ] } ], form: [ { type: "field", key: "patterns" }, { type: "field", key: "patternGroupName" }, { type: "section", key: "advanced" } ], function: async ({ cognigy, config }) => { let { input, api } = cognigy; const { patterns, patternGroupName, alternateInput, detailedCompoundSlots, createNewSlots, tagExistingSlots, useFullSystemslotText } = config; if (!patterns || !Array.isArray(patterns) || patterns.length === 0) { throw new Error("No patterns to match specified"); } if (patterns.length > 20) { throw new Error("Maximum of 20 patterns allowed"); } // When using an alternative input, input.slots is empty - we need to call the cognigy nlu again to get the slots let nluResult = {}; if (alternateInput) { nluResult = await api.executeCognigyNLU(alternateInput, {}, input.inputId, {}); } (0, patternMatcher_1.patternMatcher)({ input, patterns, patternGroupName, detailedCompoundSlots, tagExistingSlots, createNewSlots, useFullSystemslotText, nluResult }); } }); //# sourceMappingURL=matchPattern.js.map