目的
Google AI StudioとGoogleAPPsScript(GAS)を組み合わせたスクリプトが無かったので作ってみました。
GoogleAIStudioとは
Google AI Studioは、Googleが提供しているAIモデルを手軽に試したり、プロトタイプを作成したりできるツールです。
最新のAIモデルの利用、APIの発行が無料でできることが魅力です。
(参考:https://ai.google.dev/aistudio?hl=ja)
これがあれば、有料版のGeminiは不要・・・
今回はこのAPIを用いてGASと連携させることを考えます。
事前準備
Google AI StudioでAPIキーを発行
GASでのAPIキーの保管
一般にスクリプト内にAPIキーそのものを保管するのは望ましくありません。
そのため、GASの機能でAPIキーを保管し、スクリプトで呼び出す形式にします。
GASのProject setting⇒Script Propertiesで保管をしましょう。
GASでのスクリプト
※Geminiに作ってもらいました。
GAS
function generateAIContent() {
const API_KEY = PropertiesService.getScriptProperties().getProperty('AI_studio_Key');
if (!API_KEY) {
Logger.log("APIキーが設定されていません。スクリプトプロパティで設定してください。");
return;
}
const modelName = "gemini-1.5-flash"; // モデル名
const prompt = "AIって何"; // プロンプト
const apiUrl = "https://generativelanguage.googleapis.com/v1beta/models/" + modelName + ":generateContent"; // APIエンドポイント
// リクエストボディ
const requestBody = {
contents: [{
parts: [{ text: prompt }]
}]
};
// HTTPリクエストを送信
const options = {
method: 'POST',
contentType: 'application/json',
headers: {
'x-goog-api-key': API_KEY,
},
payload: JSON.stringify(requestBody),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(apiUrl, options);
const responseCode = response.getResponseCode();
if (responseCode === 200) {
const json = JSON.parse(response.getContentText());
const generatedText = json.candidates[0].content.parts[0].text;
Logger.log(generatedText);
return generatedText;
} else {
Logger.log("エラーが発生しました。コード: " + responseCode + " 内容: " + response.getContentText());
return null;
}
}
実行結果
今後の展望
今回は簡単なスクリプトで実行ログに結果を表示するところまで実施しました。
外部のAPIを容易に利用可能なので、組み合わせて色々遊ぼうと思います。
無料でこれだけ出来て感激!