実験やワークショップの時間管理を効率化する
実験やワークショップを行うとき、5分のセッション、1分の入れ替え、10分のディスカッション、、、こうした時間管理をするとき、計画や実行でつまずくことがあります。タイムライン君はこうした時間管理をサポートするためのツールです。タイムライン君は、CSVファイルで指定したスケジュールのタイマーを生成してくれるアプリケーションです。ダウンロードはこちら(Windows版)、ZIPファイルを解凍して使用してください。
CSVファイルは以下のような形式で作成します。
| title | member | start | duration | fixed | instruction | 
|---|---|---|---|---|---|
| セッション1 | Member | 0:05:00 | duration | セッション5分間 | |
| 入れ替え | Manager | 0:01:00 | duration | 入れ替えを行ってください | |
| セッション2 | Member | 0:05:00 | duration | セッション5分間 | |
| 入れ替え | Manager | 0:01:00 | duration | 入れ替えを行ってください | |
| セッション3 | Member | 0:05:00 | duration | セッション5分間 | |
| ディスカッション | Manager | 0:10:00 | duration | ディスカッション10分間 | 
 右上にある「Send to timer」ボタンを押すと、以下のような画面が出てきてタイマーが開始されます。
    右上にある「Send to timer」ボタンを押すと、以下のような画面が出てきてタイマーが開始されます。 
    ChatGPT用のスキーマを用意する
CSVファイルはExcelやテキストエディタで簡単に編集することができますし、部分的な修正であればタイムライン君のアプリケーション内で直接編集することも可能です。しかし、複雑なスケジュールを作成する場合にはChatGPTを活用するとより便利です。 ここでは、タイムライン君用のCSVファイルを生成するためのChatGPTプロンプトの例を紹介します。プロンプトの前に、スキーマについて説明します。今回私たちがほしいのは、タイムライン君が読み込むことのできるフォーマットに従ったCSV形式のデータです。カラム名(一行目のtitleやmemberなど)は正確である必要がありますし、時刻のフォーマット(h:mm:ss)も曖昧であってはいけません。
そういうとき、スキーマを提示することで、得られるデータの精度を高めることができます。タイムライン君はChatGPT向けのスキーマを公開しており、具体的には以下のようなものです。CSVの各カラムの意味やフォーマット、生成例をJSON形式で指示しています。
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Timeline-kun CSV",
  "description": "An array of CSV rows for Timeline-kun",
  "type": "array",
  "minItems": 1,
  "items": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "title": { "type": "string", "description": "Event name" },
      "member": { "type": "string", "description": "Person or group" },
      "start": { "type": "string", "pattern": "^\\d{1,2}:[0-5]\\d:[0-5]\\d$", "description": "Start time H:MM:SS" },
      "duration": { "type": "string", "pattern": "^\\d{1,2}:[0-5]\\d:[0-5]\\d$", "default": "0:00:05", "description": "Duration H:MM:SS" },
      "fixed": { "type": "string", "enum": ["start","duration"]},
      "instruction": { "type": "string", "description": "Notes" }
    },
    "required": ["title","member","fixed"],
    "allOf": [
      {
        "if": { "properties": { "fixed": { "const": "start" } } },
        "then": { "required": ["start"] }
      },
      {
        "if": { "properties": { "fixed": { "const": "duration" } } },
        "then": { "required": ["duration"] }
      }
    ]
  },
  "x-notes": {
    "csvHeaderOrder": ["title","member","start","duration","fixed","instruction"],
    "rowOrdering": "Array order is execution order. Do not reorder rows.",
    "instructionTrigger": "The instruction field triggers recording only if it contains the exact substring '(recording)' with matching case",
    "rowRules": [
      "All column values may be duplicated across rows",
      "If duration is not specified, default to 0:00:05"
    ],
    "examples": [
      { "title": "Wake up",    "member": "all member", "start": "0:00:00", "fixed": "start", "instruction": "Good morning! (recording)" },
      { "title": "Stand by",   "member": "group A",    "start": "0:10:00", "fixed": "start" },
      { "title": "Walking",    "member": "group B",    "start": "0:11:00", "duration": "0:05:00", "fixed": "start" },
      { "title": "Stand by",   "member": "sub-001",    "duration": "0:00:20", "fixed": "duration" },
      { "title": "Monitoring", "member": "sub-001/ses-01",    "duration": "0:20:00", "fixed": "duration", "instruction": "Skip when core body temperature reaches 38.5°C" }
    ]  }
    }次に、実際にChatGPTに投げるプロンプトの例を示します。
このスキーマに従ってCSVファイルを生成してほしい。
5分のセッションを3回、間に入れ替え時間が1分、最後に10分のディスカッション
CSVファイルで提供してください。言語は日本語 指示に矛盾や抜け漏れがなければ、このように簡潔な指示でも正確なCSVファイルが生成されます。ちなみにこのとき生成されたCSVファイルの中身は以下のとおりでした。
    指示に矛盾や抜け漏れがなければ、このように簡潔な指示でも正確なCSVファイルが生成されます。ちなみにこのとき生成されたCSVファイルの中身は以下のとおりでした。
    | title | member | start | duration | fixed | instruction | 
|---|---|---|---|---|---|
| セッション1 | グループA | 0:00:00 | 0:05:00 | start | 記録を開始します (recording) | 
| 入れ替え1 | 全員 | 0:05:00 | 0:01:00 | start | |
| セッション2 | グループB | 0:06:00 | 0:05:00 | start | |
| 入れ替え2 | 全員 | 0:11:00 | 0:01:00 | start | |
| セッション3 | グループC | 0:12:00 | 0:05:00 | start | |
| ディスカッション | 全員 | 0:17:00 | 0:10:00 | start | 意見交換まとめ | 
タイムライン君に限らず、スキーマを提示することでChatGPTからより品質の高いデータを得ることができます。ぜひ試してみてください。