Assistant vocal pour les opérations sur la Bourse de Moscou: "Alice, acheter des actions Yandex"

- Alice, achète-en un Yandex.

- Ordre d'achat de Yandex au prix du marché, symbole: YNDX, nombre d'actions: 1, pour confirmer, dire «je confirme», pour annuler, dire «non».

- Je confirme.

- L'application a été exécutée.





Je crée une interface vocale open source pour effectuer des transactions sur titres à la Bourse de Moscou. J'éclosais l'idée depuis l'enfance. Je me souviens de la première fois que j'ai vu un assistant vocal dans un film il y a une vingtaine d'années, à l'époque, je n'avais même pas de téléphone filaire dans ma maison. Et maintenant j'ai une connexion Internet illimitée, un compte de courtage que je peux gérer via mon smartphone. Depuis vingt ans, la technologie est devenue plus accessible.



Comment tout a commencé



Il y a un an et demi, Yandex.Station est apparu dans ma maison. J'ai commencé à remarquer que parfois, allongée dans mon lit, j'étais trop paresseuse pour attraper mon smartphone pour lire les nouvelles, puis j'ai demandé à Alice de raconter comment le monde avait changé pendant que je dormais. Dès les premiers jours, j'ai apprécié la commodité des assistants vocaux, et je m'attendais à ce que des millions de développeurs attaquent les interfaces vocales de la même manière qu'ils s'attaquaient au développement d'applications mobiles pour toutes les occasions.



Au fil du temps, des assistants vocaux bancaires inutiles sont apparus dans le catalogue des compétences d'Alice (sans offenser les développeurs). Pour Sberbank, par exemple, l'assistant a annoncé les conditions du prêt et a proposé de venir en agence, pour Tinkoff la même chose, seulement au lieu de l'agence proposée d'aller sur le site pour remplir une candidature. Les gars qui ont développé cela, ne vous offusquez pas de moi, mais vraiment, je ne veux aller nulle part, ni au bureau, ni sur le site Web, je veux pouvoir transférer 100 roubles à un ami avec la phrase: "Alice, envoie 100 roubles à Sasha."



L'idée est à la surface, mais pour une raison quelconque, personne ne l'a encore mise en œuvre. Pourquoi? Peut-être que personne n'utilise d'assistants vocaux? Peut-être qu'il y a des restrictions législatives? Y a-t-il des problèmes de sécurité? Autre chose? Veuillez partager les commentaires si vous le savez.



À un moment donné, je suis juste sorti du lit et j'ai commencé à faire une compétence privée pour qu'Alice gère la voix de mon compte de courtage. Je suis allé voir mes courtiers et j'ai opté pour Tinkoff Investments OpenAPI. Puis il a plongé dans l'étude des capacités de la plateforme Yandex.Dialogi pendant un mois, et après un certain temps, il a acheté les premiers titres via un assistant vocal à la Bourse de Moscou - un lot de VTB Bank. J'espère que cet accord restera dans l'histoire.



Dès le début, j'ai décidé de ne pas cacher le code source pour que n'importe qui puisse configurer un assistant vocal pour lui-même: https://github.com/denismosolov/oliver



Prenez une tarte sur l'étagère et parlez enfin des problèmes.



Il y a beaucoup d'entreprises, mais je suis seul



Quand je dis à Alice: «Achetez une action Yandex», la plateforme Yandex.Dialogi extrait le nom du titre de la phrase et le convertit en un identifiant spécial FIGI (Financial Instrument Global Identifier), qui est nécessaire pour interagir avec la plateforme de trading via OpenAPI. C'est ainsi que FIGI recherche les actions Yandex cotées à la Bourse de Moscou: BBG006L8G4H1.



La conversion en FIGI ne se produit que pour les noms de sociétés que j'ai décrits dans la section Entités dans les dialogues. Vous pouvez en savoir plus à ce sujet dans la documentation . Par exemple, voici un extrait de code d'entité:



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


Ce travail est très laborieux, vous devez décrire toutes les sociétés cotées sur les bourses de Moscou et de Saint-Pétersbourg, mais le résultat peut être utile aux traders, investisseurs, développeurs d'assistants vocaux et même aux sociétés dont les actions sont cotées en bourse. Voici un fichier décrivant l'entité EFigi sur GitHub , que j'ajoute lentement.



Les gens appellent différemment les mêmes entreprises, par exemple, quelqu'un dira «Sberbank» et quelqu'un «Sberbank». Les actions ordinaires de Sberbank et les actions privilégiées (prefs) sont négociées en bourse. Je voudrais examiner toutes les options populaires.



La société est négociée sur deux bourses dans des devises différentes



Les certificats de dépôt mondiaux du Groupe TCS peuvent être achetés à la Bourse de Moscou pour des roubles ou à Saint-Pétersbourg pour des dollars. Dans le bon sens, l'assistant vocal devrait clarifier dans quelle devise acheter les reçus, mais parfois, cela peut être compris à partir du contexte.



Par exemple, lorsque je dis: «Vendez une action du groupe TCS», et que je n'ai que des actions en roubles sur mon compte, je dois vendre en roubles à la Bourse de Moscou sans préciser. Si j'ai des actions TCS Group sur mon compte en roubles et en dollars, Alice doit poser une question de clarification: "Vous avez les certificats de dépôt mondiaux TCS Group en roubles et en dollars, dans quelle devise souhaitez-vous vendre?"



Je ne l'ai pas encore implémenté et TCS Group est toujours acheté et vendu pour des dollars. Mais, j'espère, je vais bientôt commencer à passer des ordres d'achat et de vente de titres à un prix donné (ordres à cours limité), et là j'apprendrai déjà à l'assistant vocal à distribuer des actions sur différents échanges par la devise qui sera au prix d'achat ou de vente.



Erreurs de reconnaissance



Les gens demandent ce qui se passera si Alice reconnaît quelque chose de mal, par exemple, achète le mauvais papier ou le mauvais montant? Pour cela, j'ai prévu la confirmation des transactions. Après qu'Alice ait reconnu la commande d'achat ou de vente, elle dit les détails de la transaction et attend la confirmation. Si la confirmation ne suit pas, la transaction n'aura pas lieu.



Le message lors de la confirmation de la transaction est: «Demande de <achat | vente> <$ security_name> à <$ price_for_one_paper>, ticker: <$ ticker>, nombre d'actions: <$ amount>, pour confirmer, pour confirmer, pour annuler, pour dire non. "



Cette confirmation est parfaitement audible, mais il y a un défaut. Alice ne lit pas bien le nom du ticker, par exemple YNCX, cela ressemble à un yinx.



Je voulais écrire une fonction qui analyserait les tickers par lettre, et pour chaque lettre, le son du doublage de l'alphabet anglais était joué. Le code prendrait la chaîne YNDX en entrée et retournerait cette ligne au format tts:



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


Alice jouera des sons et, en théorie, tout sonnera bien.



Sécurité des transactions





Pour utiliser OpenAPI, vous devez désactiver la confirmation des transactions par SMS dans Tinkoff Investments, ce qui crée des risques de sécurité. Par exemple, un investisseur est allé se promener avec son chien, et les enfants ont décidé de jouer avec Alice et ont vendu toutes les actions.



La première chose qui me vient à l'esprit est d'utiliser un mot de code pour confirmer les transactions, mais les enfants peuvent facilement l'entendre et s'en souvenir. Et les autres options qui me sont venues à l'esprit demanderont aux développeurs d'assistants vocaux de faire de gros efforts. La chose la plus cool est l'identification d'une personne par la voix, c'est-à-dire faites en sorte que seul le titulaire du compte puisse conclure un accord, et Alice refuserait poliment toute autre personne. A en juger par le fait qu'Alice sait mémoriser les gens par la voix , le travail se poursuit dans ce sens. Mais cela ne semble pas être aussi simple à faire.



Une autre option qui vient à l'esprit est la confirmation des transactions par une empreinte digitale, comme sur les smartphones, mais pour cela, un lecteur d'empreintes digitales doit être intégré dans la colonne intelligente, mais cela ne sera probablement pas très pratique, et cela augmentera très probablement le coût haut-parleur intelligent.



Si vous savez comment confirmer des transactions dans des applications similaires à l'étranger ou si vous souhaitez simplement partager une idée, veuillez écrire dans les commentaires.



Au lieu d'une conclusion



Comme le dit un ancien collègue: «Tout ira bien, mais un peu plus tard». Je crois que les banques et les courtiers vont tôt ou tard mettre en œuvre tout cela, mais pour l'instant, cela reste le lot des passionnés et des décideurs comme moi.



A bientôt!



All Articles