コンテンツに移動
AI & 機械学習

BigQuery を使用して Gemini と Google スプレッドシートを統合する方法

2024年6月18日
Karl Weinmeister

Head of Cloud Product DevRel

※この投稿は米国時間 2024 年 6 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。

私は Google スプレッドシートをよく使用します。かなり頻繁に使用している方もいらっしゃるでしょう。私はさまざまな用途に Gemini も活用しているため、Gemini Google スプレッドシートのワークフローに組み込むのはまさに理にかなっています。

スプレッドシートの要約や数式の作成などの機能を使用すれば、スプレッドシートでの生産性を向上させることができます。Google AI One プレミアム プランでは、Gmail、ドキュメント、スプレッドシートで Gemini を使用できるようになりました。

これらの組み込み機能を利用して、カスタム インテグレーションで何が可能になるかを見ていきましょう。たとえば、Gemini を使用して、一度に複数のデータ行を生成または拡充するにはどうすればよいでしょうか。このブログ投稿では、この処理を行う手順をご紹介します。

以下のデータセットを可視化します。オンライン小売店データセットを使用して、商品説明から新しい列に色を抽出します。この新しい列により、お客様は色フィルタを使用して、探しているものを簡単に見つけられます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/image2_7dxSA8c.gif

直接的なアプローチ

では、スプレッドシートから Gemini API を呼び出す方法を見てみましょう。ここで使用する Google Workspace の主要な関数は、urlFetchApp です。この関数は、HTTP リクエストの作成やウェブ コンテンツの取得に使用できます。これを使用して、ヘッダー、タイムアウトの設定、リダイレクトの追跡、認証の処理をカスタマイズできます。

urlFetchApp を使用して、モデルエンドポイントを渡して、generateContent REST API を呼び出すことができます。

POST https://{service-endpoint}/v1/{model}:generateContent

必要な手順はすべて、こちらの Google スプレッドシートのカスタム関数に記載されています。サービス アカウントを設定して Apps Scripts プロパティを構成すると、2 つの入力、プロンプトに含めるセルの範囲、そしてプロンプトを含むカスタム関数が作成されます。

読み込んでいます...

関数自体が、これらのパラメータをプロンプトに埋め込みます。

読み込んでいます...

この関数によって呼び出されたヘルパー関数が、認証と HTTP リクエストの作成を処理します。

実際の動作を確認されたい方は、Google Cloud Next 2024 セッション Apps Script and Gemini: Build custom AI-powered Google Workspace solutionsApps Script Gemini: AI を活用したカスタムの Google Workspace ソリューションを構築する)をご覧ください。このスクリプトの AI Studio バージョンもご覧いただけます。

BigQuery を介したインテグレーション

次に、BigQuery Apps Script Gemini 間のブローカーとして使用する方法を見てみましょう。これは、大規模なデータセットや、ユーザーが BigQuery とスプレッドシートをすでに統合している場合に適した強固なアプローチです。

Google Cloud BigQuery Apps Script サービスは、BigQuery のオブジェクトと関数、およびスプレッドシートで直接クエリを実行する機能を提供します。

このサービスを使用して、BigQuery はデータの列全体で、Vertex AI Gemini Pro モデルに対して直接リクエストを行うことができます。BigQuery で行う必要があるのは、使用するモデルを指定して、モデルのエンドポイントを作成するだけです。

このプロセスは次のように表すことができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_spHzff2.max-700x700.png

プロセスの概要

このインテグレーションでは、カスタム関数ではなく、Apps Script 関数にリンクされたメニュー項目を作成します。前述したような関数を作成することもできますが、ここでは別のスタイルを検討します。

まず、生の入力データを見てみましょう。このシナリオでは、製品説明から色を抽出します。

説明(C2:

WHITE HANGING HEART T-LIGHT HOLDER

次に、入力データと連結した、指示を含むプロンプト列を作成します。

ColorPrompt (I2):

"Extract the color(s) from the product description, all in capital letters... If there are multiple, return a valid comma separated list of colors (without the word and). Here is the product description: " & C2

このプロンプトからの回答例を以下に示します。これはプロンプトセルのすぐ右のセルに入力されます。

色(J2:

WHITE

これを行うには、プロンプトセルを選択した状態でメニューから [クエリ] を選択します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3_pTyDvxh.max-800x800.png

仕組み

メニューは onOpen() トリガーで作成され、各メニュー項目はクラウドベースの JavaScript プラットフォームである Apps Script の関数にリンクされます。

メニュー項目

機能

Query

選択したプロンプトを使用して Gemini でクエリを実行し、回答を右の列に入力します。

Setup

ソリューションを実行するために必要なアーティファクト(データセット、一時テーブル、モデル)を BigQuery で作成します。

Configure > Temperature

トークン選択のランダム性の度合いを制御します。0 は決定論的です。

Configure > Max Output Tokens

回答で生成できるトークンの最大数。トークンは 1 単語より小さく、4 文字程度です。

ソリューションの核となるのは、BigQuery ML.GENERATE_TEXT 関数です。クラウドベースの JavaScript プラットフォームである Apps Script から、各プロンプトと構成パラメータを使用して SQL クエリを実行できます。

読み込んでいます...

回答は任意の順序で返されるため、それらをマップに保存して、元のプロンプトの順序と一致させることができます。プロンプト自体は一時テーブルに保存されます。スプレッドシートからクエリ文字列にすべての値を直接含めることもできますが、テーブルを使用すると、1 MB 最大クエリ長を超える大規模なデータベースを処理できます。

データセット、テーブル、エンドポイントは、setup() 関数で構成されます。ユーザーが選択したプロジェクト内で、次のように入力します。

読み込んでいます...

実際に試してみる

こちらから Apps Script コードにアクセスできます。新しいスプレッドシート(sheet.new は便利な URL ショートカット)を作成し、[拡張機能] > [Apps Script] でそれを追加します。次に、BigQuery API サービスを Apps Script プロジェクトに追加します。

スプレッドシートを更新すると、メニューが表示されます。

BigQuery API をまだ有効にしていない場合は、有効にする必要があります。また、Vertex AI への BigQuery 接続を作成する必要があります。提供されるコードは、接続 ID genai-connection を使用しています。

コードを始めて実行するときに、Google Cloud プロジェクトにアクセスするために Apps Script を認証するよう求められます。Vertex AI にアクセスするには、サービス アカウントを構成するが必要がある場合もあります。構成されていない場合は、この処理を直接行えるように、ダイアログに URL とサービス アカウントのメールアドレスが表示されます。

次のステップ

スプレッドシートから直接 Gemini でクエリを実行すると、さまざまな種類の新しいタスクが可能になることがわかりました。ここで説明したインテグレーション コードは、独自のワークフローに合わせてカスタマイズできます。

BigQuery での生成 AI の使用について詳しくは、Bookshelf Analytics Codelab をご覧ください。Apps Script についてさらに詳しく知りたい方は、まずは Apps Script の基礎」再生リストをご覧ください。

Gemini モデルとスプレッドシートを統合することで、より多くのユーザーが AI のインサイトを取得して、カスタムタスクにかかる時間と労力を削減できるようになります。

ー Cloud プロダクト DevRel 担当責任者 Karl Weinmeister

投稿先