はじめに
株式会社ネクストスケープ Chief Technology Office所属の小野塚です
今回はGoogle 、Vertex AIについて調べてみました。
Vertex AI は Google Cloud が提供する生成AI/機械学習プラットフォームであり、Gemini などの生成AIモデルを API として(正確には「Gemini API in Vertex AI」という名前ですが)利用できます。
単に呼び出して終わりではつまらないのでもう少し実用的な感じで、こちらも現在利用しているBigQueryとの連携を行ってみたいと思います。
何を作るか
例えば。。
書籍情報をBigQueryに入力していて、本の名前は一覧として持っているのですが、著者名がわからないので1つ1つ調べて入力する必要がある。
といったことがあったとします。
そういった手間というか、ちょっとした調査作業が介在せざるを得ない場合、そしてそれにAIが使えないだろうかと思うことは往々にして出てくるかと思います。
ということで、実際にAIを利用してもう少し楽をしてみましょう。
BigQueryのとあるテーブルにカラムとして書籍名と著者名があったとします。書籍名は埋まっているのですが、著者名のカラムは空欄になっています。
そのテーブルから書籍名を読み込み、Geminiに書籍名を元に著者名を問い合わせ、得られた著書名をそのテーブルに書き込む、こういった処理を実現してみましょう。
BigQueryの画面でもGeminiは使えるのですが(Gemini in BigQuery)、セキュリティの関係なのかGeminiが扱える情報はあくまでBigQuery内のデータのみであり、BigQueryにおいて外部のWebサイトからデータを取得するといったことができませんでした。
そこで今回は同じGoogleのサービス、サーバレスのCloud Run Functionsを使ってみたいと思います(同様のサービスはAzureのAzure Functions、AWSであればLambdaです)。
具体的には
・Cloud Run FunctionsでBigQueryから書籍名を読み込む
・その書籍名を元にGemini APIを呼び出し著者名を調べる
・得られた結果をBigQueryに書き込む
という流れ。
図にすると以下のようになります。

準備
まずは準備から。
BigQueryにBOOKSというテーブルを作り、データを入れておきます。
以下のようにtitleとauthor、つまりタイトルと著者というカラムがあり、authorはNULLにしておきます。

あとはVertex AI API等の必要なAPIをGoogle Cloud Cosoleの「APIとサービス」ー>「有効なAPIとサービス」の画面で「APIとサービスを有効にする」を選択し、有効にしておきます。

そしてCloud Run Functionsを作成します。

作成画面で今回はPythonを選択。

その他必要事項を入力していきます。以下のスクリーンショットの内容はデフォルトのものですので、必要に応じてそれぞれ変更しましょう。

すると以下のようにソースコードを編集できる画面になります。

実装
コード編集画面においてはmain.pyとrequirements.txtという2つのファイルが存在しており、後者はPythonでは標準で入っていないライブラリ(外部パッケージ)を使うとき、Cloud Run が自動でインストールできるように「必要な部品リスト」を書いておくファイルになります。
コード内容は割愛しますが、プロンプトの記述は以下のようになります。

ちなみにCloud FunctionsであればBigQueryの読み書きやGemini APIの呼び出しにおいてAPIキーのようなものは不要でして、ProjectIDを設定するだけで実行可能です。
Googleのサービスのみであれば、その辺りの親和性もCloudFunctionsのメリットと言えますね。
そうして実行した結果が以下。うまくいっているようです。

BigQueryに戻って、BigQuery上でも確認してみると、authorに著者名が入っているのがわかります。

最後に
いかがでしょうか。デプロイも簡単でかなりあっさりと実現できるようになりました。
ただ、AIのお約束として出力された結果は確認する必要があるということで、実際に案件で使う場合にはまだ色々と考慮する必要はあります。今回の場合であれば雑誌の著者名はどうするのか、とかですね。
あとは似たようなパターンとして番組名に対してキー放送局を返すということもできたりしますが、「表記のゆれ」も考慮する必要があります(「フジテレビ」と返してほしいのに「CX」と返したり。。といったものです)。
そういった課題はプロンプトでカバーできたりする場合もありますし、そうでないものもあるかもしれませんし、まずは試していただいて、結果に応じてプロンプトで対応するのか、運用(手作業)でフォローするのかといったことを考えていく必要があると思います。
個人的な案件の関係上Azureを扱うことが多いのですが、Gemini、GCPも非常に面白いですね。
当社ネクストスケープはこのように生成AIを始めとした新しい技術・知識を日々取り入れており、Webサイト、スマホアプリ、Hololensアプリの開発をはじめ、CMSを利用したサイトの新規構築やリニューアルなど、お客様のニーズに幅広く対応いたします。お困りのことがございましたら、いつでもお気軽にお問い合わせください。
(以下当社お問合せフォーム)
当社では一緒に働いてくれる仲間を募集しています。是非以下のサイトよりお申込みください。