🧪 開発・試作メモ

第5回|要点抽出③:提出用レポートに仕上げてみよう!

第5回|要点抽出③:提出用レポートに仕上げてみよう!

⚠️ この記事では、非エンジニアの方でも体験できるように、最低限のプロンプト例だけを載せています。実際の運用では、より高品質化した最適プロンプト&自動化フローを使用しています!詳しく知りたい方はお気軽にご相談ください 。

📌 今回のゴールをおさらい

ここまでで、

  • セッションの音声を文字起こしして
  • GPTで誤字や改行を整え
  • 要点リストを作り
  • コーチ用・生徒用のToDoに分けるところまでバッチリ進めてきました!

でもこのままだと、「JSONファイルがあるだけ」なので、他の人に送ったり、印刷したり、提出用の資料として使うにはちょっと不便です。

なので今回は、これまでに作った要点&ToDoを、報告書形式のテキストファイル にまとめて、
誰でも読みやすい形で保存 & ダウンロードできる ようにします!

さらに、次回以降に使う session_report.json(まとめ用ファイル)も、ここでしっかり準備しておくので、「レポート」「ポータル連携」「通知メール」などなど…どんな用途にも迷わず使える土台が完成します!

今回のアウトプット

  • 報告書形式のテキストファイル(.txt)
    コーチ用・生徒用をそれぞれ作ってPCに保存!
  • session_report.json
    文字起こし・要約・ToDoを全部1つにまとめた完全データ。

今回の記事の通りに進めれば、「提出しても恥ずかしくない報告書」が手に入り、次回からの自動連携もラクラクになります!

必要なファイルをColabにアップロード

今回の作業で使うのは、これまでに作ってきたこの3つのファイルです👇

ファイル名内容
session_transcript.txtGPTで整形した文字起こし
summary_list.jsonセッション要約(300〜500文字)
todo_list.jsonコーチ用/生徒用のToDoリスト

まずはこれらを Colab にアップロードして、ちゃんと中身が読めるか確認しておきましょう!

📂 ファイルをアップロードする

Colabの左メニューの 📁 マークを開いて、3つのファイルをまとめてドラッグ&ドロップするだけでOKです。

Python で中身を確認する

念のため、アップロードしたファイルが壊れてないか、以下のコードで一度チェックしておきます👇

import json

# 文字起こしを確認
with open("session_transcript.txt", "r", encoding="utf-8") as f:
    transcript = f.read()
print("=== 文字起こし ===")
print(transcript[:300])  # 長いので先頭300文字だけ表示

# 要約を確認
with open("summary_list.json", "r", encoding="utf-8") as f:
    summary_data = json.load(f)
print("=== 要約 ===")
print(summary_data)

# ToDoを確認
with open("todo_list.json", "r", encoding="utf-8") as f:
    todo_data = json.load(f)
print("=== ToDo ===")
print(todo_data)

確認ポイント

  • todo_list.json → コーチ用・生徒用が分かれているのを確認
  • 文字起こし → ちゃんとテキストが読めればOK
  • summary_list.json → 発言と要点のペアがリストで出ていればOK

すべてエラーなしで表示されれば準備完了です!

Colabで「要点だけまとめテキスト」を作って保存

summary_list.json は、「発言」と「要点」がセットでたくさん入っているファイルです。

ここから 要点だけを全部取り出して、1つのテキストにまとめる ステップを作っておきましょう!

これが、報告書に使う「セッション要約のもと」 になります。

まとめテキストを作る

以下のコードを Colab に貼って実行してください👇

import json

# summary_list.json を読み込む
with open("summary_list.json", "r", encoding="utf-8") as f:
    summary_data = json.load(f)

# 要点だけを取り出して 1 テキストにまとめる
all_points = "\n".join([seg["要点"] for seg in summary_data])

# まとめテキストとして保存
with open("summary_text.txt", "w", encoding="utf-8") as f:
    f.write(all_points)

print("✅ 要点だけをまとめた summary_text.txt を作りました!")

📌 これでできること

  • summary_list.json をわざわざ加工しなくても、いつでも「要点まとめテキスト」を作り直せる!
  • summary_text.txt はこのあと作る session_report.json にそのまま入れるだけ!

これで完璧です!

session_report.json を作る

ここまでで、

  • 文字起こし(session_transcript.txt
  • 要点だけまとめテキスト(summary_text.txt
  • コーチ用・生徒用ToDo(todo_list.json

が全部揃いました!

あとはこれらを 1つのファイル session_report.json にまとめます。

まとめる理由

  • いちいちバラバラのファイルを読む必要がなくなる
  • 報告書の自動生成・ポータル連携・通知メール など、全部これ1つでOK!

✅ Python でまとめる

以下のコードをそのまま Colab で実行してください👇

import json

# 文字起こしを読み込む
with open("session_transcript.txt", "r", encoding="utf-8") as f:
    transcript = f.read()

# まとめテキストを読み込む(要点だけまとめたやつ)
with open("summary_text.txt", "r", encoding="utf-8") as f:
    session_summary = f.read()

# ToDo を読み込む
with open("todo_list.json", "r", encoding="utf-8") as f:
    todo_data = json.load(f)

# ✅ 配列の1個目からキーを取る
coach_todo = todo_data[0]["coach_todo"]
student_todo = todo_data[0]["student_todo"]

# まとめて辞書にする
session_report = {
    "session_id": "20250615_001",  # 日付や連番など自由に設定OK
    "original_transcript": transcript,
    "session_summary": session_summary,
    "coach_todo": coach_todo,
    "student_todo": student_todo
}

# JSON として保存する
with open("session_report.json", "w", encoding="utf-8") as f:
    json.dump(session_report, f, ensure_ascii=False, indent=2)

print("✅ session_report.json を作成しました!")

🎉 これで完了!

これで session_report.json が完成!
あとはこれを ChatGPT に渡すだけで

✅ 提出用報告書
✅ ポータル表示
✅ 自動メール通知

…何にでも使えます!

GPTで報告書っぽい文章を生成する

ついに準備は整いました!
これまでに作った

  • session_report.json (文字起こし+要約+ToDoの全部入り!)

ChatGPT に丸ごと渡して、誰が読んでもわかりやすい提出用の報告書 にしてもらいます。

今回は コーチ用・生徒用の2種類 を一気に生成します!

1️⃣ session_report.json を読み込む

まずは、さっき作った session_report.json を Python で読み込みます👇

import json
from openai import OpenAI

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

# session_report.json を読み込む
with open("session_report.json", "r", encoding="utf-8") as f:
    data = json.load(f)

session_summary = data["session_summary"]
coach_todo_text = "\n".join(data["coach_todo"])
student_todo_text = "\n".join(data["student_todo"])

2️⃣ GPTに報告書をお願いする

以下のコードで、GPT に報告書を書いてもらいます👇

# ✅ コーチ用の報告書を生成
response_coach = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "system",
            "content": (
                "あなたは優秀な報告書ライターです。"
                "以下の内容をもとに、コーチ向けの報告書を日本語で150〜250文字程度で作成してください。"
                "必ず報告書本文のみを返し、前後に余計な挨拶や説明を含めないでください。"
            )
        },
        {
            "role": "user",
            "content": f"""
【session_summary】
{session_summary}

【coach_todo】
{coach_todo_text}

【student_todo】
{student_todo_text}
"""
        }
    ]
)

# ✅ 生徒用の報告書を生成
response_student = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "system",
            "content": (
                "あなたは優秀な報告書ライターです。"
                "以下の内容をもとに、生徒向けの報告書を日本語で150〜250文字程度で作成してください。"
                "必ず報告書本文のみを返し、前後に余計な挨拶や説明を含めないでください。"
            )
        },
        {
            "role": "user",
            "content": f"""
【session_summary】
{session_summary}

【coach_todo】
{coach_todo_text}

【student_todo】
{student_todo_text}
"""
        }
    ]
)

💡 ポイント

  • session_report.json を丸ごと使ってるから、情報が足りなくてGPTが勝手に妄想することがなくなります!
  • コーチ用・生徒用で構成をちょっと変えて、読み手にぴったり合わせてます。

これで、自然な文章の報告書テキストが完成!

次は、これを .txt に保存して PC にダウンロードできるようにしていきましょう✨

生成した文章を .txt に保存する

ChatGPT にお願いして、コーチ用・生徒用の報告書テキストが完成しました!

あとはこれを PCで開ける .txt ファイル に保存して、そのまま提出・共有できる形にしましょう。

1️⃣ Colab で .txt に保存する

以下のコードをそのままColabに貼って実行してください👇

# GPTの返答を変数に代入
coach_report = response_coach.choices[0].message.content
student_report = response_student.choices[0].message.content

# ファイルに書き出す
with open("coach_report.txt", "w", encoding="utf-8") as f:
    f.write(coach_report)

with open("student_report.txt", "w", encoding="utf-8") as f:
    f.write(student_report)

2️⃣ Colab から PC にダウンロードする

Colabのファイルとして保存したら、以下のコードで直接PCにダウンロードできます👇

from google.colab import files

# コーチ用報告書をダウンロード
files.download("coach_report.txt")

# 生徒用報告書をダウンロード
files.download("student_report.txt")

🔑 これで、「これをそのまま提出してOK!」な .txt ファイル が手に入りました!

📝 おさらいと次回予告

ここまでで、

  • 文字起こし
  • 要点抽出
  • ToDo化
  • まとめテキストの生成
  • 全部まとめた session_report.json の作成
  • そして ChatGPT に渡して 提出用の報告書テキストを完成!
  • .txt に保存して PC にダウンロード

まで、ばっちり終わりました 🎉

今回の記事の手順どおりに進めれば、

  • ✅ 「これを送れば完璧!」なコーチ用・生徒用の報告書がすぐ作れる
  • ✅ 次回のポータル連携や自動メール通知にもそのまま使える

…という、最強のベースが完成 です!

🔜 次回予告

次回からは、いよいよ

セッションの発言を1つずつAIで感情分析する ステップに進みます!

「この発言はポジティブ? ネガティブ? それともニュートラル?」

を、ChatGPT に 1件ずつ丁寧に判定させて、感情の揺れを数値で見える化 していきます。

感情の波を発話単位で追いかけることで、

  • セッションの雰囲気の流れを把握したり
  • コーチングの進め方を振り返ったり

がカンタンになります!🎙✨

第6回|感情分析①:発言ごとの感情をAIで数値化してみた!
お楽しみに!🚀

これで 第5回|要点抽出③:提出用レポートに仕上げてみよう! は完結です!
お疲れさまでした〜!! 🫶

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

💡 迷ったらこちらも

  • この記事を書いた人

SHIRAN

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

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