views4GCPのストレージサービスについてまとめてみた。Exp:28783最近GCP始めたエンジニアです。機械学習系APIを使用してアプリを作ってます。趣味はボードゲームです。TweetShareHatena注意この記事は2018年4月16日に更新されたもので、内容が古い可能性がありますのでご注意ください。Functionsでボードゲームの質問に答えてくれる単純なチャットボットを開発しました。今回はそのチャットボットを改良してチャットボットに『見る』という事を覚えさせてみたいと思います。具体的にはボードゲームの画像を見せてあげるとそのボードゲームの名前を答えてくれるというチャットボットを開発してみたいと思います。機械学習のモデルとしてGoogleが事前に学習済みのモデルを公開しています。その学習済みモデルをAPIとして以下の5つがサービスとして使用出来る物となっています。API動画を解析してくれるAPIです。動画内でシーンが変更された時間や動画内で出現した物に対してラベル付けを行い、どの時間帯で出現したかなどを解析してくれるサービスです。API画像を解析してくれるAPIです。画像内に移っている物にラベルを付けてくれたり、画像内の文字を認識してくれたり、人の画像だったら感情や何をしているかまで解析してくるサービスです。API音声を解析してくれるAPIです。発した言葉を文字起こししてくれるサービスです。リアルタイムで変換してくれたり、発言された言葉にタイムスタンプを付けて、どの時点での言葉なのかを解析してくれます。API言語解析APIです。文章から構文解析や場所、人、商品などの特定とラベル付け、その文章の全体的な感情を読み取る事が可能です。API機械翻訳APIです。英語から日本語への翻訳はもちろんさまざまな言語から言語への翻訳をしてくれるサービスです。100言語以上をサポートしており、入力された言語を特定する事も可能です。今回は『見る』機能を付与したいので、VisionAPIを使用します。作成するチャットボットの会話の流れとしては以下になります。APIを使用する解析した結果から画像がなんの画像だったかを回答するではチャットボットを開発していきましょう。DialogFlowでのインテントの作成エージェントの作成方法や、インテントの作成方法の説明は今回は割愛させていただきます。詳しく知りたい方は前回の記事をご覧ください。今回は以下の様なインテントを作成します。NAME:URLENTITY:@sys.urlPROMPTS:画像URLを教えてもらってもいいですか?FulfillmentWebhook:ONAction内のREQUIREDをONにする事でURLのパラメータが入っていない場合に、PROMPTSで設定した聞き返しの質問をするように設定しました。Entitiesです、URLの情報がある場合はこのエンティティに情報が格納されます。nowで試してみましょう。作成したインテントに入った時に、URLの入力を促す回答をする所までの確認が出来ました。後はWebhook側での処理になりますのでDialogFlowの設定は以上で完了です。APIの有効化GoogleのAPI系はデフォルトでは無効になっているので有効にする必要があります。APIを検索し、有効にします。Functionsを使用します。APIのライブラリを追加しましょう。APIだけを使う予定ですが、他のAPIを使いたい場合には追加で使用したいライブラリをpackage.jsonに追加すれば使用出来る様になります。次にindex.jsです。"パンデミック、アグリコラ、カタンについてお答えできます。APIを使用する変数の宣言と呼び出し。4~24行目:前回使った所です。インテント名で分岐させるように変更しています。APIに解析させて、WebのEntitiesを取得。その後回答メッセージを作成します。45行目~53行目:WebのEntitiesが複数存在するのでその中でもスコアが1より上でgameを含むEntity以外の物を取得しています。gameというEntityを取得していたのでノイズとして除外しています。APIにかけるとこんなEntitiesが得られます。cattle(乳牛)やcattle(牛)なので精度的には十分ですね。FunctionsのHTTPトリガーからURLをコピーしてDialogFlowのWebHookに設定し、右下のSaveを押して適用しましょう。以上でチャットボットの開発完了です!開発したチャットボットを試してみましょう!今回はこの2枚の画像について回答してもらいたいと思います。上の画像は【カタンの開拓者】という、無人島を開拓するボードゲームの画像です。下の画像は【将軍】という、武将になって日本の統一を目指すボードゲームの画像です。上の画像からテストします。成功です!画像にもCatanという文字が入っていたので解析が簡単だったのかもしれません。こちらは文字もなくプレイしている画像なのですこし難しいかもしれません。惜しい!調べてみるとどうも似たようなシステムのPCゲームが出てきてしまったみたいです。方向性的にはあっていましたが、間違えてしまいました。チャットボットへの機能追加の先にこのようにGoogleの事前学習モデルの機械学習APIを組み合わせるだけでチャットボットに見る機能を追加する事が出来ました。開発自体は非常に容易だったのでは無いでしょうか?今回は実施しませんでしたが、風景の写真を読み込ませ、ここはどこ?と聞くだけで場所を教えてくれるチャットボットの開発等も可能になります。他のAPIと組み合わせれば、SpeechAPIで聞く事だったりNaturalLanguageAPIで感情の様な機能を開発する事も可能になってくるので興味が出た方は是非お試しください!弊社クラウドエースでは、GCP料金を円請求書払いにできる支払い代行サービスや、GCPの技術サポートサービス、開発サービスなどを提供しております。