@cognigy/rest-api-client
Version:
Cognigy REST-Client
103 lines • 4.78 kB
JavaScript
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