Cómo configurar el componente de autotraducción en Oracle IBCS
Por defecto el servicio de Oracle Intelligent Bot Cloud Service (Oracle IBCS ) viene con un motor NLP configurado en ingles, lo que hacia dificil la implementacion de chatbots en otros lenguajes. En la última versión de Oracle IBCS, Oracle adiciono un servicio de traducción al que se puede llamar antes de resolver el intent por parte del usuario. Este post se enfoca en cómo configurar el componente de autotraducción en Oracle IBCS, para facilitar la implementación en otros idiomas de chatbots.
Para comenzar una conversación con el bot en el idioma del usuario, necesitamos usar el componente de autotraducción.
Como se puede ver en la documentación de Oracle:
Autotranslation uses services like Microsoft Translator and the Google Translation API to enable the built-in components like System.Text and System.Output to output their prompts in the user’s language.
Como usar el componente de auto traducción?
Primero tenemos que configurar el servicio de traducción que usaremos
Aquí se esta usando la API de traducción de Google, consulte este tutorial sobre cómo configurar su API de Google Translate.
Segundo hacer clic en configuración de su bot y elegir la pestaña General, luego elija el servicio de traducción de la siguiente manera:
Tercero. Ahora que está listo para configurar el flujo del bot, consulte el siguiente código de ejemplo tomado de los documentos de Oracle IBCS aquí:
metadata: platformVersion: "1.0" main: true name: "AutoTranslatePizzaBot" parameters: age: 18 context: variables: size: "PizzaSize" type: "PizzaType" crust: "PizzaCrust" iResult: "nlpresult" autoTranslate: "boolean" translated: "string" states: setAutoTranslate: component: "System.SetVariable" properties: variable: "autoTranslate" value: true transitions: {} detect: component: "System.DetectLanguage" properties: {} transitions: {} translate: component: "System.TranslateInput" properties: variable: "translated" transitions: {} intent: component: "System.Intent" properties: variable: "iResult" sourceVariable: "translated" confidenceThreshold: 0.4
Como puede ver, lo primero que debe hacer es agregar dos variables como las siguientes:
autoTranslate: “boolean” translated: “string"
La variable autoTranslate es booleana y la variable traslated es una cadena.
Entonces se llama al primer estado en el flujo del bot (setAutoTranslate) de la siguiente manera:
setAutoTranslate: component: “System.SetVariable” properties: variable: “autoTranslate” value: true transitions: {}
el cual está utilizando el componente integrado System.SetVariable para establecer la variable autoTranslate en true para habilitar la traducción.
El siguiente estado es detectar qué está usando el componente integrado System.DetectLanguage. Usamos este componente para detectar el idioma del usuario.
detect: component: “System.DetectLanguage” properties: {} transitions: {}
El siguiente estado es translate, y estamos usando el componente incorporado System.TranslateInput aquí, usamos este componente para traducir explícitamente la entrada del usuario:
translate: component: “System.TranslateInput” properties: variable: “translated” transitions: {}
El componente System.TranslateInput obtendrá la entrada del usuario y llamará al servicio de traducción para traducir la entrada al idioma inglés y almacenar la traducción en la variable traducida que definimos anteriormente en el contexto.
Ahora, después de la traducción, es el momento de saber cuál es la intent del usuario, así que llamamos al System.intent para que la variable traducida vaya al Motor NLP y obtenga el intent del usuario:
intent: component: “System.Intent” properties: variable: “iResult” sourceVariable: “translated” confidenceThreshold: 0.4
Aquí el estado de intención es usar el componente System.Intent, la propiedad sourceVariable está tomando la entrada de la variable translated y devolverá el resultado del nlp y lo almacenará en la variable iResult que se define con la propiedad variable.