builderbot icon indicating copy to clipboard operation
builderbot copied to clipboard

DialogFlow, limite de 256 caracteres.

Open JaviJam opened this issue 3 years ago • 5 comments

Estimados, por lo que estuve probando, cuando se exceden los 256 caracteres, DialogFlow (DF) devuelve un error que el módulo grpc entiende como fatal, por lo que se deja de ejecutar la aplicación.

A alguien le sucedió lo mismo?

C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\call.js:31 return Object.assign(new Error(message), status); ^

Error: 3 INVALID_ARGUMENT: Input text exceeds 256 characters. at Object.callErrorFromStatus (C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\call.js:31:26) at Object.onReceiveStatus (C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\client.js:189:52) at Object.onReceiveStatus (C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\client-interceptors.js:365:141) at Object.onReceiveStatus (C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\client-interceptors.js:328:181) at C:\BW-BotWasapNODE\node_modules@grpc\grpc-js\build\src\call-stream.js:187:78 at processTicksAndRejections (node:internal/process/task_queues:78:11) { code: 3, details: 'Input text exceeds 256 characters.', metadata: Metadata { internalRepr: Map(1) { 'grpc-server-stats-bin' => [ Buffer(10) [Uint8Array] [ 0, 0, 181, 59, 183, 2, 0, 0, 0, 0 ] ] }, options: {} }, note: 'Exception occurred in retry method that was not classified as transient' }

JaviJam avatar Aug 29 '22 19:08 JaviJam

Este es problema directamente de dialogflow, tienes que limitar la salida de caracteres que recibe dialogflow

KJoaquin avatar Sep 07 '22 14:09 KJoaquin

KJ, si lo se. La intensión de la consulta es para saber cómo lo resolvió. Ahora que voy a estar con un poco más tiempo libre, le quería consultar a Leifer o a quién quiera colaborar, donde conviene realizar la verificación de si supera los 255 carácteres y evitar que vaya a buscar respuesta al DF o enviarle una palabra clave al DF para que responda algo específico. Estoy aprendiendo, por lo que es un buen desafío.

JaviJam avatar Sep 07 '22 15:09 JaviJam

Captura de Pantalla 2022-09-07 a la(s) 9 32 54

Yo lo tengo de esta manera, para que solo se envíen los primeros 255 caracteres a al service de DialogFlow

KJoaquin avatar Sep 07 '22 15:09 KJoaquin

Ahh, genial, voy a probarlo como tu dices entonces entonces, Es buena tu idea de dejar pasar solo los primeros 255 caracteres. Por aquí también puedo trabajar con lo que tenia en mente, por lo que entiendo. Muchas gracias por compartirlo.

JaviJam avatar Sep 07 '22 17:09 JaviJam

Si, solo agrega una validación de de longitud y ya mandas el mensaje que quieres

if (message.lengt > 255 ) { //Mensaje return; } else { // siguiente paso }

KJoaquin avatar Sep 07 '22 17:09 KJoaquin

Muchas gracias por la ayuda.

JaviJam avatar Oct 25 '22 19:10 JaviJam