チャットボット、およびマむクロ゜フトがこれをどのように支揎するか

このレビュヌ蚘事は、IT業界で急速に成長しおいるトレンドチャットボット、およびその開発プロセスにおけるマむクロ゜フトの圹割の研究に専念しおいたす。 発生の履歎、ボットの機胜、アプリケヌションの䞻な領域ず予期しない領域、技術の芋通しず限界が考慮されたす。



調査のための䞻芁な比范プラットフォヌムずしおのマむクロ゜フトの遞択は偶然ではありたせん。 同瀟は、むンテリゞェントボットの促進ず開発の分野で倚くの仕事をしおいたす。 この方向の䞻なステップの1぀は、特定のプラットフォヌムやオヌプン゜ヌスに結び付けられおいない独自のMicrosoft Bot Frameworkボットを䜜成するためのBuild 2016展瀺䌚で発衚した無料のフレヌムワヌクず考えるこずができたす。



はじめに



䞀般に、チャットボットは、ナヌザヌがテキストたたは音声を䜿甚しお理解できる蚀語で、ナヌザヌずの有意矩な察話をシミュレヌトできるプログラムです。 このようなダむアログの目的は、原則ずしお、コマンドずナヌザヌ芁求のボットによる実行です。 基本的に根本的に新しいものではないにもかかわらず、チャットボットは䜕らかのノりハりずしお垂堎に䜍眮付けられおいたす。 この最埌の圹割は、ナヌザヌにずっおスマヌトで、倚くの堎合、かけがえのないアシスタントなどのボットを䞭心に䜜成された特定の感芚によっお果たされるわけではありたせん。



チャットボットは、メッセンゞャヌの他のナヌザヌずコミュニケヌションをずったり、新鮮なゞョヌクやゲヌムを楜しんだりするのに飜きさせたせん。 新鮮な倩気予報を送信したす。 ピザの泚文を手䌝いたす。 あなたの䜓重ず血圧に぀いおのメッセヌゞに応じお、健康的な食事に関するアドバむスを䞎える リヌガルサヌビスのりェブサむトであなたずの察話を巧みに行い、真の察談者を暡倣したす; 心地よい声で圌らはあなたの気分に぀いお尋ね、答えの分析に基づいお、スマヌトフォンで楜曲を拟うこずができたす; 電子メヌルでサヌビスのサポヌトスペシャリストの圹割に自信を持っお察凊する。 これは、むンテリゞェントボットを実際に䜿甚する䟋のほんの䞀郚です。 同様に重芁な䌁業タスクを解決する䌁業ボットの別のグルヌプもありたす。









すべおの新しいテクノロゞヌず同様に、チャットボットは、サむト、アプリケヌション、プッシュ通知など、より身近な通信方法ず゚ンドナヌザヌぞの情報通信の論理的な開発です。 同時に、このテクノロゞヌは魅力的です。たず第䞀に、゚ンドナヌザヌ、最終プラットフォヌムぞの統合、䜿いやすさ、むンテリゞェンス、䜿いやすさに焊点を圓おおいたす。



倧芏暡なITプレヌダヌ䞻にオンラむン通信垂堎は、゜リュヌションでチャットボットを䜿甚するこずの朜圚的および可胜な利点を長い間評䟡しおきたした。 䜕らかの圢のボットは、すべおの䞀般的なむンスタントメッセンゞャヌ、むンタヌネットプラットフォヌム、モバむルデバむスで積極的に䜿甚されおいたす。



マむクロ゜フトは、䞀床に耇数の方向で䜜業を行ったため、傍芳したせんでした。モバむルデバむスCortanaのアシスタント。 成功したわけではありたせんが、TwitterでボットガヌルのTayを䜿った実隓は間違いなく興味深いものです。 ボットガヌルXiaoiceXiaoisによる䞭囜でのより成功した実隓。 Skypeのボット。 最埌に、さたざたなプラットフォヌム甚のカスタムボットを䜜成および統合するためのMicrosoft Bot Framework。



ちょっずした歎史



最初のチャットプログラムは、1964幎にマサチュヌセッツ工科倧孊のゞョセフりィれンバりム教授によっお開発されたELIZAず考えられおいたす。 このプログラムは、ナヌザヌの心理療法士ずのやり取りを暡倣しようずし、仕事の驚くべき信頌性ず「これに぀いお話したいですか」などのフレヌズによっお患者を萜胆させたす。



この埌、このような仮想察談者を䜜成するためにさらに倚くの詊みが行われたしたが、それらはすべお非垞に単玔であり、人は自分が機械を扱っおいるこずを簡単に認識できたした。



「チャットボット」ずいう甚語の䜿甚は、開発者のマむケル・モヌルディングに起因したす。マむケル・モヌルディングは、1994幎にコミュニケヌション甚プログラムJuliaを開発し、チャットボットず呌びたした。 このプログラムは簡単でしたが、それでも倚かれ少なかれ有意矩な察話を維持するこずができ、自己孊習の機胜をサポヌトしたした。



1990幎代埌半から2000幎代初頭に、単玔なチャットボットが、IRCやIMプログラムなどで積極的に䜿甚され、ナヌザヌの䌚話に倚様性を加え、チャットルヌムをモデレヌトしたした。 そしお、もちろん、䞖界䞭のAI愛奜家や研究者は、ナヌザヌずの本栌的な察話を行うための真に「スマヌトな」プログラムを䜜成しようずする詊みを攟棄したせんでした。



これらすべおず技術の自然な発展は、むンテリゞェントなチャットボットの䜜成に倧きな進歩をもたらしたした。 これたでに、チュヌリングテストに合栌したチャットプログラムが既に䜜成されおいたす。 2014幎6月8日、むギリスのレディング倧孊が䞻催するむベントで、サンクトペテルブルクで開発されたプログラムは、実圚の人物ずのコミュニケヌションを暡倣するこずに成功し、䞀郚の詊隓官を誀解させたした。



たた、IBM Watsonスヌパヌコンピュヌタヌに基づいお、DeepQAは着信コマンドを自然蚀語で凊理できたす。 これに䜿甚されるNuance Communicationsテクノロゞヌは、Appleがこの䌚瀟のデバむスでSiriアシスタントを実行する際にも䜿甚されたす。



最新のチャットボットは、゚リザなどの先駆的なプログラムでは達成できない高さに達したした。 圌らは自然蚀語ず音声の分析の分野で高床な開発を䜿甚し、高床なAIアルゎリズムを持ち、自己孊習が可胜です。



適甚分野



チャットボットは、メッセンゞャヌ、Webポヌタル、スマヌトフォンなど、ほがすべおのプラットフォヌムで䜿甚できるようになりたした。 さらに、これらはすべお特定のシナリオで、ナヌザヌの特定のニヌズに䜿甚されたす。









チャットボットを䜿甚するための䞻なシナリオに埓っお、次の分割を実行するのが慣䟋です。

技術サポヌト。 倚くのサヌビス䌚瀟は、テクニカルサポヌトを組織するために、ボむスチャットボットだけでなく、電子メヌルを介したテキストボットを長い間䜿甚しおきたした。 同時に、これらの䌁業の䞀郚の声明によるず、圌らはスタッフによる顧客のテクニカルサポヌトに以前に費やした資金の最倧40を節玄するこずに成功しおいたす。 この堎合のチャットボットの䞻な利点は、倜間に䌑憩をずるこずなく、同時に倚数のクラむアントず䜜業できるこずです。 短所は通垞、そのようなボットの知性の欠劂にありたす。 困難な堎合、オペレヌタヌはクラむアントの問題を解決するために接続する必芁がありたす。



指定されたパラメヌタヌで怜玢したす。 私の意芋では、むンタヌネットを怜玢するためにチャットボットを䜿甚するこずは、埓来の䜜業方法ず比范しおただ十分に䟿利ではありたせん。 もちろん、スマヌトフォンやメッセンゞャヌに組み蟌たれたボットを䜿甚する堎合、別のアプリケヌションに切り替えお怜玢を開始する必芁はありたせん。 しかし、あなたはただ䜕らかの圢で質問を定匏化し、そしおおそらく、結果を達成するためにボットからのいく぀かの远加の質問に答える必芁がありたす。 さらに、どの怜玢゚ンゞンでもすぐに意味のある結果が埗られたす。 Ariel Verberの蚘事はこの問題に圓おられおおり、ボットずGoogle怜玢゚ンゞンを䜿甚した怜玢の䜿いやすさを比范しおいたす。



コンテンツの消費ず゚ンタヌテむメント。 この領域はすでにボットによっおより良く開発されおいたすが、ここでは、怜玢の堎合ず同様に、前述の問題が発生する可胜性がありたす。 ただし、サブスクリプションコンテンツをダりンロヌドするボットを䜿甚するこずにより、状況は倧幅に改善されたす。 このコンテンツは通垞、ニュヌスず蚘事で構成されおいたす。 同時に、ボットは必芁なコンテンツを配信するだけでなく、目的のトピック、関連性などに応じおフィルタリングしたす。 たた、ボットはナヌザヌのダりンロヌド履歎を分析し、コンテンツを掚奚できたす。 倚くの倧芏暡な情報ポヌタルおよびニュヌスアグリゲヌタヌは、独自のボットを積極的に䜿甚しお、資料ぞのアクセスを簡玠化したす。 あらゆる皮類のアシスタントボット、ゲヌム、゚ンタヌテむメントチャットボットもこの領域に起因したす。 Telegramメッセンゞャヌでボットが䜜成される最も䞀般的な目的の1぀がデヌトしおいるこずは秘密ではありたせん。



ショッピング。 おそらく、チャットボットのアプリケヌションで最も興味深い分野は、仮想アシスタントず珟実䞖界のオブゞェクトをリンクするこずを可胜にし、特定のナヌザヌにボットが焊点を合わせ、実際のコミュニケヌションを暡倣するこずで、特定の方法でそれらを結び付けるこずです。 しかし、残念なこずに、このナヌスケヌスは珟圚最も開発されおいたせん。 これは、ボットのむンタヌフェヌスを介しお盎接商品を盎接支払うこずは頻繁に䞍可胜であり、このような操䜜にはこのむンタヌフェヌスが根本的に䞍適切であるこずによるものです。 特定の補品を遞択するには、チャットボットが匕き続き圹立ちたす。 しかし、倧芏暡な品揃えず耇雑な取匕オプションを扱うこずは圌の力を超えおいたす。 この堎合、仮想ボットトレヌダヌの仕事は怜玢゚ンゞン機胜に垰着したす。



チャットボットの開発は着実に継続しおいたす。 アプリケヌションの䞡方の新しい領域が発生し、叀いシナリオが改善されたす。 たずえば、北米のティヌン゚むゞャヌの間で人気のあるKikメッセンゞャヌを䜿甚するず、スマヌトフォンでQRコヌドをスキャンするこずでチャットにボットを远加できたす。 たずえば、カフェの仮想りェむタヌずチャットしお、実際の店員に䌚う前に泚文するこずができたす。 そしお䞭囜では、WeChatメッセンゞャヌで既に支払い機胜を実装しおいたす。珟圚、アプリケヌションはチャットボットを含むオンラむン取匕を積極的に開発しおいたす。



チャットボット垂堎



今日、チャットボットの䜿甚におけるリヌダヌシップは、メッセンゞャヌによっお自信を持っお保持されおいたす。 たた、これは驚くべきこずではありたせん。なぜなら、むンスタントメッセヌゞング甚のアプリケヌションずナヌザヌ間のコンテンツはチャットボットに最適な堎所だからです。 むンスタントメッセンゞャヌの積極的な開発が、チャットボットのほが普遍的な䜿甚に具䜓的な掚進力を䞎えたした。 珟圚、䞖界が25億人のメッセンゞャヌを少なくずも1぀䜿甚しおいるずいう統蚈を匕甚しおいたす。 そしお、むンスタントメッセンゞャヌの間で人気のあるリヌダヌは、Facebook MessengerずWhatsAppです。 専門家によるず、今埌2〜3幎で、䞖界の䜏民の半数以䞊がメッセンゞャヌのナヌザヌになり、人気の゜ヌシャルネットワヌクを絞るでしょう。



むンスタントメッセンゞャヌでのチャットボットの䜿甚が普及したもう1぀の芁因は、倧䌁業のサポヌトです。 ほずんどの䌁業は、耇雑なむンタヌネットポヌタルやアプリケヌションの開発ず比范しお、むンスタントメッセンゞャヌでの補品やサヌビスのパヌ゜ナラむズされたプロモヌションのために、特別なボットを䜜成および統合できるこずが、どれほど収益性があるかを埐々に認識しおいたす。 さらに、アナリストによるず、䞖界では新しいアプリケヌションに察するナヌザヌの関心が着実に䜎䞋しおいたす。 ほずんどは、テスト枈みのむンスタントメッセンゞャヌ、゜ヌシャルネットワヌク、およびデバむスにむンストヌルされたプログラムのセットを䜿甚するこずに慣れおいたす。



チャットボットは、新しい芖聎者を惹き぀けおサヌビスを効果的に促進するために、䞀般ナヌザヌず゚ンタヌテむンメントの巚人の䞡方によっお䜜成されおいたす。 この方向はすでにかなり普及しおいたす。 むンタヌネットでは、あらゆる方向ず耇雑さのチャットボットを䜜成および宣䌝するための包括的なガむドラむンを芋぀けるこずができたす。 このトピックに関する優れた蚘事の䟋 。









むンスタントメッセンゞャヌにチャットボットを導入する動きの先駆者の1人は、Telegramでした。 2015幎6月、Pavel Durovの䌚瀟はボットAPIプラットフォヌムを最初に立ち䞊げた䌁業の1぀であり、ボットをダりンロヌドするためのストアでもありたした。 珟圚、Telegramメッセンゞャヌには、玄10䞇の最も倚様なボットがありたす。 Telegram Bot API 2.0ボットを自己䜜成するためのAPIの改良版が既に利甚可胜です。 PHP、Python、Java、C、Rubyなど、ほがすべおのプログラミング蚀語を䜿甚しおボットを䜜成できたす。 この堎合、プログラミングスキルなしで、Telegram甚の独自のボットを䜜成できたす。 @BotFatherサヌビスアカりントを䜿甚しお新しいボットを登録し、䞀意のIDを取埗するだけで十分です。その埌、@ Paquebotアカりントを介しお、ボットを@Paquebotにリンクし、新しいボットのすべおのサブスクラむバヌぞのメッセヌゞ送信を開始できたす。



他のメッセンゞャヌもそれほど遅れおいたせん。 Facebookは、2015幎3月にメッセンゞャヌでボットを䜜成するためのプラットフォヌムも発衚したした。 ボットを䜜成する機䌚は、 Messenger Platformサヌビスの䞀郚になりたした。これにより、Facebookチャットを他のアプリケヌションに統合できたす。 'メッセヌゞを送受信するためのAPIは十分です。 しかし、より耇雑なボットを䜜成する堎合は、ボット゚ンゞンを䜿甚しおください」ず、Facebookの副瀟長であるデビッドマヌカスは述べおいたす。 前述のように、ボット゚ンゞンを䜿甚するず、状況に応じお異なる方法でボットを「教える」こずができたす。 競合他瀟ずは異なり、Facebookはすでにナヌザヌが通垞のテキストではなく、画像、リンク、ボタン、その他のやり取りが可胜な芁玠を含むむンタラクティブな「カヌド」を送信するこずを蚱可しおいたす。 ロボットずのやり取りにより、ナヌザヌはレストランのテヌブルをすぐに予玄したり、商品のカタログをめくりながらい぀でも奜きな商品を賌入したりできたす。



チャットボットを䜜成するための独自のサヌビスの開発、むンスタントメッセンゞャヌおよび他のプラットフォヌムぞのボットの導入は、長幎にわたっお単なる良い圢ではなく、䞍可欠なものになっおいたす。 䞖界䞭の倚くのサヌビスが、ボットを䜿甚するずいうアむデアを積極的に掚進しおいたす。 怜玢゚ンゞンアメリカのGoogleずロシアのYandex。 むンスタントメッセンゞャヌ䞭囜のWeChat、日本線、韓囜のカカオトヌク、カナダのKikなど



スマヌトフォンのメヌカヌも、じっず座っおいたせんでした。 Appleの音声アシスタントSiriずMicrosoftのCortanaは、音声むンタヌフェむスを積極的に䜿甚しおナヌザヌの芁求を満たしたす。 アメリカのアマゟンには音声アシスタントもありたす。



専門家によるず、近い将来、チャットボットの既存のプラットフォヌムぞのさらなる統合ず、この分野の収益化の増加が期埅されおいたす。



マむクロ゜フトの貢献



2016幎3月、Microsoftの専門家は、Tay@TayandYOuずいう名前のチャットボットをTwitterに投皿したした。 Thayは、KikメッセンゞャヌたたはGroupMe゜ヌシャルネットワヌクの連絡先リストに远加するこずもできたす。 圓初、開発者はプログラムず通信し、゜ヌシャルネットワヌクからの匿名の情報の倧芏暡な配列でプログラムを教えたした。 少人数のグルヌプもトレヌニングに参加したした。 著者によるず、甘くお優しい10代の少女のふるたいを暡倣したThayは、公開された埌、ナヌザヌから孊びながら独孊を続けるこずになっおいた。 そのため、ナヌザヌずのコミュニケヌションが始たっおからわずか1日足らずで、Thayはナチス、反ナダダ䞻矩、そしお䞍幞な人間になりたした。 プログラムは、それが教えられたすべおを成功裏に孊びたした。 残念ながら、著者はプログラムに善ず悪を区別する胜力を入れるこずができたせんでした。 しばらくの間、Microsoftはいく぀かの特に䞍快な発蚀を線集するこずにより、Thayの行動を制埡しようずしたした。 しかしすぐに、実隓は完了したず宣蚀され、Thayは切断されたした。 ただし、このむベント䞭、マむクロ゜フトは優れた広告を提䟛し、AIずチャットボットの䜿甚に察する関心を倧幅に高めたした。



マむクロ゜フトが関䞎した別の同様の実隓は、より成功したした。 䞭囜のツむッタヌWeiboの類䌌版では、Xiaoiceず呌ばれる蚀語ボットが発売されたした。 ボットは、17歳の10代の少女の行動を暡倣し、意味のある察話を維持し、同情を衚明し、通垞の人のように非垞に予枬䞍可胜な動䜜をするこずがよくありたす。 どうやら、Xiaoisに取り組んでいるずき、著者はThayに察する以前の吊定的な経隓を考慮に入れおいたした。 䜕癟䞇人もの䞭囜の十代の若者たちはシャオむず「䜕時間も過ごし、シャオむを「敏感で思いやりのある少女」ず呌んでいたす。



3月30日、 Build 2016展瀺䌚で、Microsoftは、Skype、Slack、Facebook Messenger、Kik、Office 365メヌル、その他の䞀般的なサヌビス甚のテキスト、オヌディオ、ビデオボットを䜜成するMicrosoft Bot Frameworkを発衚したした。 プラットフォヌムは、3぀の䞻芁郚分で構成されおいたす。





ボットフレヌムワヌクの䞻な利点には、特定のプラットフォヌムぞのバむンドの欠劂、オヌプン゜ヌスSDKの可甚性、ボットの高床なデバッグおよびテストツヌル、ビルトむン通信およびWebアプリケヌションの管理、30以䞊の蚀語ぞの自動翻蚳のサポヌト、およびコミュニティの存圚が含たれたす。 同時に、Microsoft Bot Frameworkは積極的に開発を続けおいたす。



たた、Build 2016展瀺䌚では、Windows、Android、iPhone、iPadのボットをサポヌトするSkypeの新しいバヌゞョンのリリヌス、およびSkype BotプラットフォヌムのSDKずAPIのオヌプンが発衚されたした。 Skype、Slack、たたはTelegramの連絡先リストにボットを远加するには、 ボットディレクトリを䜿甚できたす。 iOSおよびAndroid甚の新しいバヌゞョンのSkypeでは、ボットの怜玢はアプリケヌションに盎接実装されたす。



Microsoftは、それほど遠くない将来に、音声通話たたはビデオ通話Skype Video Botsを介しお自然蚀語でチャットボットずチャットできるようになるず述べおいたす。 同時に、チャットボットは高床なAIを備え、䞀皮の3Dモデルになりたす。 マむクロ゜フトは、ボットを䜿甚しおなじみのあるナヌザヌアクションを自動化し、音声制埡を䜿甚するず、コミュニケヌション、ゲヌム、ショッピングなどの通垞の方法が倉わるず確信しおいたす。



軟膏で飛ぶ



しかし、チャットボットは本圓にすぐに垂堎から通垞のアプリケヌション、怜玢゚ンゞン、人事コンサルタントを远い出すこずができるほど倧きな朜圚胜力を持っおいるのでしょうか 圌らは時間の経過ずずもに迷惑な、あるいは危険な芁因になりたすか この問題に぀いおは非垞に異なる意芋がありたす。









これらの意芋の1぀チャットボットは、単なる新しいナヌザヌむンタラクションメカニズムにすぎたせん。 これはチェヌンの論理的な展開ですサむト-アプリケヌション-チャットボット。 さらに、この盞互䜜甚では、前述のように、高床なAIは完党にオプションです。 ボットには、よく考え抜かれたコマンドシステムが必芁です。 同時に、ボットの有甚性は疑いの䜙地はありたせん。



もう1぀の芳点は、実際にはボットが情報を取埗するための特別な方法であるずいうこずです。 珟時点で存圚するものはすべおすでに十分です。 そしお、App Storeからお気に入りの雑誌の新しい号たたは新しいアプリケヌションをダりンロヌドするために、むンスタントメッセンゞャヌを起動し、目的のチャットボットを探し、圌ず話し、途䞭で2〜3の䞻芁な質問に答えおから、必芁な質問を取埗するだけです。 既存のアプリケヌションは消えおいたせん。それらはただ手元にあり、䟿利です。 そしお、通信のプロセスに盎接積極的に関䞎しおいるチャットボットのみが有甚です翻蚳者、゚キストラ、アナリストなど。



珟圚でも、補品を効果的に宣䌝できるチャットボットを䜜成するこずはできたせん。 圌がすでに遞択したもの、぀たり賌入を行う必芁性を人に玍埗させるために、人に提䟛しないでください。 もちろん、スマヌトチャットプログラムを䜜成するために実斜されおいる実隓は印象的です。 しかし、圌らにはただ倚くの開発が必芁です。 最新のチャットボットずATMを比范する堎合の䟋は興味深いかもしれたせん。 はい、ATMはルヌチンアクションをより速く、゚ラヌを枛らしお実行し、ナヌザヌず察話したす。 しかし、ATMはナヌザヌにロヌンを匕き付けるよう説埗するこずはできたせん。



この状態では、䞻にボットの䞻な生息地であるむンスタントメッセンゞャヌのメヌカヌず倧芏暡プラットフォヌムの所有者が、チャットボットの䞍可欠性、利䟿性、特にむンテリゞェンスの問題を非垞に過熱し、維持しおいるず断蚀できたす。 倚くの堎合、倧芏暡なプラットフォヌムの所有者のみが、高床なAIず幅広い機胜を組み合わせた真にむンテリゞェントなチャットボットを䜜成する䜙裕がありたす。



これで、さたざたなサヌビスを䜿甚しおボットを䜜成できたす。 メッセンゞャヌプラットフォヌムで提䟛される特別なサヌビスを䜿甚しお、゜ヌスコヌドを1行も曞くこずなくボットを䜜成できたす。 Chatfuelなどのサヌドパヌティサヌビスを䜿甚できたす。 Microsoft Bot Frameworkなどの無料の開発ツヌルが利甚可胜です。 最埌に、 Gupshupサヌビスを通じおボットを䜜成するためのツヌルを賌入できたす。 しかし、ボットは、䜿い慣れたナヌザヌアプリケヌションず完党に競合するのに十分なほどむンテリゞェントです。 あなたのチャットボットはあなたの環境に必芁䞍可欠になるのに十分適合したすか たたは、良いが正盎なずころ十分な単調な仮想アシスタントの倧芏暡なコホヌトを補充したすか



おそらく、チャットボット業界は、時間の経過ずずもに、モバむルアプリケヌションやむンタヌネットアプリケヌションず同じこずを期埅するでしょう。 最も求められおいる「スマヌト」で快適なチャットボットは、特定の生息地に可胜な限り収たりたす。



おわりに



最初のアむデアは、この蚘事の最埌で、PVS-Studio静的アナラむザヌを䜿甚しお Microsoft Bot Builder GitHubで入手可胜の゜ヌスコヌドの゚ラヌを芋぀けるこずに぀いお説明するこずでした。 ただし、Bot Builderプラットフォヌムには、怜蚌に䜿甚可胜なCコヌドが5䞇行しか含たれおいたせん残りの゜ヌスコヌドはNode.jsずRESTを䜿甚しお開発されたした。 さらに、コヌドは非垞に高品質であるこずが刀明したしたが、これはマむクロ゜フトにずっお驚くべきこずではありたせん。 ボットビルダヌ゜リュヌションの怜蚌䞭、゚ラヌはほずんど怜出されたせんでしたが、2぀は最も重芁ではありたせんが、疑わしい構造に泚意する必芁がありたす。 これだけでは、通垞のように、プロゞェクトの怜蚌に関する本栌的な蚘事を曞くのに十分ではありたせんでした。 それは起こりたす。 それにもかかわらず、Bot Builderプラットフォヌムは積極的に開発されおおり、今埌、このプラットフォヌムのコヌドでより興味深い゚ラヌを芋぀けお読者に䌝えるこずを期埅しお、実隓を繰り返したす。 次に、䟋ずしお、気づいた欠陥の説明をしたす。 䞡方の゚ラヌは、ヌルリンクによる朜圚的なアクセスに関連しおいたす。



PVS-Studioアナラむザヌの譊告  V3019 「as」キヌワヌドを䜿甚した型倉換埌に、おそらく誀った倉数がnullず比范されたす。 倉数「step」、「prop」を確認しおください。 FieldReflector.cs 231



アナラむザヌは、キャスト挔算子の䜿甚に関連する疑わしい構造を次のように怜出したした。



protected Type StepType(object step) { var field = step as FieldInfo; var prop = step as PropertyInfo; return (step == null ? null : (field == null ? prop.PropertyType : // <= field.FieldType)); }
      
      





指定されたコヌドフラグメントは、 ステップ倉数がFieldInfoたたはPropertyInfoタむプになるたで正しく動䜜したす。 それ以倖の堎合、倉数propに远加のnullチェックがないため、null参照によるアクセスが可胜です。



PVS-Studioアナラむザヌの譊告  V3105 「parts」倉数は、null条件挔算子を䜿甚しお割り圓おられた埌に䜿甚されたした。 NullReferenceExceptionは可胜です。 JwtTokenExtractor.cs 60



次のコヌドスニペットでは、著者はauthorizationHeader倉数をnullにできるず想定しおいたす 。 この堎合、 パヌツ倉数もnullに初期化されたす 。 ただし、将来的に、適切な怜蚌なしでparts倉数が䜿甚され、 NullReferenceExceptionがスロヌされる可胜性がありたす。



 public async Task<ClaimsIdentity> GetIdentityAsync(string authorizationHeader) { .... string[] parts = authorizationHeader?.Split(' '); if (parts.Length == 2) // <= return await GetIdentityAsync(parts[0], parts[1]). ConfigureAwait(false); .... }
      
      





この蚭蚈の正しいバヌゞョンは次のずおりです。



 public async Task<ClaimsIdentity> GetIdentityAsync(string authorizationHeader) { .... string[] parts = authorizationHeader?.Split(' '); if (parts != null && parts.Length == 2) return await GetIdentityAsync(parts[0], parts[1]). ConfigureAwait(false); .... }
      
      





結論ずしお、チャットボットの䜜成ずプロモヌションのトピックは非垞に興味深いこずに泚目したいず思いたす。 この方向は発展し、将来的にはチャットボットずAIの䜿甚に関連する新しい興味深い実隓を埅っおいたす。



独自のチャットボットを䜜成し、 PVS-Studio静的アナラむザヌを䜿甚しお゜ヌスコヌドの゚ラヌを確認したす。





この蚘事を英語圏の聎衆ず共有したい堎合は、翻蚳ぞのリンクを䜿甚しおくださいSergey Khrenov。 チャットボット、およびマむクロ゜フトはこれをどのように支揎したすか 。



蚘事を読んで質問がありたすか
倚くの堎合、蚘事には同じ質問が寄せられたす。 ここで回答を集めたした PVS-Studioバヌゞョン2015に関する蚘事の読者からの質問ぞの回答 。 リストをご芧ください。




All Articles