👀
Google Apps ScriptでOpenAI Responses APIのImages and visionを動かす
やりたいこと
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を経由しバンドルする必要がありますが、今回は使用しませんでした。
さいごに
今回は、Google Apps Scriptを使ってOpenAIのResponses API(Vision対応)を活用し、画像解析を行う方法をご紹介しました。シンプルなコードで画像とテキストを一緒に送信できるのはとても便利で、応用の幅も広がりそうです。
今後はさらに画像の前処理や、レスポンスの活用方法も工夫していけたらと思っています。GASとAIの組み合わせ、可能性はまだまだ無限大ですね!
最後まで読んでいただき、ありがとうございました。
Discussion