Asistente de voz para operaciones en la Bolsa de Moscú: "Alice, compra acciones de Yandex"

- Alice, compra uno Yandex.

- Orden para comprar Yandex a precio de mercado, ticker: YNDX, número de acciones: 1, para confirmar, decir "Confirmo", para cancelar, decir "no".

- Confirmo.

- Solicitud completada.





Estoy creando una interfaz de voz para realizar transacciones con valores en el código abierto de la Bolsa de Moscú. Estaba tramando la idea desde la infancia. Recuerdo la primera vez que un asistente de voz me vio en una película hace unos veinte años, mientras ni siquiera tenía un teléfono con cable en mi casa. Y ahora tengo una conexión a Internet ilimitada, una cuenta de corretaje que puedo administrar a través de mi teléfono inteligente. Más de veinte años, la tecnología se ha vuelto más asequible.



Cómo todo empezó



Hace un año y medio, Yandex.Station apareció en mi casa. Comencé a notar que a veces, acostada en la cama, era demasiado perezosa para alcanzar mi teléfono inteligente para leer las noticias, y luego le pedí a Alice que dijera cómo había cambiado el mundo mientras dormía. Desde los primeros días, aprecié la conveniencia de los asistentes de voz, y esperaba que millones de desarrolladores se lanzaran a las interfaces de voz de la misma manera que alguna vez se lanzaron al desarrollo de aplicaciones móviles para todas las ocasiones.



Con el paso del tiempo, aparecieron inútiles asistentes de voz bancarios en el catálogo de habilidades de Alice (sin ofender a los desarrolladores). En Sberbank, por ejemplo, el asistente anunció los términos del préstamo y ofreció ir a la sucursal, en Tinkoff lo mismo, solo que en lugar de la sucursal que ofreció ir al sitio para completar una solicitud. Chicos que desarrollaron esto, por favor no se ofendan, pero, en realidad, no quiero ir a ningún lado, ni al departamento ni al sitio web, quiero poder transferir 100 rublos a un amigo con la frase: "Alice, envía 100 rublos a Sasha".



La idea yace en la superficie, pero por alguna razón, nadie la ha implementado todavía. ¿Por qué? ¿Tal vez nadie usa asistentes de voz? Tal vez hay restricciones legales? ¿Hay problemas de seguridad? ¿Algo más? Por favor comparte en los comentarios si lo sabes.



En algún momento, me levanté de la cama y comencé a hacer una habilidad privada para que Alice administrara mi cuenta de corretaje. Revisé mis corredores y me decidí por Tinkoff Investments OpenAPI. Luego se sumergió en el estudio de las capacidades de la plataforma Yandex.Dialogi durante un mes, y después de un tiempo compró los primeros valores a través de un asistente de voz en la Bolsa de Valores de Moscú, un lote de VTB Bank. Espero que este acuerdo pase a la historia.



Desde el principio, decidí que no ocultaría el código fuente para que cualquiera pudiera configurar un asistente de voz para ellos: https://github.com/denismosolov/oliver



Tome un pastel del estante y finalmente cuente sobre los problemas.



Hay muchas empresas y estoy solo



Cuando le digo a Alice: "Compre una acción de Yandex", la plataforma Yandex.Dialogi extrae el nombre de la seguridad de la frase y la convierte en un identificador especial FIGI (Identificador Global de Instrumento Financiero), que se requiere para interactuar con la plataforma de negociación a través de OpenAPI. Así es como FIGI busca las acciones de Yandex negociadas en la Bolsa de Moscú: BBG006L8G4H1.



La conversión a FIGI ocurre solo para los nombres de compañías que describí en la sección Entidades en Diálogos. Puede leer más sobre esto en la documentación . Por ejemplo, aquí hay un fragmento de código de entidad:



entity EFigi:
    values:
        BBG005DXJS36:
            %exact
            TCS
            %lemma
            ()?
            ()?
            ()?
               ()?


Este trabajo tiene mucho trabajo, es necesario describir todas las compañías que cotizan en las bolsas de Moscú y San Petersburgo, pero el resultado puede ser útil para los comerciantes, inversores, desarrolladores de asistentes de voz e incluso compañías cuyas acciones se negocian en bolsas. Aquí hay un archivo que describe la esencia de EFigi en GitHub , y poco a poco voy añadiéndole .



La gente llama a las mismas compañías de manera diferente, por ejemplo, alguien dirá "Sberbank" y alguien "Sberbank". Las acciones ordinarias de Sberbank y las preferidas (prefs) se negocian en la bolsa de valores. Me gustaría considerar todas las opciones populares.



La compañía cotiza en dos bolsas en diferentes monedas.



Los recibos de depósito globales del Grupo TCS se pueden comprar en la Bolsa de Moscú por rublos, o en San Petersburgo por dólares. En el buen sentido, el asistente de voz debe aclarar en qué moneda comprar los recibos, pero a veces, esto puede entenderse desde el contexto.



Por ejemplo, cuando digo: "Vender una acción en TCS Group" y solo tengo acciones en rublos en mi cuenta, entonces necesito venderlas en rublos en la Bolsa de Moscú sin especificar. Si tengo acciones de TCS Group en mi cuenta en rublos y dólares, Alice debería hacer una pregunta aclaratoria: "Usted tiene los recibos de depósito globales del Grupo TCS en rublos y dólares, ¿en qué moneda desea vender?"



Todavía no he implementado esto y TCS Group siempre se compra y se vende por dólares. Pero, espero, pronto comenzaré a hacer pedidos para la compra y venta de valores a un precio determinado (órdenes limitadas), y allí ya le enseñaré al asistente de voz a distribuir acciones en diferentes intercambios por la moneda que estará en el precio de compra o venta.



Errores de reconocimiento



La gente pregunta, ¿qué sucederá si Alice reconoce algo mal, por ejemplo, compra el papel incorrecto o la cantidad incorrecta? Para esto, proporcioné la confirmación de las transacciones. Después de que Alice reconoce el comando de compra o venta, dice los detalles de la transacción y espera la confirmación. Si la confirmación no sigue, entonces la transacción no tendrá lugar.



El mensaje al confirmar el acuerdo suena así: "Pedido para <comprar | venta> <$ name_of_securities> a <$ price_for_one_paper>, ticker: <$ ticker>, número de acciones: <$ cantidad>, para confirmar, decir confirmar, cancelar, decir no ".



Esta confirmación es perfectamente audible, pero hay un defecto. Alice no lee bien el nombre del ticker, por ejemplo, YNCX, suena como un yinx.



Quería escribir una función que analizara los tickers por letra, y para cada letra reproducía un sonido del alfabeto inglés. El código tomaría una cadena YNDX como entrada y devolvería una cadena como esta en formato tts:



<speaker audio="sounds-y.opus"><speaker audio="sounds-n.opus"><speaker audio="sounds-d.opus"><speaker audio="sounds-x.opus">


Alice tocará sonidos y, en teoría, todo sonará bien.



Seguridad al realizar transacciones





Para usar OpenAPI, debe deshabilitar la confirmación de transacciones a través de SMS en Tinkoff Investments, y esto crea riesgos de seguridad. Por ejemplo, un inversionista salió a caminar con su perro, y los niños decidieron jugar con Alice y vendieron todas las acciones.



Lo primero que viene a la mente es usar una palabra de código para confirmar las transacciones, pero los niños pueden escucharlas y recordarlas fácilmente. Y las otras opciones que se me ocurrieron requerirán que los desarrolladores de asistentes de voz realicen grandes esfuerzos. Lo mejor es la identificación de una persona por voz, es decir hazlo para que solo el propietario de la cuenta pueda hacer un trato, y Alice rechazará cortésmente a cualquier otra persona. A juzgar por el hecho de que Alice sabe cómo memorizar a las personas por voz , el trabajo en esta dirección está en marcha. Pero no parece ser tan fácil de hacer.



Otra opción que viene a la mente es confirmar las transacciones usando una huella digital, como en los teléfonos inteligentes, pero para esto se debe incorporar un lector de huellas digitales en el altavoz inteligente, pero esto probablemente no sea muy práctico y probablemente aumente el costo altavoz inteligente



Si sabe cómo confirmar transacciones en aplicaciones similares en el extranjero o simplemente desea compartir una idea, escriba los comentarios.



En lugar de una conclusión



Como dice un ex colega: "Todo estará bien, pero un poco más tarde". Creo que los bancos y los corredores implementarán todo esto tarde o temprano, pero por ahora, sigue siendo la gran cantidad de entusiastas y fabricantes como yo.



¡Nos vemos en el futuro!



All Articles