GASでBardのAPI(VertexAI API)を実行する方法!PaLM2の応答生成

生成AIのBardをAPIで利用したい場合、GCP(Google Cloud Platform)にVertexAIのAPIが用意されています。

Google Apps Script(GAS)でVertexAIのAPIにリクエストして、Bardと同じ大規模言語モデルのPaLM2を使った応答を返す方法を解説します。

ChatGPTの対抗馬であるBard

Bardはグーグル社が開発している生成AIです。

生成AIで最も有名なChatGPTの対抗馬として、Bardは期待されています。

Bardのデモで紹介された生成結果に誤りが見つかったことで落胆され、Googleの親会社であるアルファベット社の株価が暴落したほどでした。

しかし、検索エンジンで培ったAI技術を活かして、日々改良が進められています。

2023年7月13日にはChatGPT(GPT-4)よりも一足先に、Bardの英語版がマルチモーダル(画像入力)にも対応しました。

BardはAPIで利用可能?

そんなグーグルの生成AIであるBardはAPIは提供されているのでしょうか?

ChatGPTは2023年3月にAPIが提供され、多くのユーザーや企業がChatGPTのAPIを使ったアプリやサービスを開発しています。

Bardのサービスページには、特にAPIに関する情報は掲載されていません。

2023年7月17日時点でBardにアクセスしても画像入力のマルチモーダル未対応

そのため、Bard自体をAPI経由で利用する方法はない状態です。

GCPのVertexAIのAPIが用意

生成AIのBard自体にはAPIはありませんが、グーグル社はVertex AIというサービスを用意しています。

VertexAIはグーグルがこれまで個別サービスとして提供してきたAIや機械学習のサービスを統合したサービスです。

Google Cloud Platform(GCP)のAI・機械学習サービスが統合されたVertexAIではBardと同じ大規模言語モデルが利用可能

VertexAIはGoogle Cloud PlatformでAPIとして提供されています。

このVertexAIではBardで現在使用されている大規模言語モデル(LLM)の「PaLM2」による生成AIを利用可能です。

Bardで得られる生成テキストと同じような結果をVertexAIのAPIから得ることができます。

そのため、現時点でBardをAPIで利用したい場合は、VertexAI APIを利用することになります。

GCPの利用登録と無料クレジット取得手順

Google Cloud Platform(GCP)に用意されたVertexAIを利用するには、まずGCPのアカウント登録する必要があります。

これまでGCPを使ったことがないユーザー向けには、300ドル分の無料クレジットも付与されます(90日限定)。

そこで、VertexAIを利用する事前準備として、GCPの利用登録と無料クレジットの取得手順を解説します。

1.GCPのページにアクセスし、利用規約や通知メールにチェックをいれて「同意して続行」をクリックします。

Google Cloud Platform(GCP)のページに初めてアクセスすると、利用規約が表示されるので同意して続行

2.「Google Cloud Platformの開始」画面が表示されるので、「無料トライアルに登録」ボタンをクリックします。

GCPのページが操作できるようになるので、「無料トライアルに登録」ボタンをクリック

3.アカウント情報の入力で国を「日本」、ニーズの説明で「スタートアップ」など入力し、利用規約にチェックして「続行」をクリックします。

GCPの無料トライアル登録に当たって国と利用用途を入力して利用規約に同意

4.お支払情報の確認でアカウントの種類を「個人」とし、お支払い方法でクレジットカード番号と住所を入力し、無料トライアル開始ボタンをクリックします。

GCPの無料トライアル登録の利用が個人か法人か選択し、ではクレジットカード情報を入力

以上の4StepでGCP利用登録と無料トライアル登録が完了です。

GCPの無料トライアル登録が完了すると、付与された無料クレジット数が表示されるとともに、プロジェクト番号が表示

300$を日本円に換算したクレジットが付与されていることが確認できます。

無料トライアル開始と同時にプロジェクトが作成されるので、プロジェクト番号を赤枠のアイコンをクリックしてコピーしておきましょう。

VertexAIのAPI有効化手順

Google Cloud Platform(GCP)の無料トライアル登録まで完了すると、VertexAIのAPIを試すことができます。

実際にGCPの管理画面上でVertexAIのAPIを有効化する手順も紹介します。

1.GCPの左上に用意されたハンバーガーメニューから、「APIとサービス>有効なAPIとサービス」を選択します。

GCPの左上にあるハンバーガーメニューから「APIとサービス」の「有効なAPIとサービス」を選択

2.APIとサービスのダッシュボード画面が表示されるので「APIとサービスの有効化」をクリックします。

Google Cloud Platform(GCP)の「APIとサービス」画面が表示されるので、「APIとサービスの有効化」を選択

3.GCPのAPIライブラリページの上部に設置された検索窓に「Vertex AI」を入力してエンターキーを押します。

GCPのAPIライブラリの画面で検索窓に「VertexAI」を入力して検索

4.「Vertex AI API」の製品の詳細ページが表示されるので、「有効にする」ボタンをクリックします。

「Vertex AI API」画面で、「有効にする」でAPIが利用可能に

以上でVertex AIのAPI有効化まで完了しました。

これでGCP提供サービスであるVertex AIをAPI経由で利用できるようになります。

GASでBardのAPI(VertexAIのAPI)リクエスト方法

GCPの無料トライアル登録ならびにVertex AIのAPI有効化までできたら、Google Apps Script(GAS)からAPIをリクエストできるようになります。

実際にGASのスクリプトでVertex AIのAPIを実行し、Bardのような応答結果を取得する方法を解説します。

1.まずGASのスクリプトエディタを新しく開いたら、「プロジェクトの設定」を選択します。

Vertex AIのAPIをGoogle Apps Script(GAS)で利用するため、まずプロジェクトの設定へ移動

2.プロジェクトの設定で全般設定にあるappsscript.jsonのマニュフェストファイルをエディタで表示するにチェックを入れます。

Google Apps Script(GAS)のスクリプトエディタでプロジェクトの設定から「「appsscript.json」マニフェスト ファイルをエディタで表示する」にチェック

3.GASのエディタに戻り、appsscript.jsonファイルを選択し、oauthScopesの記述を追加します。

Google Apps Script(GAS)のスクリプト画面に戻り、appsscript.jsonファイルを開き、スコープの記述を追加
{
  "timeZone": "Etc/GMT-9",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": ["https://www.googleapis.com/auth/script.external_request","https://www.googleapis.com/auth/cloud-platform"],
  "runtimeVersion": "V8"
}

※下記のコードをコピーして、全て選択して上書きします。

4.GASのコード.gsを選択して、Vertex AIのAPIをリクエストするサンプルコードを貼り付けます。

Google Apps Script(GAS)でBardのAPIとも言えるVertex AIのAPIをリクエストするサンプルコード
function myFunction() {
  //VertexAIのAPIを有効化したGCPプロジェクトの番号を設定する
  const PROJECT_ID = '**********';
  //VertexAIのAPIのエンドポイントURLを設定する
  let apiUrl = `https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/text-bison:predict`;
  //VertexAIへのプロンプトを設定
  let prompt = "PHPとPythonの違いは何ですか?";
  //英訳したプロンプトに加え、VertexのAPIリクエストに必要なペイロードを設定
  const payload = {
    "instances": [
      { "prompt": LanguageApp.translate(prompt,'ja','en') }
    ],
    "parameters": {
      "temperature": 0.2,
      "maxOutputTokens": 256,
      "topK": 40,
      "topP": 0.95
    }
  };
  //payloadやHTTP通信種別、認証情報をoptionで設定
  const options = {
    'payload': JSON.stringify(payload),
    'method' : 'POST',
    'muteHttpExceptions': true,
    'headers': {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
    'contentType':'application/json'
  };
  //VertexAIにAPIリクエストを送り、結果を変数に格納
  const response = JSON.parse(UrlFetchApp.fetch(apiUrl, options).getContentText());
  //APIレスポンスからの応答結果を日本語に和訳して戻り値で返す
  console.log(LanguageApp.translate(response.predictions[0].content,'en','ja'));
}

※Vertex AIは現時点で日本語未対応のため、入力プロンプトの英訳、生成結果の和訳処理を行っています。

5.2行目のPROJECT_IDの定数にGCP無料トライアル登録時に控えたプロジェクト番号を入力します。

GCPの無料トライアル登録が完了すると、付与された無料クレジット数が表示されるとともに、プロジェクト番号が表示

以上でVertex AIのAPIをリクエストするGASスクリプトの実行準備が完了です。

実際にサンプルコードを実行すると、実行ログにBardからの応答結果と同様の生成結果が出力されます。

Google Apps Script(GAS)でBardのAPIとも言えるVertex AIのAPIをリクエストするサンプルコードを実行すると、実行ログにBard同様の生成結果が出力

Vertex AIはBardと同じLLM「PaLM2」を使っているので、Bardの生成結果と遜色ありません。

ChatGPTのAPIに加えて、BardもVertex AIのAPIを使えば、GASで利用可能です。

ChatGPTのAPIをGASでリクエストする方法↓

Vertex AIは日本語未対応(英語のみ)

なお、Vertex AIのAPIをリクエストするGoogle Apps Script(GAS)のサンプルコードで注釈した通り、Vertex AIは日本語には未対応です。

そのため、APIにセットするプロンプトは英語にする必要があります。

ただ、GASにはLanguageApp.translateメソッドで英訳・和訳が簡単に実装可能です。

日本語プロンプトを英訳し、英語の生成結果を和訳すれば、日本でVertex AIの処理ができます。

ただ、やや機械翻訳感のある文章になるので、DeepLのAPIを使うのもおすすめです。

まとめ・終わりに

今回、Google Apps Script(GAS)でBardをAPI利用する方法として、Vertex AIのAPIをGASでリクエストする方法を紹介しました。

Vertex AIはGoogle Cloud Platform(GCP)が提供しているサービスで、Bardと同じ「PaLM2」の大規模言語モデルが利用できるAPIです。

GCPに利用登録して無料トライアル登録した後、Vertex AIのAPIを有効化すれば、GASでも利用できるようになります。

GASのマニュフェストファイルであるappsscript.jsonの修正など少し手間はかかりますが、GASを使ってプロンプトを入力し、Bardのような生成結果を得ることができます。

Vertex AIのAPIはまだ日本語未対応ですが、GASなら1行で英訳・和訳の翻訳処理が実装できるので、日本語のインプット・アウトプットも可能です。

今回紹介したVertex AIのAPIをGASで操作するサンプルコードを改良して、Bardのような生成結果を得られるサービスを作ってみて下さい。