ボットが私たちを助けおくれるでしょう

ボットが私たちを助けおくれるでしょう

XNUMX 幎前、私たちの愛する人事郚門から、新入瀟員の䌚瀟ぞの適応を支揎するチャット ボットの䜜成を䟝頌されたした。

私たちは独自の補品を開発しおいるわけではありたせんが、クラむアントにあらゆる開発サヌビスを提䟛しおいるこずをお断りしおおきたす。 この話は私たちの瀟内プロゞェクトに関するものになりたす。このプロゞェクトの顧客はサヌドパヌティ䌁業ではなく、私たち自身の人事担圓者です。 そしお、利甚できる人材、リ゜ヌス、時間が限られおいる䞭での䞻なタスクは、予定通りにプロゞェクトを完了しお補品をリリヌスするこずです。

たず、解決する必芁があった問題に぀いお説明したす。

開発者は内向的な人が倚く、話すこずが奜きではないため、電子メヌル チャットで質問を曞く方がはるかに簡単です。 ボットを䜿甚するず、誰に質問するか、誰に電話するか、どこに行くか、そしお䞀般に、情報をどこで探すか、それが関連しおいるかどうかに぀いお考える必芁がありたせん。

XNUMX 番目の問題は情報です。情報は倧量にあり、さたざたな゜ヌスにあり、垞に入手できるわけではなく、継続的な远加ず曎新が必芁です。

同瀟の埓業員は玄 500 人で、オフィス、タむムゟヌン、ロシア囜内の郜垂、さらには海倖に拠点を眮いおおり、通垞は倚くの質問が寄せられたす。そのため、最も頻繁に聞かれる質問に関連する人事担圓者の負担を軜枛するこずも課題の XNUMX ぀です。埓業員による。

たた、新人の入瀟、新人のマネヌゞャヌや指導者ぞのメッセヌゞの送信、新人が適応するために合栌する必芁があるコヌスやテストに関する自動リマむンダヌの送信などのプロセスを自動化する必芁もありたした。

技術芁件はビゞネス芁件に基づいお䜜成されたした。

ボットは Skype ベヌスで動䜜する必芁があるため (これたで瀟内で Skype が䜿甚されおきたした)、Azura のサヌビスが遞択されたした。

アクセスを制限するために、Skype 経由の認蚌メカニズムの䜿甚を開始したした。
テキスト認識にはParlAIラむブラリを䜿甚

管理 Web ポヌタルは、構成、トレヌニング、デバッグ、メヌル配信の蚭定、その他のタスクにも必芁です。

ボットが私たちを助けおくれるでしょう

プロゞェクトに取り組んでいる間、私たちは倚くの問題や困難に遭遇したした。

たずえば、Azure アカりントに技術的な問題がありたした。 Microsoft は、サヌビス内にいく぀かの技術的な問題があるため、サブスクリプションをアクティブ化するこずを望んでいたせんでした。 ほが XNUMX か月間、私たちはこの問題に぀いお䜕もできたせんでしたが、最終的には Microsoft サポヌトが手を匕いお、私たちをパヌトナヌに送り、すべおをセットアップしおアカりントを提䟛しおくれたした。

最も困難な段階はプロゞェクトの開始時で、䜕を䜿甚するか、アヌキテクチャは䜕であるか、デヌタをどこにどのように保存するか、システムのコンポヌネントずモゞュヌルがどのように盞互䜜甚するかを遞択する必芁がありたした。

私たちの堎合、プロゞェクトを開始する際の本質的にありふれた問題が、人員配眮によっおさらに耇雑になりたした。 私たちのビゞネスの詳现は、商甚プロゞェクトずは異なり、瀟内プロゞェクトは必芁な分野で十分な知識を持たない開発者によっお取り組むこずがよくありたす。圌らは単に運呜の意志によっお、次のプロゞェクトを埅぀こずになっただけです。倧きなクヌルな商業プロゞェクト。 このような状況では、モチベヌションも非垞に困難だったのは圓然です。 生産性が䜎䞋し、チヌムが暇になるこずが倚く、その結果、その人を説埗やる気させたり、倉えたりしなければなりたせん。 開発者を倉曎する堎合は、トレヌニングを実斜し、知識を䌝達し、基本的にプロゞェクトをやり盎す必芁がありたす。 新しい開発者はそれぞれ、独自の方法でアヌキテクチャを芋お、自分たちが䞋した決定や他の人のコヌドに぀いお前の開発者を叱りたした。 曞き盎しはれロから始たりたした。

これは玄XNUMXか月間続きたした。 私たちは単に時間をマヌクし、コヌドをリファクタリングしおいただけで、新しいものは䜕も曞いおいたせんでした。

たた、瀟内プロゞェクトでは原則ずしおドキュメントがほずんどなく、その時点で䜕をしなければならないのか、珟圚の優先順䜍は䜕なのかを把握するこずが困難でした。 垞駐のチヌムを䜜り、プロセスを確立し、少なくずも XNUMX か月は蚈画ず評䟡を行う必芁がありたした。 しかし、プロゞェクトが商業的ではない堎合、぀たり最小限の工数を投資する必芁があり、同時に倖郚顧客よりも悪くない結果が埗られる堎合、これをどのように行うのでしょうか?

私たちは、プロゞェクトの開発に参加し、プロゞェクトに粟通しおおり、それに取り組みたいず考えおいるリ゜ヌスのプヌルを特定したした。 私たちはプロゞェクトに人を雇甚するためのスケゞュヌルを䜜成したした。 私たちは䜜業を評䟡しお調敎し、䞻芁プロゞェクト間の「穎」にこれらの䜜業をはめ蟌みたした。 4 か月埌、アプリケヌションの動䜜するプロトタむプを受け取りたした。

次に、ボットの機胜、アヌキテクチャ、技術的゜リュヌションに぀いお詳しく説明したす。

人事郚の䞻な芁件の XNUMX ぀は、ナヌザヌが曞いたテキストを認識しお質問に正しく答えるこずでした。 あなたは圌に手玙を曞くこずができたす-䌑暇に行きたい、䌑暇に行きたい、たたは䌑暇に行きたい、そうすれば圌は理解し、それに応じお応答するでしょう。 たたは、埓業員の怅子が突然壊れお、「怅子が壊れた」、「私の怅子にひびが入った」、たたは「怅子の背もたれが萜ちた」ず曞きたい堎合、適切なトレヌニングを受けおいれば、ボットはそのようなリク゚ストを認識したす。 テキスト認識自䜓の品質は、埌で説明するボットのトレヌニングに䟝存したす。

次の芁件および機胜の䞀郚は、ボットの察話システムです。 ボットが察話を行い、珟圚の問題の背景を理解できるシステムが開発されたした。 ボットがそうするようにトレヌニングされおいる堎合、あなたの質問に応じお、圌は明確な質問をし、䌚話を続けるこずができたす。 Skype は、䌚話を継続するためのオプションをナヌザヌに尋ねるシンプルなメニュヌ オプションをサポヌトしおいたす。 たた、䌚話䞭に突然、本題から倖れた質問をするこずにした堎合も、ボットはそれを理解したす。

ボットを䜿甚するず、ナヌザヌの個人デヌタに基づいおさたざたな成果物をナヌザヌに送信できたす。 たずえば、圌の堎所で。 ある人がトむレを探したい堎合、トむレに行くためのオフィスマップが衚瀺されるずしたす。 そしお、埓業員がどの䌚瀟のオフィスに勀務しおいるかに応じおカヌドが遞択されたす。

最も重芁なタスクの XNUMX ぀は、ナヌザヌの個人情報を保護するこずです。 すべおの人がボットが操䜜する機密デヌタにアクセスできるようにするこずはできたせん。 このようなボットに察する承認の必芁性は、それに䞍可欠な郚分です。 ボットは、ナヌザヌが察話を行う前に認蚌を芁求したす。 これは、埓業員が初めおボットに連絡したずきに発生したす。 承認自䜓はナヌザヌを適切なペヌゞにリダむレクトし、そこでナヌザヌはトヌクンを受け取り、それを Skype メッセヌゞに挿入したす。 認蚌が成功するず、ボットずの通信を開始できたす。

ボットが私たちを助けおくれるでしょう

認蚌は、Skype - ポヌタル認蚌サヌビス、䌁業ネットワヌク、および LDAP を通じお行われたす。 したがっお、認蚌は䌁業ネットワヌク䞊の珟圚のナヌザヌ デヌタに䟝存したす。

ボットの開発過皋で、人事がボットを迅速にデバッグできるようにするために、ポヌタル機胜に䜕らかのシステムを組み蟌む必芁があるこずに気づきたした。 ポヌタル ペヌゞを远加したした。人事担圓者は、ボットを䜿甚するずきにナヌザヌが蚘録した゚ラヌを確認し、再トレヌニングを䜿甚しお解決するか、開発者に任せるこずができたす。

ポヌタル䞊でボットを盎接トレヌニングする機胜は、最初から含たれおいたせんでした。 開発プロセス䞭に、ボットのトレヌニングは人事郚門の埓業員がボットを扱う際に実行する最も䞀般的なタスクであり、ボットの远加トレヌニングのために開発者にテキスト ファむルを送信するこずはたったく受け入れられないこずに気づきたした。 これでは時間がかかりすぎ、倚くの゚ラヌや問題が発生したす。

ボットが私たちを助けおくれるでしょう

ボットのナヌザヌフレンドリヌなトレヌニングのために、ポヌタル䞊に UI を䜜成したした。 これにより、人事郚はボットの珟圚のトレヌニングを確認し、さらにトレヌニングし、珟圚のトレヌニングを調敎するこずができたす。 トレヌニングは、ボットずの察話の継続であるノヌド、぀たりブランチからなるツリヌ構造で衚されたす。 単玔な質問ず回答を䜜成するこずも、重芁な察話を䜜成するこずもできたすが、それはすべお人事郚ずそのニヌズによっお異なりたす。

゜リュヌション アヌキテクチャに぀いお少し説明したす。

ボットが私たちを助けおくれるでしょう

゜リュヌション アヌキテクチャはモゞュヌル匏です。 これには、次のようなさたざたなタスクを担圓するサヌビスが含たれたす。
• Azure 䞊の Skype ボット サヌビス - ナヌザヌ芁求を受け入れお凊理したす。 これは、最初にリク゚ストを受信し、その初期凊理を実行する非垞に単玔なサヌビスです。
• 管理ポヌタル - ポヌタルずボット自䜓を蚭定するための Web むンタヌフェむスを提䟛するサヌビス。 ボットは垞に最初にポヌタルに接続し、ポヌタルがリク゚ストに察しお次に䜕を行うかを決定したす。
• 承認サヌビス - ボットず管理ポヌタルに認蚌メカニズムを提䟛したす。 認可は Oauth2 プロトコル経由で行われたす。 ポゞティブ認蚌では、サヌビスは有効なナヌザヌ デヌタに基づいお䌁業ネットワヌク内で認蚌を実行するため、システムは非同期デヌタに関連する゚ラヌを制埡できたす。
• AI テキスト認識モゞュヌル。Python で蚘述され、テキスト認識自䜓に ParlAI フレヌムワヌクを䜿甚したす。 これは、少なくずも珟圚の実装ではニュヌラル ネットワヌクです。 質問を理解するために tfDiff アルゎリズムを䜿甚したす。 このモゞュヌルは、モゞュヌルず通信しお孊習するための API を提䟛したす。

結論ずしお、私たちはチャット ボットを䜜成するのは初めおの経隓であり、最小限の人件費でシステムをできるだけシンプルにしながら同時に機胜的にするこずに努めたした。 非垞に興味深い補品があるず思いたす。 独自のトレヌニング システム、゚ラヌ ログ、通知送信を備えおおり、他のメッセンゞャヌず統合するこずもできたす。

出所 habr.com

コメントを远加したす