GPTsでGASを自動化するスキーマとコード

Google Apps Script (GAS)とGPTs

Google Apps Script(GAS)を使用して、さまざまな業務を自動化するGPTを作成しました。このGPTは、ユーザーの自然言語によるリクエストを受け取り、それに基づいてGASコードを生成し、実行します。

具体的には、GASのeval関数を使用してコードを実行し、タスクを完了します。これにより、ユーザーはプログラミングの知識がなくても、簡単にGASを活用して業務を自動化できます。

私のような素人が思いつく方法はこれくらいでした。より正確性・安全性を期待するかたは、ぜひ他のツールをご参考ください。


使用方法

1. リクエストの整理

ユーザーが入力したリクエストを解析し、GASで実行可能なタスクに分類します。例えば、「スプレッドシートのシート名を変えて」というリクエストがあった場合、シート名を変更するためのGASコードを生成します。

2. GASコードの生成

リクエストに基づいて適切なGASコードを生成します。以下に例を示します。

リクエスト: 「スプレッドシートのシート名を変えて」

生成されるコード:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
sheet.setName("新しいシート名"); 
let returnMessage = "シート名を新しいシート名に変更しました。"; 
returnMessage;

このように、生成されたコードにはfunctionやreturnは不要です。また、最後にlet returnMessageという変数を追加し、その内容を返す形式とします。これにより、実行結果を明確にユーザーに通知します。

  1. スキーマの例

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形式で返します。

この記事が気に入ったらサポートをしてみませんか?