【備忘録】GPTs(GPT Builder)でGoogleドキュメントを直接参照して回答させる方法


目的

特定のGoogleドキュメントの最新の情報に基づいて回答するGPTsを作る。
エラー処理などは行わず、素人が思いつく最もシンプルなものを作成する。

結論(コード)

function doGet(e) {
  var documentId = e.parameter.documentId; // クエリパラメータからドキュメントIDを取得
  var doc = DocumentApp.openById(documentId); // IDを使用してドキュメントを開く
  var body = doc.getBody(); 
  var text = body.getText();

  var cc = ContentService.createTextOutput(
    JSON.stringify({ "text": text })
  ).setMimeType(ContentService.MimeType.JSON);

  return cc;
}
openapi: 3.1.0
info:
  title: Get Text
  description: Get Text from Google Documents
  version: v1.0.0
servers:
  - url: https://script.google.com
paths:
  /macros/s/(ここに先ほどコピーしたGASのIDを貼り付け)/exec:
    get:
      description: Get text from a specified Google Document.
      operationId: GetText
      parameters:
        - name: documentId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved the document content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bodyResponse'
components:
  schemas:
    bodyResponse:
      type: object
      properties:
        text:
          type: string

現状

スプレッドシートの情報を参照する方法は以下の通り。
自然言語から特定のキーワードを抜き出し、それらをもとにDB(スプレッドシート)検索をかけ、結果を出力するものは散見される。
スプレッドシートの最新の情報に基づいて回答することが可能。

一方、Googleドキュメントを使用した記事がないため、備忘録的にまとめる。

今回のゴール

こうしたい

ちなみに、この図もGPTが作成

GAS(Google Apps Script)の設定

Googleドキュメントの準備

・適当に作成
・今回は、足立康史 衆議院議員のWikipediaをGoogleドキュメントにコピペしたものを利用

GASの準備

GASを開く

コードを書く

function doGet(e) {
  var documentId = e.parameter.documentId; // クエリパラメータからドキュメントIDを取得
  var doc = DocumentApp.openById(documentId); // IDを使用してドキュメントを開く
  var body = doc.getBody(); 
  var text = body.getText();

  var cc = ContentService.createTextOutput(
    JSON.stringify({ "text": text })
  ).setMimeType(ContentService.MimeType.JSON);

  return cc;
}

ウェブアプリとしてデプロイ

(今回は割愛)

URLをコピーしておく

GPTs Custom Actionsの準備

openapi: 3.1.0
info:
  title: Get Text
  description: Get Text from Google Documents
  version: v1.0.0
servers:
  - url: https://script.google.com
paths:
  /macros/s/(ここに先ほどコピーしたGASのIDを貼り付け)/exec:
    get:
      description: Get text from a specified Google Document.
      operationId: GetText
      parameters:
        - name: documentId
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved the document content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bodyResponse'
components:
  schemas:
    bodyResponse:
      type: object
      properties:
        text:
          type: string

実際に質問してみた

Q.この政治家は誰ですか?

初回のみ、「許可」をクリックします

A.この政治家は足立康史(あだち やすし)です。1965年10月14日生まれで、日本の政治家、元官僚です。日本維新の会所属の衆議院議員(4期)で、元経済産業省(旧:通商産業省)官僚です。足立康史は京都大学工学部と京都大学大学院工学研究科で工学修士の学位を取得し、その後、アメリカ合衆国コロンビア大学国際公共政策大学院で公共政策修士(専門職)の学位を取得しました。政治活動のほか、YouTubeチャンネル「あだチャン」を運営しており、政治活動に関するコンテンツを提供しています。

Q.著書を教えてください

A.足立康史氏の著書は以下の通りです:

  1. 『永田町アホばか列伝』 - 悟空出版、2017年。ISBN 978-4908117404。

  2. 『足立無双の逆襲 永田町アホばか列伝Ⅱ』 - 悟空出版、2018年。ISBN 9784908117480。

  3. 『国会という茶番劇 ―維新が拓く日本の新しい政治―』 - ワニブックス、2019年。ISBN 9784847066290。

  4. 『報道特注(本)』 - 扶桑社、2017年。ISBN 978-4594078461。(生田與克、和田政宗との共著)

  5. 『宣戦布告 ―朝日新聞との闘い 「モリカケ」裏事情から、在日・風俗・闇利権まで、日本のタブーに斬り込む!―』 - 徳間書店、2018年。ISBN 978-4198645717。(小川榮太郎との共著)

これらの書籍は、政治やメディアとの関わり、また永田町での経験に基づいた内容が含まれています。

Q.好きな食べ物は?

A.足立康史氏の好きな食べ物は、卵かけご飯です。

知らんかった


この記事が参加している募集

GPTsつくってみた

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