モスクワ取引所での運用の音声アシスタント:「アリス、Yandexの株式を購入」

-アリス、Yandexを1つ買う。

-市場価格でYandexを購入する注文、ティッカー:YNDX、株数:1確認するには「確認」と言い、キャンセルするには「いいえ」と言います。

- 私が確認する。

-申し込みが完了しました。





モスクワ取引所のオープンソースで証券との取引を行うための音声インターフェースを作成しています。私は子供の頃からアイデアを孵化させていました。家に有線電話さえ持っていなかったのに、20年ほど前に初めて音声アシスタントが映画に出演したのを覚えています。そして今、私は無制限のインターネット接続、私のスマートフォンを介して管理できる証券口座を持っています。20年以上にわたって、テクノロジーはより手頃な価格になりました。



すべての始まり



一年半前、Yandex.Stationが私の家に現れました。私は時々、ベッドで横になっていると、怠惰すぎてスマートフォンでニュースを読むことができないことに気づき始めました。それから、アリスに、眠っている間に世界がどのように変わったか教えてもらいました。最初の日から、音声アシスタントの利便性を高く評価し、何百万人もの開発者があらゆる場面でモバイルアプリケーションの開発を攻撃するのと同じ方法で音声インターフェイスを攻撃すると予想しました。



時が経つにつれ、役に立たない銀行の音声アシスタントがアリスのスキルのカタログに登場しました(開発者に害はありません)。たとえば、Sberbankの場合、アシスタントはローンの条件を発表し、支店に来ることを提案しました。Tinkoffの場合も同じで、支店に申し込みをするためにサイトに行くことを提案したのではありません。これを開発した人たち、私に腹を立ててはいけませんが、私は本当にどこにも行きたくありません。部署にもサイトにも行きたくありません。「アリス、100ルーブルをサーシャに送って」というフレーズで友人に100ルーブルを転送できるようにしたいのです。



アイデアは表面にありますが、何らかの理由でまだ誰もそれを実装していません。どうして?多分誰も音声アシスタントを使用していませんか?多分立法上の制限があるのでしょうか?たぶんセキュリティの問題がありますか?他に何か?ご存知でしたらコメント欄でシェアしてください。



ある時点で、私はベッドから起き上がって、アリスが私の仲介口座を音声制御するためのプライベートスキルを始めました。私はブローカーを経由して、Tinkoff Investments OpenAPIに落ち着きました。その後、彼は1か月間Yandex.Dialogiプラットフォームの機能を調査し、しばらくするとモスクワ証券取引所の音声アシスタントを通じて最初の証券を購入しました。この取引が歴史に残ることを願っています。



当初から、誰もが自分で音声アシスタントを設定できるように、ソースコードを非表示にしないことにしました。https//github.com/denismosolov/oliver



棚からパイを取り出し、最後に問題について教えてください



多くの会社がありますが、私は一人です



アリスに「1つのYandex共有を購入する」と言うと、Yandex.Dialogiプラットフォームはフレーズからセキュリティの名前を抽出し、OpenAPIを介して取引プラットフォームと対話するために必要な特別なFIGI(Financial Instrument Global Identifier)識別子変換します。これがFIGIがモスクワ取引所で取引されているYandex株BBG006L8G4H1を探す方法です。



FIGIへの変換は、「ダイアログ」のエンティティ」セクション説明した会社名に対してのみ発生します。詳細については、ドキュメントをご覧ください。たとえば、次はエンティティコードのスニペットです。



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


この作業は非常に骨の折れる作業であり、モスクワとサンクトペテルブルクの証券取引所で取引されているすべての会社を説明する必要がありますが、結果はトレーダー、投資家、音声アシスタントの開発者、および証券取引所で取引されている会社でさえ役立つ場合があります。これはGitHubEFigiエンティティ説明するファイルです。ゆっくりと追加しています。



同じ会社にさまざまな方法で名前を付けます。たとえば、「Sberbank」と言う人と「Sberbank」と言う人がいます。ズベルバンクの普通株と優先株(株)は、証券取引所で取引されています。すべての一般的なオプションを検討したいと思います。



同社は異なる通貨で2つの取引所で取引されています



TCS Group Global Depositary Receiptsは、モスクワの交換所でルーブルに、またはサンクトペテルブルクの交換所でドルで購入できます。音声アシスタントは、領収書を購入する通貨を指定する必要がありますが、コンテキストから理解できる場合もあります。



たとえば、「TCSグループで1株を売る」と言った場合、自分のアカウントにルーブルでの株しかないので、モスクワ取引所でルーブルで指定せずに売ります。アカウントにTCSグループのルーブルとドルでのシェアがある場合、アリスは明確な質問をする必要があります。「ルーブルとドルのTCSグループのグローバル預金レシートがあり、どの通貨で販売したいですか?」



私はまだこれを実装しておらず、TCS Groupは常にドルで売買されています。しかし、私はまもなく、特定の価格での証券の売買の申し込み(限度額申し込み)を開始することを望み、そこで、音声アシスタントに、購入または売却価格になる通貨でさまざまな取引所に株式を注ぐように教えます。



認識エラー



アリスが何か間違ったことを認識した場合、たとえば間違った紙や間違った金額を購入した場合、どうなるでしょうか?このため、私は取引の確認を提供しました。アリスは買いまたは売りのコマンドを認識した後、トランザクションの詳細を言って確認を待ちます。確認がない場合、取引は行われません。



取引を確認するときのメッセージは次のように聞こえます。セール> <$ security_name> at <$ price_for_one_paper>、ティッカー:<$ティッカー>、株式数:<$金額>、確認する、確認する、キャンセルする、いいえと言う



この確認は完全に聞こえますが、欠点が1つあります。アリスはティッカーの名前をよく読みません。たとえば、YNCXは「yinks」のように聞こえます。



ティッカーを文字ごとに解析する関数を書きたかったのですが、文字ごとに英語のアルファベットの音から音を出しました。コードは文字列YNDXを入力として受け取り、この行をtts形式で返します。



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


アリスは音を鳴らし、理論的にはすべてが良い音になります。



取引時のセキュリティ





OpenAPIを使用するには、Tinkoff InvestmentsでSMSによるトランザクションの確認を無効にする必要があります。これにより、セキュリティリスクが発生します。たとえば、投資家が犬と散歩に出かけ、子供たちはアリスと遊ぶことを決め、すべての株を売りました。



最初に頭に浮かぶのは、コードワードを使用して取引を確認することですが、子供たちは簡単に聞き取り、覚えることができます。そして、私の頭に浮かんだ他のオプションは、音声アシスタント開発者の多大な努力を必要とします。最もクールなのは、声で人を識別することです。アカウントの所有者だけが取引を行えるようにし、アリスは他の人を丁寧に拒否します。アリスが人を音声暗記する方法を知っているという事実から判断すると、この方向での作業は進行中です。しかし、これはそれほど簡単ではないようです。



頭に浮かぶもう1つのオプションは、スマートフォンなどの指紋による取引の確認ですが、これには指紋リーダーをスマートカラムに組み込む必要がありますが、これはあまり実用的ではなく、おそらくコストが増加します。スマートスピーカー。



海外で同様のアプリケーションでの取引を確認する方法を知っているか、アイデアを共有したい場合は、コメントに書き込んでください。



結論の代わりに



元同僚が言うように:「すべてはうまくいくが、少し後で」。私は銀行とブローカーが遅かれ早かれこれらすべてを実装すると信じていますが、今のところ、私のような多くの愛好家やメーカーが残っています。



また会いましょう!



All Articles