- Los chatbots con IA pueden traducir conversaciones automáticamente a más de 100 idiomas con un LLM, o puedes crear flujos de traducción personalizados para tener mayor control.
- Una configuración típica de traducción almacena el idioma del usuario, traduce los mensajes entrantes al idioma del bot, los procesa y luego traduce las respuestas de vuelta al idioma del usuario.
- DeepL es una opción popular por la alta calidad de sus traducciones, pero cualquier API de traducción (como Google Translate) se puede integrar con un código similar.
En el mundo multilingüe de hoy, la capacidad de interactuar con los usuarios en su idioma nativo es una función clave para cualquier chatbot.
Si estás creando un chatbot con IA, la traducción es automática si usas un LLM como 'cerebro' de tu bot. Un agente LLM puede traducir conversaciones automáticamente a más de 100 idiomas.
Pero si te interesa configurar capacidades de traducción personalizadas mientras construyes tu chatbot GPT, podemos ayudarte a lograrlo.
En este artículo, veremos los detalles de codificación necesarios para personalizar tu traducción.
¿Cómo funciona la traducción en un chatbot?
Nuestra estrategia consiste en interceptar los mensajes de los usuarios, identificar su idioma y traducir estos mensajes hacia y desde el idioma operativo del bot.
Este proceso implica:
- Almacenar el idioma detectado
- Traducir el mensaje del usuario al idioma del bot
- Procesar el mensaje y luego
- Traducir la respuesta del bot al idioma del usuario
Por ejemplo, si un usuario envía un mensaje en español, el bot almacenará "es" como variable de idioma. El software traducirá el mensaje al inglés para el bot, y luego traducirá la respuesta del bot al español antes de enviársela al usuario.
Paso 1: Elige tus herramientas
En nuestra configuración usaremos el servicio de traducción DeepL, conocido por su precisión y eficiencia.
Mostraremos esta integración con un bot de eco sencillo que responde a los usuarios repitiendo sus mensajes. Usaremos Axios para las llamadas a la API, ya que está integrado automáticamente en Botpress.

Paso 2: Crea las variables necesarias
Primero, necesitamos introducir una variable de usuario llamada `language` para almacenar el idioma inicial o detectado.
DeepL facilita este proceso al detectar y devolver el idioma del texto de entrada, simplificando la tarea a una sola solicitud a la API.
Paso 3: Crea hooks de interceptación
Hook antes del mensaje entrante
Para interceptar y traducir el mensaje del usuario antes de que llegue a Botpress, creamos un hook "Before Incoming Message". Llamaremos a este hook "Translation-In"; su función es traducir el mensaje entrante al inglés y sobrescribir el mensaje original, permitiendo que Botpress lo procese como si estuviera en inglés.
Así es como se ve el código para este hook:
await axios
.post(
'https://api-free.deepl.com/v2/translate',
{
text: [event.preview],
target_lang: 'EN'
},
{
headers: {
Authorization: 'DeepL-Auth-Key {{your key here}}',
'Content-Type': 'application/json'
}
}
)
.then((response) => {
event.payload.text = response.data.translations[0].text
event.preview = response.data.translations[0].text
event.state.user.language = response.data.translations[0].detected_source_language
})
.catch(function (error) {
// Error handling
});NOTA IMPORTANTE: Siempre utiliza Variables de Configuración de Botpress al incorporar tu clave API.
Hook antes del mensaje saliente
Para el hook "Before Outgoing Message", lo llamaremos "Translation-Out". Este hook intercepta la respuesta del bot para traducirla de nuevo al idioma del usuario, asegurando que la conversación se mantenga en el idioma preferido del usuario.
La implementación consiste en sobrescribir el mensaje saliente con su versión traducida:
await axios
.post(
'https://api-free.deepl.com/v2/translate',
{
text: [outgoingEvent.preview],
target_lang: event.state.user.language
},
{
headers: {
Authorization: 'DeepL-Auth-Key {{your key here}}',
'Content-Type': 'application/json'
}
}
)
.then((response) => {
outgoingEvent.payload.text = response.data.translations[0].text
outgoingEvent.preview = response.data.translations[0].text
})
.catch(function (error) {
// Error handling
});Comienza a crear hoy
Uno de los grandes beneficios de usar un chatbot con IA es su capacidad multilingüe. Con plataformas como Botpress, puedes configurar rápidamente tu chatbot para interactuar con usuarios en más de 100 idiomas.
Si buscas un chatbot accesible y fácil de usar, puedes integrar cualquier servicio de traducción con Botpress sin problemas. Con nuestras integraciones de canales, luego puedes desplegar tu chatbot en WhatsApp, Facebook Messenger o en tu sitio web.
Empieza hoy mismo. Es gratis.
Referencias adicionales
- Variables de configuración
- API de traducción de DeepL
- Axios NPM
- Manejo de errores con Axios
- Canal de YouTube de Botpress
Preguntas frecuentes
1. ¿Puedo usar un servicio de traducción diferente a DeepL, como Google Translate o Microsoft Translator?
Sí, puedes usar otros servicios de traducción modificando el hook de traducción en Botpress para que coincida con el formato de solicitud y respuesta de la API del servicio elegido. Estos servicios se pueden integrar fácilmente mediante llamadas HTTP dentro de acciones o hooks personalizados.
2. ¿Puedo traducir solo partes específicas de una conversación?
Sí, puedes traducir solo partes específicas de una conversación añadiendo lógica condicional en tu hook de traducción que verifique ciertos tipos de mensajes o variables definidas por el usuario antes de activar la traducción. Así puedes controlar exactamente qué se traduce y cuándo.
3. ¿Puedo anonimizar los datos de los usuarios antes de enviarlos al servicio de traducción?
Sí, puedes anonimizar los datos del usuario antes de enviarlos a un servicio de traducción procesando previamente el mensaje (por ejemplo, usando expresiones regulares para ocultar nombres, correos electrónicos o identificadores) dentro de tu hook o acción en Botpress. Esto asegura el cumplimiento de requisitos de privacidad y permite la traducción.
4. ¿Puedo usar esta configuración de traducción en diferentes canales (por ejemplo, WhatsApp, Messenger)?
Sí, puedes usar la misma configuración de traducción en varios canales como WhatsApp, Messenger, Slack o tu sitio web. Mientras tu bot reciba el mensaje, la lógica de traducción funcionará sin importar la plataforma.
5. ¿Cómo registro los errores de traducción para análisis o depuración?
Para registrar errores de traducción en Botpress, puedes usar console.error() para depuración en desarrollo, o enviar los errores a una tabla personalizada de Botpress, a un servicio de registro remoto como Loggly o Datadog, o a una API interna. Esto te ayuda a rastrear fallos y monitorear el rendimiento a lo largo del tiempo.





.webp)
