Zenn
👀

Google Apps ScriptでOpenAI Responses APIのImages and visionを動かす

2025/03/23に公開

やりたいこと

Google Apps ScriptでOpenAI Responses APIのImages and visionを動かすことで、画像の解析をしたい

写真の公開設定

リンクを知っている人はコピーというようになっている必要があります。
全体公開することが制約事項となります。全体公開が難しい場合は、スクリプトで公開設定を一時的にON/OFFをする実装をする必要があるでしょう。AWS S3のように10分だけ有効なURLのような細かい制御はGoogleドライブでは行うことができません。

コード

function sample() {
  const secretKey = "APIキー。実際はハードコードするのはNGです";

  // OpenAI Response APIで生成
  const URL = "https://api.openai.com/v1/responses";

  const headers = {
    "Content-Type": "application/json",
    Authorization: `Bearer ${secretKey}`,
  };

  const body = {
    model: "gpt-4o",
    input: [
      {
        role: "user",
        content: [
          { type: "input_text", text: "内容おしえて" },
          {
            type: "input_image",
            image_url: "https://drive.google.com/uc?export=view&id=ドライブ保存時に発行されているIDを設定します",
          },
        ],
      },
    ],
  };

  try {
    const response = UrlFetchApp.fetch(URL, {
      method: "post",
      headers: headers,
      payload: JSON.stringify(body),
    });

    const json = JSON.parse(response.getContentText());
    const outputText = json.output?.[0]?.content?.[0]?.text;

    console.log(outputText);
  } catch (ex) {
    console.log(ex.message);
  }
}

補足事項

APIはライブラリ不要で簡単なCurl形式のものを参考にしています。
base64版を使うためには、Claspを経由しバンドルする必要がありますが、今回は使用しませんでした。

https://platform.openai.com/docs/guides/images?api-mode=responses&lang=curl

さいごに

今回は、Google Apps Scriptを使ってOpenAIのResponses API(Vision対応)を活用し、画像解析を行う方法をご紹介しました。シンプルなコードで画像とテキストを一緒に送信できるのはとても便利で、応用の幅も広がりそうです。

今後はさらに画像の前処理や、レスポンスの活用方法も工夫していけたらと思っています。GASとAIの組み合わせ、可能性はまだまだ無限大ですね!

最後まで読んでいただき、ありがとうございました。

Discussion

ログインするとコメントできます