0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASからGoogle AI Studioを呼び出す

Posted at

目的

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で保管をしましょう。
image.png

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;
  }
}

実行結果

image.png

今後の展望

今回は簡単なスクリプトで実行ログに結果を表示するところまで実施しました。
外部のAPIを容易に利用可能なので、組み合わせて色々遊ぼうと思います。

無料でこれだけ出来て感激!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?