Hace unos meses, Yandex
lanzó una versión beta de su asistente de voz Alice , en la que abrió su API. Y recientemente hice todo público. Ahora millones de usuarios pueden lanzar varias funciones y servicios por voz directamente desde la búsqueda móvil, el navegador y desde el navegador Yandex. No es sorprendente que haya más y más habilidades de voz. Pero la API de diálogo supone que debe poder programar, debe tener su propio servidor con HTTPS y, además, debe poder procesar las solicitudes en un lenguaje natural ...
Mientras tanto, Google ha tenido un diseñador de diálogo gratuito y bastante conveniente llamado Dialogflow. Por supuesto, él no es compatible con el protocolo de Alice, por lo que surgió la idea de corregir esta situación para que los desarrolladores (y no solo) rápidamente y sin servidores creen habilidades para Alice, que puede entender el habla natural y el contexto del diálogo.
¿Qué es Dialogflow?
Dialogflow es un servicio en línea de Google que le permite crear sus propios bots de chat o
funciones para un asistente de Google (esto se llama
agente ). Ya hay algunos buenos artículos sobre Habré, que analizan las principales herramientas de este producto.
Aquí está uno de ellos .
De hecho, Dialogflow puede hacer coincidir la frase de un usuario en un idioma natural (y también en ruso) con algún significado "no lingüístico" (llamado
intento ) y responder algo. Además, también mantiene el contexto del diálogo para que la siguiente frase pueda reaccionar en el contexto de comentarios anteriores.
La herramienta es bastante simple de administrar y aún almacena todas las estadísticas de las solicitudes, para que pueda volver a capacitar al agente con nuevas intenciones o reponer las existentes con un solo clic. En realidad, así es como ocurre la capacitación: solo muestra ejemplos de solicitudes que se relacionan con una intención particular en su agente, y Dialogflow crea automáticamente un modelo y comprende al usuario cada vez mejor. También puede seleccionar algunas entidades de la frase, por ejemplo, fechas o ciudades, si lo necesita para realizar alguna función.
¿Por qué es Alice?
Alice
tiene una API similar a la API de telegramas. En otras palabras, para crear una habilidad para Alice, debe crear un servidor que recibirá una solicitud de texto de Alice del usuario y responderá con los datos en el formato deseado. Todo parece ser simple, pero para crear incluso la habilidad más simple, necesitará estudiar el protocolo de Alice, elevar su servidor público con HTTPS, escribir código que pueda entender el lenguaje humano y mantener el contexto de la conversación.
Para que no tenga que hacer todos estos pasos cada vez, pero al mismo tiempo si no es un programador y realmente necesita tener la habilidad correcta, puede usar Dialogflow.
Dialogflower

Solo Dialogflow no es compatible con el protocolo de Alice, por lo que no puedes convertir un agente en una habilidad. Para esto, se
creó el servicio
dialogflower.com , que es esencialmente un adaptador: implementa el protocolo de Alice por un lado y se conecta al agente de Dialogflow por el otro. Y así convierte al agente en una habilidad. Sin ningún servidor y código.

Crear un agente

Entonces, ahora solo podemos enfocarnos en la lógica del diálogo en sí mismo en nuestro agente. Primero debe crear este mismo agente en el sitio
dialogflow.comDespués de ingresar, se nos pedirá que encontremos el nombre del agente y que elijamos su idioma. Solo se pueden usar letras latinas en el nombre, y recuerde cambiar el idioma al ruso.
Después de eso, puede agregar intenciones, temas que nuestro agente comprenderá y de alguna manera responderá a ellos.
Intención de bienvenida predeterminada
Esta intención existe por defecto en cada agente. No se activa en alguna frase de usuario, sino en el evento de
bienvenida . Es decir, cuando un usuario inicia su habilidad en Alice con una frase como "Lanzar la habilidad es mi habilidad más necesaria". Entonces todavía no hay un comando del usuario, y el agente en respuesta, como regla, simplemente debe decir qué se puede hacer a continuación.
Si hace clic en Intento de bienvenida predeterminado en la lista de intentos, en la parte inferior de la página puede agregar Respuestas, respuestas de las cuales el agente selecciona aleatoriamente una cada vez y se la envía a Alice.
Alice todavía sabe cómo mostrar botones y enlaces, luego mostraremos cómo agregarlos a la respuestaHaga clic en
Agregar respuesta - Respuesta de texto y agregue las opciones de respuesta de texto.
Intención de reserva predeterminada

Y esta intención se activa cuando el usuario dice una frase que el agente no puede atribuir a ninguna de las intenciones existentes. Es decir, cuando el agente simplemente no comprende la solicitud del usuario. Aquí también puede configurar las respuestas que Alice dará cuando no sepamos qué responder.
Respondemos a las réplicas
Si hace clic en el signo más al lado de la palabra Intentos en el menú de la izquierda, puede agregar un nuevo intento y especificarle una lista de frases a las que debe responder algo. En la lista
Frases de entrenamiento , agregue las frases que el usuario probablemente pronuncie. Cuantos más, mejor.
Por supuesto, Dialogflow entiende el inglés mejor que el ruso. Por lo tanto, no espere que comprenda todas las frases sinónimas que tengan un significado apropiado. En este sentido, nuestro Aimylogic analógico funciona mejor, de lo que hablaré a continuación.No olvide agregar respuestas a su intención y haga clic en el botón
Guardar . Sin eso, nada funcionará.
Puede probarlo aquí, en el lado derecho de la pantalla. Escriba su frase de prueba en el campo Pruébelo ahora y vea lo que respondió su agente.
Crear habilidad
Ahora todo está listo para sujetar nuestro agente creado a Alice y probarlo en la consola Yandex Dialog. Para hacer esto, vaya a
dialogflower.com y haga clic en
Crear habilidad . En la ventana que aparece, especifique el
token de acceso de Cliente de su agente. Se puede encontrar en la página de configuración del agente en Dialogflow. Haga clic en
Finalizar y en un segundo tendrá una
URL de Webhook con la que iremos a los Diálogos de Yandex.

Luego cree una nueva habilidad para Alice y especifique esta URL de Webhook en su configuración. Además de eso, para las pruebas solo necesita encontrar el nombre de la habilidad, todos los demás campos aún no son obligatorios. Haga clic en
Guardar y vaya a la pestaña
Prueba . Aquí puede escribir algo y verificar que su habilidad esté funcionando como se esperaba.
Aumentamos la funcionalidad
Ahora nuestra habilidad está lista, y todos los cambios afectarán solo al agente en Dialogflow. Simplemente agregue y cambie las intenciones, no olvide hacer clic en el botón Guardar y probar el resultado en la consola Yandex.Dialogs.
Cómo entender el contexto.
Dialogflow puede encadenar las intenciones para que su habilidad pueda responder adecuadamente a las frases pronunciadas en el contexto de una conversación. Para hacer esto, simplemente agregue la intención a otra intención. Para hacer esto, vaya a la lista de intentos y pase el mouse sobre uno de ellos. Aparece un tenue mensaje
Agregar intento de seguimiento a la derecha. Haga clic en él y agregue una intención que funcionará en el contexto de la anterior.
Es decir, por ejemplo, si tiene una intención que responde a frases como "¿Qué tiempo hace?", Entonces puede agregar una intención con frases como "mañana". Luego, el agente procesará esta frase solo si el usuario primero solicitó información sobre el clima.
Cómo agregar botones a la respuesta de Alice
Alice puede responder no solo con texto, sino también mostrar botones y enlaces. Al hacer clic en el botón, el usuario, por así decirlo, forma una nueva solicitud, solo sin pronunciarla y sin escribir.
Para agregar botones a la respuesta, debe escribir una pieza de JSON en un formato que Alice entienda. Para hacer esto, vaya a la intención deseada, vaya a las respuestas allí y haga clic en
Agregar respuestas - Carga útil personalizada . Aquí puede especificar una respuesta de la API de Alice. Por ejemplo, para agregar botones, escriba
{"buttons": [ {"title": " ", "hide": true} ]}
Aquí se agrega un botón, que enviará a Alice una solicitud de "Texto de solicitud" cuando se presione y desaparecerá automáticamente del historial de chat después de eso. Y aquí hay otro ejemplo.
{"buttons": [ {"title": " ", "hide": true}, {"title": " ", "url": "https://dialogflower.com"} ]}
Aquí se agregarán dos botones, uno de los cuales es un enlace a dialogflower.com
En general, puede escribir cualquier JSON en Payload en el formato del campo "respuesta" del protocolo de Alice .
¿Dónde está la lógica?
Por supuesto, no siempre necesita responder con frases aleatorias, sino estáticas. Para agregar algo de lógica, necesitará escribir un pequeño código. Bueno, o mucho, depende de ti. Pero Dialogflow le permite hacer esto sin alquilar servidores.
Vaya a la pestaña
Cumplimiento y active el interruptor Desactivado. Aquí puede escribir un código Javascript que responderá según sea necesario a la intención activada y realizará algún tipo de lógica antes de enviar la respuesta al usuario. En realidad, la respuesta en sí misma se puede redefinir inmediatamente en el código.
Aquí no describiré cómo y qué hacer con este código, solo daré un
buen ejemplo en github , en el que el agente puede crear eventos en el calendario de Google, registrando al usuario para arreglar la bicicleta en horas libres.
La principal ventaja aquí es que no tiene que generar un servidor separado para implementar algún tipo de lógica para su agente. Google hará todo por usted y de forma gratuita.
Al final
Alice está siendo utilizada por más y más personas en el país. Ella trabaja en la búsqueda, y en el navegador, y en el navegador, y pronto la
columna de inicio con Alice a bordo saldrá a la venta.
Alice tiene una API y cada día aparecen más y más habilidades de voz para ella.
Dialogflow de Google proporciona una buena herramienta para desarrollar aplicaciones de voz incluso sin habilidades de programación y con la posibilidad de ejecutar su código en los servidores de Google de forma gratuita.
Dialogflower conecta al agente en Dialogflow con Alice para que pueda crear rápidamente habilidades y experimentar.
Entonces, ¿cuál era el problema? Además, Dialogflower es tan libre como Dialogflow con Alice.
Volar en la pomada
Estas fueron todas flores interactivas, pero no todo es tan hermoso en el mundo real. Por supuesto, Dialoglfow es una herramienta genial, pero en ruso no funciona tan bien como en inglés. Hasta ahora, no entiende muchos sinónimos, y habrá que matarlos manualmente al crear la intención.
Otra desventaja es que en Dialogflow es bastante difícil administrar incluso un diálogo un poco complicado. Simplemente no puede revisarlo, ya que las intenciones son solo una lista plana.
Hace solo un par de días
, se introdujo una herramienta con una funcionalidad similar en Habré, que también sabe cómo entender el habla rusa natural, pero lo hace mucho mejor, entiende los sinónimos, incluso si entrenó al bot solo con un par de frases. Todavía no hay muchas funciones de Dialogflow, como la extracción de entidades o las estadísticas. Pero hay un editor visual genial en el que todo el curso del diálogo con el usuario es inmediatamente visible. Y puede agregar lógica sin escribir código.
Sin embargo, los desarrolladores siempre ganan en una competencia viva entre los fabricantes de herramientas para desarrolladores.