🧪 開発・試作メモ

第4回|要点抽出②:抽出結果をToDo形式に整えてみた

第4回|要点抽出②:抽出結果をToDo形式に整えてみた

🎯 今回のゴール

今回の記事では、前回までに作った要点リスト(summary_list.json)をもとに、

「次に何をすればいいのか?」が一目でわかる ToDoリスト に変換する方法を学びます。

しかも、ただToDoを作るだけじゃなく、

  • コーチ視点のToDo
  • 生徒視点のToDo

という 2つの角度 に分けて整理してみるので、セッション後の振り返りや次回の準備がグッとラクになります。

最後には、このToDoをJSON形式にまとめてPCにダウンロード できるところまでを、迷わない一択ルート でお届けします!

🗂 必要なファイルを準備

今回使うのは、前回までで作った
summary_list.json(要点リスト) だけです!

すでにPCに保存しているはずなので、Colabにアップロードして実行するだけでOK。

👉 ここでやることはただ一つ

ファイル名が summary_list.json になっているかだけ確認しておきましょう!

🚀 要点からToDoを作る手順

ここからは、準備した summary_list.json を読み込んで、GPTに要点を「次にやること(ToDo)」に変えてもらう方法 を一歩ずつ進めていきます。

やることはとってもカンタン!

順番にコードをコピペしていくだけで、コーチ用・生徒用のToDoリストが自動で出来上がります

1️⃣ JSONを読み込む

まずは、前回作った summary_list.json を Colab に読み込みます。

以下のコードを そのままコピーして実行 してください!

ファイルアップロード用のボタンが出るので、PCに保存してある summary_list.json を選べばOKです

# Colab にファイルをアップロードする
from google.colab import files
uploaded = files.upload()

# JSONファイルを読み込む
import json

with open("summary_list.json", "r", encoding="utf-8") as f:
    summary_list = json.load(f)

print("✅ summary_list.json を読み込みました!")
print("要点の数:", len(summary_list))

👉 ここまでで、要点リストが Python の summary_list という変数に入りました!

次は、これを GPTに送ってToDoを作ってもらう ステップに進みましょう🚀✨

2️⃣ GPTに「ToDo化」してもらう

summary_list を読み込んだら、次は 1要点ずつ GPT に送って、「何をすればいいか?」を考えてもらいます

ここでは、

  • コーチ視点のToDo
  • 生徒視点のToDo

同時に生成 する方法を紹介します!

🧩 プロンプト例(コーチ&生徒用)

GPTに送るときは、以下のように1つの要点から2種類のToDo をまとめて作ってもらいましょう👇

from openai import OpenAI
import json

client = OpenAI()

results = []

for item in summary_list:
    text = item["要点"]

    # ✅ GPTに指示を出す
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {
                "role": "system",
                "content": (
                    "あなたは優秀なToDo生成アシスタントです。"
                    "以下のテキストを読んで、"
                    "コーチ用と生徒用のToDoをJSON形式で出力してください。"
                    "出力例: {\"coach\": \"...\", \"student\": \"...\"}"
                    "必ず日本語で答えてください。"
           "必ずJSONのみを返してください。"
                )
            },
            {
                "role": "user",
                "content": text
            }
        ]
    )

    # ✅ JSONとして読み取る
    todo_json = json.loads(response.choices[0].message.content)

    # ✅ 結果に追加
    results.append({
        "original": text,
        "coach_todo": todo_json["coach"],
        "student_todo": todo_json["student"]
    })

print("✅ ToDo化が完了しました!")
print("生成件数:", len(results))

👉 これで、1つの要点からコーチ用と生徒用のToDoがペアで生成され、results にたまっていきます!

次は、この resultsJSONにまとめて保存 するステップに進みます💪✨

3️⃣ 生成結果をまとめて保存する

GPTが作ってくれた コーチ用・生徒用のToDoリスト を最後にまとめて todo_list.json というファイルに保存しましょう。

保存するだけじゃなく、ちゃんと中身が正しく出来ているか?

画面にも一部を表示して確認 できるようにしておきます!

保存&確認用のコード

# JSONファイルに書き出す
with open("todo_list.json", "w", encoding="utf-8") as f:
    json.dump(results, f, ensure_ascii=False, indent=2)

print("✅ todo_list.json に保存しました!")

# 確認用に最初の3件だけ表示
print("=== 生成された ToDo の一部 ===")
for i, item in enumerate(results[:3]):
    print(f"--- {i+1} ---")
    print("Original:", item["original"])
    print("Coach ToDo:", item["coach_todo"])
    print("Student ToDo:", item["student_todo"])
    print()

✅ これで、

  • ファイル todo_list.json が完成!
  • Colab上でちゃんと結果も確認できる!

次は、このファイルを PCにダウンロード して、次回に備えましょう! 🚀

4️⃣ ToDoリストをPCにダウンロード

todo_list.json が Colab 上で完成したら、必ずPCにダウンロード しておきましょう!

このファイルは、次回のレポート生成やポータル反映 にも使います。

ダウンロード用のコード

以下を Colab にコピペして実行してください👇

from google.colab import files

# ファイルをPCにダウンロード
files.download("todo_list.json")

これで、ブラウザの左下に todo_list.json がダウンロードされます!

必ず 分かりやすい場所に保存 しておいてくださいね。

これで 今回のゴール達成です🎉

次は、このToDoを活用して、レポート自動生成やポータル連携 に進んでいきます!お楽しみに

🎁 サンプルToDo例(コーチ編/生徒編)

最後に、今回作った ToDoリストがどんな感じになるか をイメージしやすいように、簡単な例を載せておきます!

例:

🎤 要点  
「音声を聞いて理解するのに自信がない。」

👨‍🏫 コーチがやるべきこと  
→ 生徒のリスニング課題を追加して、進捗を一緒にチェックする。

👩‍🎓 生徒がやるべきこと  
→ おすすめのリスニング素材を毎日10分聞く習慣を作る。

こんなふうに、同じ要点から「コーチ用」「生徒用」の2つの視点に分ける と、次のセッション準備やフォローがすごく楽になります!

👉 ポイントは、

  • コーチ側:指導やサポートの行動を書く
  • 生徒側:具体的な学習アクションを書く

これだけ意識すればOKです ✨

これで「こう分けると便利!」のイメージが掴めたらバッチリです!

🎁 簡潔版 ToDo を作って保存しよう!

ここまでで、「コーチ編・生徒編」の詳細ToDoリストができましたが、ポータルに載せるときは、もっとシンプルに「次にやることだけ」が欲しい!

そこで、生徒用ToDoだけをまとめた簡潔版 を作ってtodo.json にしておきます ✨

✅ やることは超カンタン:

  • todo_list.json の中から student_todo だけを抜き出す
  • リストにして todo.json に保存
  • ついでにPCにダウンロードしておく

🧩 コード例

# ✅ 必要ライブラリ
from openai import OpenAI
import json
from google.colab import files

# ✅ OpenAIクライアント作成
client = OpenAI()

# ✅ まとめたい要点リストを読み込み
with open("summary_list.json", "r", encoding="utf-8-sig") as f:
    summary_list = json.load(f)

# ✅ GPTに送って「簡潔版 ToDo」を生成
# 例:要点まとめ版として 1〜5件程度の日本語 ToDo をお願いする
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "system",
            "content": (
                "あなたは優秀なToDo生成アシスタントです。"
                "以下の要点リストを読み、コーチと生徒の次の行動が一目でわかる"
                "簡潔なToDoを日本語で1〜5件にまとめ、JSON形式の配列で返してください。"
                "必ずJSONのみで返してください。前後に文章は付けないでください。"
                "出力例: [\"〜\", \"〜\", \"〜\"]"
            )
        },
        {
            "role": "user",
            "content": "\n".join([item["要点"] for item in summary_list])
        }
    ]
)

# GPTの生の返答
raw_response = response.choices[0].message.content
print("=== GPTの返答 ===")
print(raw_response)

# もし```json```で囲まれてたら除去
clean_response = raw_response.strip()
if clean_response.startswith("```json"):
    clean_response = clean_response[7:]
if clean_response.endswith("```"):
    clean_response = clean_response[:-3]
clean_response = clean_response.strip()

# JSONとして読み取る
todo_simple = json.loads(clean_response)

# ✅ ファイルに保存
with open("todo.json", "w", encoding="utf-8-sig") as f:
    json.dump(todo_simple, f, ensure_ascii=False, indent=2)

print("✅ 簡潔版 ToDo を todo.json に保存しました!")

# ✅ PCにダウンロード
files.download("todo.json")

これで、

  • ✅ 詳細版 todo_list.json
  • ✅ 簡潔版 todo.json

どっちも揃いました!

あとは必要に応じて使い分ければOKです 🚀

📝 おさらいと次回

これで、セッションの要点から「次にやること(ToDo)」を自動で作る方法 をマスターできました!

  • 要点リストを読み込み
  • GPTでコーチ用/生徒用ToDoを生成
  • まとめてJSONに保存&PCにダウンロード

全部クリアできたので、次回はこの ToDoリストをレポートにまとめたり、ポータルページに活かしたり する回に進みます。

📌 次回予告:

作ったToDoを「誰でも見やすいレポート」に変換したり、生徒ごとに専用ページを作ってリンク共有したり、さらに便利にしていく裏側を一緒に作っていきましょう!

これで今回のToDo編はバッチリです!お疲れさまでした🎉✨

🔗 関連リンク|AI秘書ツール制作シリーズ

💡 迷ったらこちらも

  • この記事を書いた人

SHIRAN

「コードは知らない。でも作れる。」AIとツールで便利を生む非エンジニア。挫折も経験しながら、今は作る楽しさを発信中。詳しくはこちら

-🧪 開発・試作メモ
-, ,