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に関する情報は掲載されていません。
そのため、Bard自体をAPI経由で利用する方法はない状態です。
GCPのVertexAIのAPIが用意
生成AIのBard自体にはAPIはありませんが、グーグル社はVertex AIというサービスを用意しています。
VertexAIはグーグルがこれまで個別サービスとして提供してきたAIや機械学習のサービスを統合したサービスです。
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のページにアクセスし、利用規約や通知メールにチェックをいれて「同意して続行」をクリックします。
2.「Google Cloud Platformの開始」画面が表示されるので、「無料トライアルに登録」ボタンをクリックします。
3.アカウント情報の入力で国を「日本」、ニーズの説明で「スタートアップ」など入力し、利用規約にチェックして「続行」をクリックします。
4.お支払情報の確認でアカウントの種類を「個人」とし、お支払い方法でクレジットカード番号と住所を入力し、無料トライアル開始ボタンをクリックします。
以上の4StepでGCP利用登録と無料トライアル登録が完了です。
300$を日本円に換算したクレジットが付与されていることが確認できます。
無料トライアル開始と同時にプロジェクトが作成されるので、プロジェクト番号を赤枠のアイコンをクリックしてコピーしておきましょう。
VertexAIのAPI有効化手順
Google Cloud Platform(GCP)の無料トライアル登録まで完了すると、VertexAIのAPIを試すことができます。
実際にGCPの管理画面上でVertexAIのAPIを有効化する手順も紹介します。
1.GCPの左上に用意されたハンバーガーメニューから、「APIとサービス>有効なAPIとサービス」を選択します。
2.APIとサービスのダッシュボード画面が表示されるので「APIとサービスの有効化」をクリックします。
3.GCPのAPIライブラリページの上部に設置された検索窓に「Vertex AI」を入力してエンターキーを押します。
4.「Vertex AI 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のスクリプトエディタを新しく開いたら、「プロジェクトの設定」を選択します。
2.プロジェクトの設定で全般設定にあるappsscript.jsonのマニュフェストファイルをエディタで表示するにチェックを入れます。
3.GASのエディタに戻り、appsscript.jsonファイルを選択し、oauthScopesの記述を追加します。
{
"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をリクエストするサンプルコードを貼り付けます。
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無料トライアル登録時に控えたプロジェクト番号を入力します。
以上でVertex AIのAPIをリクエストするGASスクリプトの実行準備が完了です。
実際にサンプルコードを実行すると、実行ログに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のような生成結果を得られるサービスを作ってみて下さい。
関連記事
GA4(グーグルアナリティクス4)のAPI使い方解説!GASのサンプルコード紹介
Google Analytics(GA)の新しいバージョンGA4のAPIが202 ...
GASで1次元配列を2次元配列に変換する方法~setValuesでスプレに書き込み
Google Apps Script(GAS)ではスプレッドシートからデータ読み ...
Google Apps Scriptで文字や数字を1文字ずつ分割・取り出し、配列に格納する方法
Google Apps Script(GAS)で数値や文字を扱っているときに、一 ...
GASでサーチコンソールAPIから検索クエリやクリック数、順位を取得する方法
SEO対策する上で必須ともいえるGoogleのサーチコンソールですが、Searc ...
GASとPhantomJsCloudで動的なWebページをスクレイピング(Javascriptページに対応)
通常のGoogle Apps Script(GAS)のスクレイピングでは、Jav ...
ディスカッション
コメント一覧
まだ、コメントがありません