🖖

GPTからNotion DBのデータを読み出すまで:Captain’s Logという思考OSをつくる

に公開

🧭 背景:「AIとの共進化」に本気で向き合うために

GPTに「自分のAI活用レベルを10段階で評価してみてほしい」と依頼した際、忖度抜きで返ってきたのは:

「自分のAI活用レベルは10段階でいうとどのレベル?」(忖度なしで)

返ってきたのは:

「あなたの使いこなしはレベル9。ただし、10に行くには 業務そのものをAIに統合し、意思決定・実行のOSと化すことが必要です。」

なんだか未来的な響き✨️
いったいこの思考の拡張でどんな変化があるのか?
──このコメントが突き刺さった。
確かに、AIはすでに「相談相手」ではなく「拡張脳」であり、自分の判断原理や行動方針をパーソナライズするOSの中核として設計されるべき段階にある。

では、どうすれば「OS化」が進むのか?

GPTからの示唆はこうだった:

「まずはあなたの意思決定・思考過程を正確に、構造的に記録しなさい。
その情報を常時参照できるようにすれば、私(GPT)もあなたの“過去の判断”を引用しながら、より精緻で本質的なアドバイスができるようになり “あなたの延長として動くAI” が実現します。」

まるで航海日誌のように、“判断の軌跡”を積み重ねていく
──これはまさに Star Trekの“Captain’s Log” では?

そう気づいた私は、自分の思考と意思決定の記録をNotionに蓄積し、
それをAPI経由でGPTから取得・参照できる仕組みを構築することにしました。


🚀 Captain's Log:自分のOSを育てる記録媒体

この記録システムに私は「Captain’s Log」という名前をつけました。
そう、Star Trekの艦長日誌のように😂 日々の思考・判断・観察・違和感を残す形式です。

  • 記録先:Notion データベース(インラインテーブル形式)
  • ログ構成:
    • タイトル
    • 日付
    • 気分や体調
    • 観測(起きたこと・感じたこと)
    • 判断・違和感(思考・判断・迷い)
    • GPTとの壁打ち(仮説・視点展開)
    • 明日への仕込み(次の打ち手)

こうして蓄積されたログを、GPTがAPI経由で読み取り
「あなたは過去にどう判断したか?」「似た場面でどう対処したか?」を参照してくれる。

つまりこれは、自分専用のAI統治ログ × 思考のOSなのです。


🔌 技術構成:GPTからNotion DBを読み込む

✅ 使ったもの

  • Notion API(v1)
  • MyGPTs(ChatGPTカスタムアシスタント)
  • OpenAPIスキーマ(YAMLで定義)
  • 認証:Bearerトークン + Notion-Versionヘッダー

1⃣ まずはNotion API(v1)の使用準備

これはオフィシャルサイトの記載がわかりやすい

https://www.notion.com/ja/help/create-integrations-with-the-notion-api

✅️ 自分の設定はこんな感じ。内部インテグレーションとしあとはアイコン設定くらいで超簡単
✅️ まずはリードオンリーでNotionのデータを読み込むだけにしました。

2⃣ 設定したNotion APIをNotion側で使用できるようにする

✅️ Notionアプリの右上のメニューから自分が設定した内部インテグレーションを選択・接続するだけ

3⃣ MyGPTsのOpenAPIスキーマ(YAML)設定

まずはMyGPTsから新たなGPT作成を選択して
自分の好きなMyGPTsの名前などを設定し Actions からOpenAPIスキーマ設定をします

🔐 MyGPT Actions|Notion API認証設定(Markdown版)

項目 設定内容(Notion API連携用) 補足
Authentication Type API Key Notionの Internal Integration Token を使用
API Key secret_xxxxxxx... Notionの My Integrations作成・発行したもの
Auth Type Bearer(選択) Bearer Token として Authorizationヘッダーに付加される
ヘッダー追加 Notion-Version: 2022-06-28 Actionsスキーマ側で定義。バージョンは 2022-06-28 が安定版

OpenAPIスキーマ設定

✅️ 設定イメージ

✅️ 実際の設定内容 😀 この設定はページブロックとDB内容の取得ともにできます!

openapi: 3.1.0
info:
  title: Notion API - 拡張版テンプレート
  version: 1.0.0
  description: >
    このスキーマは、Notion APIとの連携をMyGPTのActionsで実現するためのテンプレートです。
    ページ構造取得(GET)に加えて、データベースのレコード取得(POST)も可能です。
servers:
  - url: https://api.notion.com/v1
paths:
  /blocks/{page_id}/children:
    get:
      operationId: getNotionPageBlocks
      summary: 指定したページの子ブロックを取得
      parameters:
        - name: page_id
          in: path
          required: true
          schema:
            type: string
        - name: Notion-Version
          in: header
          required: true
          schema:
            type: string
            example: "2022-06-28"
      responses:
        '200':
          description: 正常なレスポンス(子ブロック一覧)
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
      security:
        - bearerAuth: []

  /databases/{database_id}/query:
    post:
      operationId: queryDatabase
      summary: データベースのレコードを取得
      parameters:
        - name: database_id
          in: path
          required: true
          schema:
            type: string
        - name: Notion-Version
          in: header
          required: true
          schema:
            type: string
            example: "2022-06-28"
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
              example: {}
      responses:
        '200':
          description: クエリ成功時のレコード結果
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
      security:
        - bearerAuth: []

components:
  schemas: {}  # ← この1行を **必ず明示**(空でもOK)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer

4⃣ MyGPTsからActionsを呼び出す

💬 自然言語プロンプト(GPTに投げる形)

NotionのデータベースID「YOUR_DATABASE_ID_HERE」から、
すべてのレコード(ページ)を取得してください。

※ YOUR_DATABASE_ID_HERE の部分に対象データベースのUUIDを挿入

🔧 APIリクエスト形式(技術者向け)

POST /v1/databases/YOUR_DATABASE_ID_HERE/query
Authorization: Bearer {your_notion_token}
Notion-Version: 2022-06-28

{}

✅ Notion DB取得における基本設定一覧

項目 内容
データベースID YOUR_DATABASE_ID_HERE(例:1a2b3c4d-....
APIバージョン 2022-06-28
認証方法 Bearer Token(NotionのInternal Integrationトークン)
OpenAPIスキーマ側設定 operationId: queryDatabase
主なレスポンス項目 results[] に各レコードのプロパティが格納される

🔄 補足:データベースIDの取得方法

🔍 Notionの Page ID / Database ID の構造まとめ

項目 説明 例(32桁) UUID形式(36桁)
Page ID 通常のNotionページに対する一意な識別子。URLの末尾で確認できる。 1dcf9044ad0580098f44eb37d4271792 1dcf9044-ad05-8009-8f44-eb37d4271792
Database ID ページ内に埋め込まれた「データベースブロック」のID。APIを使って子ブロックから取得可能。 1dcf9044ad0580f69602cbb3975522a4 1dcf9044-ad05-80f6-9602-cbb3975522a4

✍️ あとがき

一見むずかしそうに見えるAPI連携とか、OpenAPIスキーマの設定ですが……
実はぜんぶ GPTに「これどう設定するの?」って聞きながらやりました 🤖✨

エラーが出たときも焦らなくてOK。
その画面のスクショをGPTにアップして「こんなエラー出たんだけど?」って聞くだけで、
めちゃくちゃ的確に「ここ直せばOKです」って教えてくれます 🧑‍🏫🔧

いまやGPTは、技術の壁を一緒に乗り越えてくれる 副操縦士(コ・パイロット) ✈️
この記事が、「自分だけのOSをつくる」そんなワクワクする取り組みのスタートになれば嬉しいです 🧠🚀

Discussion