Node.js Engine
JavaScript-Code in einem Bot kann in einem von zwei Ausführungsmodi laufen. Wählen Sie den Modus in den NodeJS-Engine-Einstellungen des Bots. Mit dem Schalter Erweiterte NodeJS-Engine verwenden wechseln Sie zwischen dem einfachen und dem erweiterten Modus.
Einfacher Modus
Der einfache Modus ist der schlanke Standard. JavaScript-Funktionen werden synchron in der eingebetteten JavaScript-Laufzeit ausgeführt.
Definieren Sie normale Funktionen und geben Sie das Ergebnis direkt zurück:
function collectData(params) {
return { name: params.name };
}Verwenden Sie in diesem Modus kein async, await und keine asynchronen APIs, die Promises zurückgeben. Die Funktion wird synchron aufgerufen, daher wird ein Promise nicht abgewartet.
Erweiterter Node.js-Modus
Aktivieren Sie den erweiterten Modus mit Erweiterte NodeJS-Engine verwenden. Anschließend wird der Editor package.json-Abhängigkeiten angezeigt, in dem Sie die benötigten npm-Pakete angeben können:
{
"dependencies": {
"node-fetch": "^3.3.2"
}
}Die Abhängigkeiten werden für den Bot installiert und der Code läuft in der sandboxed Node.js Engine. Dieser Modus unterstützt Node.js-Module (require und Imports) sowie asynchrone Vorgänge wie Netzwerkanfragen.
Funktionen der erweiterten Engine müssen Promise-kompatibel sein. Verwenden Sie async, wenn Sie asynchrone Vorgänge mit await ausführen:
async function collectData(params) {
const response = await fetch("https://example.com/customer/" + params.id);
const customer = await response.json();
return { name: customer.name };
}Das gilt für Prompt-/Pre-Processing-Funktionen, Tools und Tool-Handler. Ein synchroner Rückgabewert führt im erweiterten Modus zu einem Fehler, da die Engine ein Promise erwartet.
Ressourcenlimits
Die Node.js Engine kann bis zu 250 MB Speicher verwenden und pro Ausführung bis zu 10 Sekunden laufen. Diese Limits können innerhalb des zulässigen Bereichs in den NodeJS-Engine-Einstellungen angepasst werden.
Verwenden Sie den einfachen Modus für eigenständige, synchrone Transformationen und den erweiterten Modus für npm-Abhängigkeiten, Imports oder asynchronen Code.