Motor de Node.js
El código JavaScript de un bot puede ejecutarse en uno de dos modos. Selecciona el modo en la configuración NodeJS Engine del bot. El interruptor Use extended NodeJS engine cambia entre el modo simple y el extendido.
Modo simple
El modo simple es el modo ligero predeterminado. Las funciones JavaScript se ejecutan de forma síncrona en el entorno integrado.
Define funciones normales y devuelve directamente el resultado:
function collectData(params) {
return { name: params.name };
}No uses async, await ni APIs asíncronas que devuelvan Promises en este modo. La función se invoca de forma síncrona, por lo que una Promise no se espera.
Modo Node.js extendido
Activa el modo extendido con Use extended NodeJS engine. Entonces aparecerá el editor package.json dependencies, donde puedes declarar los paquetes npm necesarios:
{
"dependencies": {
"node-fetch": "^3.3.2"
}
}Las dependencias se instalan para el bot y el código se ejecuta en el motor Node.js aislado. Este modo admite módulos de Node.js (require e imports) y operaciones asíncronas, como solicitudes de red.
Las funciones ejecutadas por el motor extendido deben ser compatibles con Promises. Decláralas como async cuando esperen operaciones asíncronas:
async function collectData(params) {
const response = await fetch("https://example.com/customer/" + params.id);
const customer = await response.json();
return { name: customer.name };
}Esto se aplica a las funciones de prompt/preprocesamiento, herramientas y controladores de herramientas. Un valor síncrono provoca un error porque el motor requiere una Promise.
Límites de recursos
El motor Node.js puede utilizar hasta 250 MB de memoria y ejecutarse durante un máximo de 10 segundos por ejecución. Estos límites se pueden ajustar dentro del rango permitido en la configuración de NodeJS Engine.
Usa el modo simple para transformaciones síncronas y el extendido cuando necesites dependencias npm, imports o código asíncrono.