GPTsでGASを自動化するスキーマとコード
Google Apps Script (GAS)とGPTs
Google Apps Script(GAS)を使用して、さまざまな業務を自動化するGPTを作成しました。このGPTは、ユーザーの自然言語によるリクエストを受け取り、それに基づいてGASコードを生成し、実行します。
具体的には、GASのeval関数を使用してコードを実行し、タスクを完了します。これにより、ユーザーはプログラミングの知識がなくても、簡単にGASを活用して業務を自動化できます。
私のような素人が思いつく方法はこれくらいでした。より正確性・安全性を期待するかたは、ぜひ他のツールをご参考ください。
![](https://assets.st-note.com/img/1718780484749-0PrEHzaYKS.png?width=1200)
![](https://assets.st-note.com/img/1718780498596-IPQsCQF1bc.png)
使用方法
1. リクエストの整理
ユーザーが入力したリクエストを解析し、GASで実行可能なタスクに分類します。例えば、「スプレッドシートのシート名を変えて」というリクエストがあった場合、シート名を変更するためのGASコードを生成します。
2. GASコードの生成
リクエストに基づいて適切なGASコードを生成します。以下に例を示します。
リクエスト: 「スプレッドシートのシート名を変えて」
生成されるコード:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.setName("新しいシート名");
let returnMessage = "シート名を新しいシート名に変更しました。";
returnMessage;
このように、生成されたコードにはfunctionやreturnは不要です。また、最後にlet returnMessageという変数を追加し、その内容を返す形式とします。これにより、実行結果を明確にユーザーに通知します。
スキーマの例
openapi: 3.1.0
info:
title: GAS Code Generation and Execution API
description: API to generate Google Apps Script (GAS) code based on natural language tasks and doing the generated
code using this tool
version: v1.0.0
servers:
- url: https://script.google.com
paths:
/macros/s/(ここにIDを記載)/exec:
post:
operationId: makeGASCode
summary: Executes GAS code provided in the request body.
description: This endpoint executes the provided GAS code using the this tools function.
requestBody:
required: true
description: Executes the provided GAS code using the this tools function.
content:
application/json:
schema:
type: object
properties:
operation:
type: string
description: Operation to be performed
example: makeGASCode
code:
type: string
description: GAS code to be executed
responses:
"200":
description: Successfully executed.
content:
application/json:
schema:
type: object
properties:
result:
type: string
description: Success message
"400":
description: Bad request if the request parameters are not correct.
"500":
description: Internal server error.
コードの実行と結果の通知
GASのAPIを介してコードが実行されると、その結果がユーザーに通知されます。例えば、シート名を変更するタスクの結果は以下のようになります。
実行結果:
let returnMessage = "シート名を新しいシート名に変更しました。シートのURLはこちらです: https://docs.google.com/spreadsheets/d/スプレッドシートID"; returnMessage;
このように、実行結果には必ず作業の成否や関連する成果物(例えば、スプレッドシートのURL)が含まれます。これにより、ユーザーは実行結果を簡単に確認できるようになります。
GAS側の設定について
Google Apps Script (GAS)を使用して、ユーザーの自然言語リクエストを基にコードを生成し実行するシステムを構築するためには、GAS側でいくつかの設定を行う必要があります。このセクションでは、GAS側の設定手順について詳しく説明します。
1. GASプロジェクトの作成
新しく作成されたスクリプトプロジェクトに、以下のコードを追加します。このコードは、POSTリクエストを受け取り、受信したコードをeval関数で実行します。
function doPost(e) {
var params = JSON.parse(e.postData.contents);
return ContentService.createTextOutput(eval(params.code))
.setMimeType(ContentService.MimeType.JSON);
}
説明
doPost関数: HTTP POSTリクエストを処理します。
params: POSTデータをJSONとして解析し、params.codeから実行するコードを抽出します。
eval関数: 受信したコードを実行します。
ContentService: 実行結果をJSON形式で返します。
この記事が気に入ったらサポートをしてみませんか?