UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

103 lines 4.78 kB
import { __awaiter } from "tslib"; import { createNodeDescriptor } from "../../createNodeDescriptor"; import { TextCleaner } from '../../../helper/nlu/textCleaner'; import { getCleanTextFields } from '../message/question/utils/cleanTextUtils'; export const CLEAN_TEXT = createNodeDescriptor({ type: "cleanText", defaultLabel: "Clean Text", summary: "UI__NODE_EDITOR__NLU__CLEAN_TEXT__DEFAULT_SUMMARY", tags: ["ai", "nlu", "clean", "cleaning", "parser", "parsing"], preview: { key: "textToClean", type: "text" }, fields: [].concat(getCleanTextFields()), sections: [ { key: "storageOption", label: "UI__NODE_EDITOR__NLU__CLEAN_TEXT__STORAGE_OPTION__LABEL", defaultCollapsed: true, fields: [ "storeLocation", "inputKey", "contextKeyToStoreResult" ] }, { key: "advanced", label: "UI__NODE_EDITOR__NLU__CLEAN_TEXT__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "cleanTextLocale" ] } ], form: [ { type: "field", key: "textToClean" }, { type: "field", key: "cleanDisallowedSymbols" }, { type: "field", key: "additionalAllowedCharacters" }, { type: "field", key: "additionalMappedSymbols" }, { type: "field", key: "resolveSpelledOutNumbers" }, { type: "field", key: "resolvePhoneticAlphabet" }, { type: "field", key: "additionalPhoneticAlphabet" }, { type: "field", key: "replaceSpecialWords" }, { type: "field", key: "additionalSpecialPhrases" }, { type: "field", key: "resolveSpelledOutAlphabet" }, { type: "field", key: "resolvePhoneticCounters" }, { type: "field", key: "contractSingleCharacters" }, { type: "field", key: "contractNumberGroups" }, { type: "field", key: "trimResult" }, { type: "section", key: "storageOption" }, { type: "section", key: "advanced" } ], function: ({ cognigy, config }) => __awaiter(void 0, void 0, void 0, function* () { var _a, _b; const { api, input } = cognigy; const { textToClean, cleanTextLocale, cleanDisallowedSymbols, contractSingleCharacters, contractNumberGroups, replaceSpecialWords, resolveSpelledOutNumbers, resolvePhoneticAlphabet, resolvePhoneticCounters, resolveSpelledOutAlphabet, trimResult, additionalAllowedCharacters, additionalSpecialPhrases, additionalMappedSymbols, additionalPhoneticAlphabet, storeLocation, inputKey, contextKeyToStoreResult } = config; if (!textToClean) throw new Error("No text provided."); try { const options = { cleanDisallowedSymbols, contractSingleCharacters, replaceSpecialWords, replaceSpecialPhrases: replaceSpecialWords, resolveSpelledOutNumbers, resolvePhoneticAlphabet, resolvePhoneticCounters, resolveSpelledOutAlphabet, contractNumberGroups, trimResult }; // set locale for CleanText class // Fallback is always "en" let localeToUse = "en"; if (!cleanTextLocale || cleanTextLocale === "infer") { const flowLocale = ((_a = input === null || input === void 0 ? void 0 : input.language) === null || _a === void 0 ? void 0 : _a.substring(0, 2)) || "en"; if (flowLocale === "en" || flowLocale === "de") { localeToUse = flowLocale; } } else { localeToUse = cleanTextLocale; } const result = new TextCleaner(localeToUse, additionalAllowedCharacters, additionalMappedSymbols, additionalSpecialPhrases, additionalPhoneticAlphabet).cleanAll(textToClean, options, (_b = input === null || input === void 0 ? void 0 : input.nlu) === null || _b === void 0 ? void 0 : _b.detailedSlots); result !== textToClean && api.logDebugMessage(`UI__DEBUG_MODE__CLEAN_TEXT__MESSAGE ${textToClean}<br>UI__DEBUG_MODE__CLEAN_TEXT__MESSAGE_2 ${result}`); if (storeLocation === "context") { api.addToContext(contextKeyToStoreResult, result, "simple"); } else { api.addToInput(inputKey, result); } } catch (error) { if (storeLocation === "context") { api.addToContext(contextKeyToStoreResult, error, "simple"); } else { api.addToInput(inputKey, error); } } }) }); //# sourceMappingURL=cleanText.js.map