Motore Node.js
Il codice JavaScript di un bot può essere eseguito in una delle due modalità. Seleziona la modalità nelle impostazioni del motore NodeJS del bot. L’interruttore Use extended NodeJS engine permette di passare dalla modalità semplice a quella estesa.
Modalità semplice
La modalità semplice è quella leggera predefinita. Le funzioni JavaScript vengono eseguite in modo sincrono nel runtime incorporato.
Definisci funzioni normali e restituisci direttamente il risultato:
function collectData(params) {
return { name: params.name };
}In questa modalità non usare async, await o API asincrone che restituiscono Promise. La funzione viene invocata in modo sincrono, quindi una Promise non viene attesa.
Modalità Node.js estesa
Attiva la modalità estesa con Use extended NodeJS engine. Verrà quindi mostrato l’editor package.json dependencies, nel quale puoi dichiarare i pacchetti npm necessari:
{
"dependencies": {
"node-fetch": "^3.3.2"
}
}Le dipendenze vengono installate per il bot e il codice viene eseguito nel motore Node.js isolato. Questa modalità supporta i moduli Node.js (require e import) e le operazioni asincrone, come le richieste di rete.
Le funzioni eseguite dal motore esteso devono essere compatibili con le Promise. Dichiarale come async quando devono attendere operazioni asincrone:
async function collectData(params) {
const response = await fetch("https://example.com/customer/" + params.id);
const customer = await response.json();
return { name: customer.name };
}Questo vale per le funzioni di prompt/pre-elaborazione, gli strumenti e i gestori degli strumenti. Un valore sincrono causa un errore, perché il motore richiede una Promise.
Limiti delle risorse
Il motore Node.js può utilizzare fino a 250 MB di memoria ed eseguire ogni operazione per un massimo di 10 secondi. Questi limiti possono essere regolati entro l’intervallo consentito nelle impostazioni del motore NodeJS.
Usa la modalità semplice per trasformazioni sincrone e quella estesa quando servono dipendenze npm, import o codice asincrono.