研修後のアンケートの自由記述を要約して、講師と研修企画の担当それぞれに返す改善レポートにする
研修後のアンケートの自由記述を読み込み、講師に返す点、研修企画の担当に返す点、会場や運営に返す点に分けて要約します。研修課の担当者が下書きを確かめ、講師向けと企画担当向けの改善レポートとして送ります。
- 生成AI
- ChatGPT/Claude/Gemini/Microsoft Copilot
- 連携・自動化
- Google Apps Script/Power Automate
- 対象業界
- 介護/小売/教育/製造
- 対象部門
- 人事
- 対象業務
- 書類作成/要約
- 主な課題
- データ分析に時間がかかる/属人化している/書類作成に時間がかかる
- AIで行う処理
- 要約
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 研修の終わりに、受講者が Google フォームのアンケートに答える
- 回答の締切(研修の3日後)を過ぎたら、担当者が回答のスプレッドシートを開く
- 満足度の設問の平均点を計算し、報告書に書く
- 自由記述を1件ずつ読み、似た意見に印を付けて、まとまりを作る
- 講師に返す点(説明の速さ、例の出し方、時間配分)と、企画に返す点(日程、教材、対象者の設定)を分ける
- 講師向けの文面と、企画担当向けのメモを書く
- 課長が目を通してから送る
- 人研修の終わりに、受講者が Google フォームのアンケートに答える(変わらない)
- 自動毎朝の定時の処理が、回答の締切を過ぎた研修を研修台帳から探す
- 自動Google Apps Script が、その回の回答を取り出し、満足度の平均点と回答数を計算する
- 自動自由記述に回答番号を振り、氏名や教室名が書かれていれば伏せる
- 自動ChatGPT(OpenAI API)が、自由記述を宛先ごとに分けて要約し、件数と引用を付ける。人が必ず読む指摘を別の欄に出す
- 自動引用が回答に実在するかを確かめ、講師向けと企画担当向けの下書きを Google ドキュメントに書き出す
- 人担当者が、人が必ず読む指摘の欄を最初に読み、対応を決める
- 人担当者が要約を原文と見比べて直し、課長の確認を経て送る
各工程の詳しい説明を読む
- 研修の終わりに、受講者が Google フォームのアンケートに答える
- 回答の締切(研修の3日後)を過ぎたら、担当者が回答のスプレッドシートを開く
- 満足度の設問の平均点を計算し、報告書に書く
- 自由記述を1件ずつ読み、似た意見に印を付けて、まとまりを作る
- 講師に返す点(説明の速さ、例の出し方、時間配分)と、企画に返す点(日程、教材、対象者の設定)を分ける
- 講師向けの文面と、企画担当向けのメモを書く
- 課長が目を通してから送る
(a)自由記述を読み切れない。 月40回、1回60件の自由記述は、月に2,400件です。繁忙期には4番目と5番目が省かれ、平均点だけの報告書になります。 平均点が4.2か4.3かでは、講師は何も直せません。
(b)講師への返し方が担当者によって違う。 厳しい意見をそのまま伝える担当者もいれば、角を丸めて伝える担当者もいます。同じ講師が、担当者の違いで違う受け取り方をしています。
(c)少数の重い指摘が埋もれる。 「実習の手順が社内の安全手順と違っていた」「講師の発言で不快に感じた」という1件は、件数の多い意見のまとまりには入らず、読み飛ばされがちです。 後から問題になって、アンケートに書いてあったことが分かります。
(d)前回からの変化が見えない。 同じ研修の前回の報告書は別のファイルにあり、「前回指摘された点が直ったか」を確かめる手間は、まず省かれます。
(e)企画担当に届く材料が薄い。 企画担当が知りたいのは、「新任講師研修の事例は対象者に合っているか」「半日で足りているか」といった、複数の回にまたがる傾向です。1回ずつの報告書が平均点と短い所感だけでは、プログラムを見直す根拠になりません。研修の中身が何年も同じまま続いているのは、この材料が無いからでもあります。
- 【人】 研修の終わりに、受講者が Google フォームのアンケートに答える(変わらない)
- 【自動】 毎朝の定時の処理が、回答の締切を過ぎた研修を研修台帳から探す
- 【自動】 Google Apps Script が、その回の回答を取り出し、満足度の平均点と回答数を計算する
- 【自動】 自由記述に回答番号を振り、氏名や教室名が書かれていれば伏せる
- 【自動】 ChatGPT(OpenAI API)が、自由記述を宛先ごとに分けて要約し、件数と引用を付ける。人が必ず読む指摘を別の欄に出す
- 【自動】 引用が回答に実在するかを確かめ、講師向けと企画担当向けの下書きを Google ドキュメントに書き出す
- 【人】 担当者が、人が必ず読む指摘の欄を最初に読み、対応を決める
- 【人】 担当者が要約を原文と見比べて直し、課長の確認を経て送る
7番目が、この設計の分かれ目です。 人が必ず読む指摘は、要約に混ぜず、下書きの冒頭に原文のまま置きます。担当者はまずそこを読み、講師に返す前に課長へ上げるかを決めます。 要約を先に読むと、そこで「好評」と受け取って満足してしまいます。
3番目で数字をAIから外しているのも、意図してのことです。 平均点は計算で出る値です。要約の文章の中に数字が入ると、担当者はそれを確かめずに送ります。
02今回想定するシステム構成
Google フォーム(研修後アンケート) │ 回答はスプレッドシートに自動で記録 ▼【トリガー】毎朝の定時の処理 ── 回答締切を過ぎた研修を探す Google Apps Script ── 満足度の平均点・回答数の計算 │ 回答番号の付与、氏名・教室名の伏せ字 ▼ ChatGPT(OpenAI API)── 自由記述を宛先ごとに要約 │ ① 講師に返す点 ② 企画に返す点 ③ 運営に返す点 │ ④ 人が必ず読む指摘(件数にかかわらず) ▼ Google Apps Script ── 引用が回答に実在するかの照合 ▼ Google ドキュメント(講師向け/企画担当向けの下書き) ▼ 【担当者が確認・修正 → 課長の確認 → 送付】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | ChatGPT(OpenAI API。最小構成では ChatGPT の画面) | Claude、Gemini、Microsoft Copilot |
| 連携 | Google Apps Script(回答の取り出し、API の呼び出し、下書きの書き出し) | Power Automate |
| 集計 | Google スプレッドシート(満足度の平均点、回答数、前回との比較) | Microsoft Excel |
| 報告書 | Google ドキュメント | Microsoft Word |
Google フォームとスプレッドシートは、新しく足すものではありません。 フォームの回答はスプレッドシートに保存でき、スプレッドシートの側でデータが自動的に表の形になるとされています。研修台帳に「回答締切」と「報告書の状態」の列を足すのが最初の準備です。
出力は構造化出力で形を固定します。 OpenAI の Structured Outputs は、指定した JSON スキーマに沿った応答を必ず生成する機能で、JSON モードとの違いはスキーマへの準拠まで保証するかどうかだとされています。一方で公式の案内でも、値の中身については誤りがありうるとされています。本構成では、引用が回答に実在するかを Google Apps Script で照合します。
API に送った内容は、既定ではモデルの学習に使われません。 OpenAI の案内では、2023年3月1日以降、API に送られたデータは明示的に共有を選ばない限りモデルの学習や改善に使われないとされています。不正利用の監視のためのログは、既定で最大30日保持されます。
03どうやって実装するのか
処理の起点を決める
毎朝1回動く定時の処理を起点にします。 Google Apps Script の時間主導型のトリガーで、研修台帳を見て、回答の締切を過ぎていて、報告書の状態が「未作成」の研修を探します。
フォームの回答が届くたびに動かすことはしません。 Google Apps Script にはフォームの送信を起点にするトリガーもありますが、1件ずつの回答で要約を作ると、同じ研修について何度も下書きができます。締切を過ぎて回答がそろってから、1回だけ作ります。
見つけた研修ごとに処理し、下書きを書き出せたら台帳の状態を「下書きあり」に変えます。状態を変えるのは、下書きの書き出しに成功したときだけです。 失敗した研修は翌朝にもう一度拾われます。
トリガーは研修課の共用のアカウントで作ります。インストール型のトリガーは作った人のアカウントで動くので、個人のアカウントで作ると、その人の異動で止まります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| アンケートの回答 | 満足度の4設問、自由記述の3設問、回答日時 | 回答のスプレッドシート |
| 研修の情報 | 研修名、開催日、地域、講師、研修のねらい、当日の進行表 | 研修台帳 |
| 前回までの要点 | 同じ研修の直近2回の「講師に返した点」と「企画に返した点」 | 過去の報告書の台帳 |
| 宛先の区分の定義 | 講師に返すもの・企画に返すもの・運営に返すものの例 | 研修課の手引 |
| 人が必ず読む指摘の定義 | 安全、ハラスメント、内容の誤り、個人への批判、体調 | 研修課の手引 |
質を決めるのは、研修のねらいと進行表です。 「分かりにくかった」という自由記述は、どの時間帯の何の話かが分からないと、講師に返しても直しようがありません。 進行表を渡すと、「後半のロールプレイの説明」のように、時間帯と内容で意見を寄せられます。
宛先の区分は、例で定義します。 「会場が寒かった」は運営、「教材の事例が小学生向けばかり」は企画、「質問への答えが早口だった」は講師、のように、研修課が迷った実例を手引に並べて渡します。 定義の文だけでは、教材の問題と講師の説明の問題が混ざります。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| その回の回答 | 回答のスプレッドシート | 研修の回の番号(フォームの設問で選ばせる)で絞る |
| 研修の情報と進行表 | 研修台帳と進行表のドキュメント | 研修の回の番号で引く |
| 前回までの要点 | 過去の報告書の台帳 | 研修名で引き、直近2回分の「返した点」だけを取る |
| 手引の定義 | 研修課の手引のドキュメント | 毎回同じものを渡す |
フォームは研修の種類ごとに1つにし、回の番号を設問で選ばせます。 回ごとにフォームを作ると、回答のスプレッドシートが月に40枚増え、取り出す先を毎回変えなければなりません。
前回の要点は、報告書の全文ではなく「返した点」だけを渡します。 全文を渡すと、今回の要約が前回の言い回しに寄ります。渡すのは、今回それが解消されているかを確かめる材料だけです。
AIへ渡す前に整形する
- 回答の絞り込み … 研修の回の番号で、その回の回答だけを取り出します
- 重複の除去 … 同じ回答者が二度送った回答(回答日時が近く、内容が同じもの)を1件にします
- 数字の計算 … 満足度の4設問の平均点、回答数、前回の平均点との差を Google Apps Script で出します
- 回答番号を振る … 自由記述1件ごとに R01、R02…と番号を振ります。引用の照合に使います
- 固有名詞を伏せる … 自由記述に書かれた受講者の氏名、教室名、生徒の名前を、名簿と照らして「〔氏名〕」「〔教室〕」に置き換えます
- 空の回答の除去 … 「特になし」「なし」だけの自由記述を除き、件数を別に数えます
- 回答数の確認 … 回答が5件未満の回は、要約の下書きを作らず、担当者に回します
5番目を先にやるのは、報告書が講師の手に渡るからです。 「〇〇教室の〇〇さんの質問への対応が冷たかった」と書かれていれば、その受講者が誰かが講師に分かります。AIに渡す前に伏せておけば、要約にも引用にも名前が出ません。
7番目の5件という線は、匿名性のためです。 少人数の回で原文を引用すると、書き方の癖や内容から誰が書いたかが分かります。少人数の回は、担当者が原文を読んで、引用せずに要点だけを返します。
AIに処理させる
させるのは、自由記述を宛先ごとに分けて要約し、件数と引用を付けること、そして人が必ず読む指摘を別に出すことです。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 宛先の区分 | 1件ずつ、講師・企画・運営・その他のどれに返すものかを決める | 迷ったら「その他」 |
| 意見のまとまり | 似た意見を寄せ、まとまりごとに一文の要約、件数、回答番号、原文の引用を付ける | 1件だけの意見もまとまりとして残す |
| 進行表との対応 | まとまりが、進行表のどの時間帯の話かを書く | 分からなければ「特定できない」 |
| 前回からの変化 | 前回返した点について、今回も同じ意見があるか | 前回の要点が無ければ出さない |
| 人が必ず読む指摘 | 手引の5つの種類に当たる記述を、件数にかかわらず回答番号で出す | 迷ったら出す |
| 講師向けの下書き | よかった点を先に、直すとよい点を2つまで、引用を添えて | まとまりが少なければ短くてよい |
宛先の区分は、たとえば次のように分かれます。
| 自由記述の例 | 宛先 | 理由 |
|---|---|---|
| 「ロールプレイの前の説明が早く、何をするのか分からないまま始まった」 | 講師 | 当日の進め方の話 |
| 「新任講師向けなのに、事例が教室長の目線ばかりだった」 | 企画 | 教材と対象者の設定の話 |
| 「会場のプロジェクターの文字が後ろの席から読めなかった」 | 運営 | 会場と設備の話 |
1行目と2行目は、どちらも「分かりにくかった」という不満ですが、直す人が違います。 企画の問題を講師に返すと、講師は自分の説明を直そうとして、教材の問題が残ります。
人が必ず読む指摘は「迷ったら出す」にします。 人が必ず読む指摘は、出しすぎても担当者が数件余計に読むだけですが、出し漏らすと、安全やハラスメントの指摘が埋もれます。 片方に倒すなら、出すほうに倒します。
| させないこと | 理由 |
|---|---|
| 満足度の平均点の計算 | Google Apps Script で出す。要約の文章に数字を混ぜない |
| 研修の良し悪しの結論 | 研修をどう変えるかは企画担当が決める |
| 講師の評価 | 講師の人事評価の材料にしない |
| 人が必ず読む指摘の要約 | 原文のまま出す。要約すると重さが変わる |
| 意見の理由の推測 | 書かれていない理由を補わない |
| 件数の少ない意見を「一部」と丸めること | 件数を数字で出す |
4行目が、この構成で最も効く禁止です。 「講師の発言で不快に感じた」という記述を「講師の言葉づかいに改善の余地」と要約すると、ハラスメントの申し出が言葉づかいの話に変わります。 原文のまま、回答番号を付けて出させます。
指示内容を固定する
あなたは社内研修の研修課で、研修後アンケートの自由記述を整理する担当です。
渡した回答だけを根拠にしてください。推測で補わないでください。
【渡すもの】
研修名と開催日:{training}
研修のねらい:{objectives}
当日の進行表:{schedule}
宛先の区分の定義と例:{audience_rules}
人が必ず読む指摘の定義:{must_read_rules}
前回までに返した点:{previous_points}
自由記述(回答番号つき):{responses}
【手順】
1. 1件ずつ、講師・企画・運営・その他のどれに返すものかを決めてください。
迷ったら「その他」にしてください。
2. 同じ宛先の中で、似た意見をまとまりにしてください。
まとまりごとに、一文の要約、件数、回答番号の一覧、原文の引用を1〜2件付けてください。
3. 1件だけの意見も、まとまりとして残してください。「一部」「少数」と書かず、件数を書いてください。
4. まとまりが進行表のどの時間帯の話か分かれば書いてください。分からなければ「特定できない」。
5. 前回までに返した点ごとに、今回も同じ意見があるかを「ある/ない」で書き、
ある場合は回答番号を付けてください。
【人が必ず読む指摘】
- 安全、ハラスメント、内容の誤り、個人への批判、体調に当たる記述は、
件数にかかわらず must_read に回答番号と種類を出してください。
- 当たるか迷ったら、出してください。
- must_read に出した記述は、要約しないでください。
【講師向けの下書き】
- よかった点を先に書き、直すとよい点は2つまでにしてください。
- 直すとよい点には、原文の引用を1件添えてください。
- 講師の人柄や能力について書かないでください。
【厳守事項】
- 引用は、回答の文字列をそのまま写してください。言い換えないでください。
- 平均点などの数字を書かないでください。
- 研修を続けるべきか、講師を替えるべきかを書かないでください。
- 〔氏名〕〔教室〕と伏せた箇所を、推測で戻さないでください。
「1件だけの意見も残す」を明記しないと、AIは件数の多いまとまりだけを残します。 要約は多数派に寄るのが自然な振る舞いで、指示しなければ1件の意見は「その他の意見」に吸収されます。
「迷ったら出す」と「要約しない」は、must_read の節に並べて書きます。 片方だけだと、出すけれども一文にまとめ直す、という中途半端な出し方になります。
出力形式を固定する
次の形のJSONで受け取ります。
{
"training_id": "",
"clusters": [
{ "audience": "trainer | planner | operations | other",
"summary": "", "count": 0, "response_ids": ["R03", "R17"],
"quotes": [""], "schedule_slot": "" }
],
"previous_points": [
{ "point": "", "still_raised": true, "response_ids": [""] }
],
"must_read": [
{ "response_id": "R22", "type": "安全 | ハラスメント | 内容の誤り | 個人への批判 | 体調" }
],
"trainer_draft": "",
"planner_draft": ""
}
1つ目の理由は、引用を機械で確かめられることです。 quotes の文字列が、response_ids に挙げた回答の中にそのまま含まれるかを Google Apps Script で照合します。含まれない引用が1つでもあるまとまりは、下書きに「引用を確認できませんでした」と出し、担当者が原文を読みます。
2つ目は、must_read に本文を持たせないことです。 持たせるのは回答番号と種類だけで、本文は Google Apps Script が回答のスプレッドシートから原文を引いて下書きに貼ります。 AIが写した本文を使うと、写す途中で言い回しが変わることがあります。
3つ目は、audience で宛先ごとの下書きを機械的に組めることです。 講師向けの下書きには trainer のまとまりだけを、企画担当向けには planner と operations を並べます。講師に企画への意見が届かないようにするのは、講師を守るためでもあります。 日程や教材の不満を講師個人への意見として受け取らせないためです。
count は、response_ids の数と一致しているかを照合します。一致しなければ、response_ids の数のほうを使います。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 研修台帳 | Google Apps Script の時間主導型トリガー | 回答締切を過ぎた未作成の研修を探す |
| 回答のスプレッドシート | 読み取り | その回の回答を取り出す |
| OpenAI API | Google Apps Script からの API 呼び出し | 宛先ごとの要約と、人が必ず読む指摘 |
| Google ドキュメント | 書き出し | 講師向けと企画担当向けの下書き |
| 研修台帳 | 書き込み | 報告書の状態を「下書きあり」に変える |
送付はこの構成から行いません。 講師へのメールは、課長の確認を経た報告書を担当者が送ります。要約の誤りや、人が必ず読む指摘の扱いが決まる前の下書きが、講師へ届く経路を作りません。
回答のスプレッドシートには書き込みません。 回答番号と伏せ字は、処理の中で作るだけで、回答そのものは変えません。
人が確認する
担当者は全部の下書きを見ます。 ただし、見る順番を決めておきます。
- 人が必ず読む指摘を先に読む … 下書きの冒頭に原文のまま貼られています。講師に返す前に課長へ上げるか、別の手順で扱うかを決めます
- まとまりの件数の多いものから、原文と見比べる … 回答番号から原文を開き、要約が原文と合っているかを確かめます
- 1件だけのまとまりを読む … 重い意見が「1件」として埋もれていないかを見ます
- 講師向けの下書きを直す … 伝え方を研修課の方針に合わせます
- 課長が確認して送る
1番目のうち、ハラスメントと体調に当たるものは、講師への報告書には載せません。 研修課長が、社内の相談の手順に沿って扱います。講師に「こういう声がありました」と返すと、書いた受講者が特定されるおそれがあります。
講師向けの下書きを直すときは、引用を消さないでください。 伝え方をやわらげたくなっても、受講者の言葉がそのまま1件あるだけで、講師は何が起きていたかを思い出せます。要約の文だけに直すと、講師にとっては研修課の意見に見えてしまいます。
目標は、1回15分です。 60件の自由記述を読み直すのではなく、要約と原文の対応を確かめ、下書きを直す時間です。15分を大きく超える回が続くときは、宛先の区分の例が足りず、担当者が区分を直しているかどうかを見ます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 回答が5件未満 | 要約を作らず、担当者が原文を読んで要点だけを返す |
| 自由記述がほぼ「特になし」 | 要約を作らず、満足度の数字と件数だけの報告にする |
| 引用が回答に見つからない | そのまとまりに「引用を確認できませんでした」と出す |
count と response_ids の数が合わない | response_ids の数を使い、ログに残す |
| 回の番号の選び間違い(別の回の回答が混ざる) | 回答日時が開催日から大きく離れているものを担当者に示す |
| 講師本人の名前が自由記述にある | 講師名は伏せない(報告の宛先なので)。受講者と生徒の名前だけを伏せる |
| 人が必ず読む指摘が多数出る | その回の報告書を止め、課長に上げる |
| OpenAI API が応答しない | 台帳の状態を変えず、翌朝にもう一度拾う |
| 応答が拒否(refusal)で返る | 拒否の欄が返ることがあるとされている。その回は担当者が手で作る |
上から2行目までが、例外の大半です。 小規模な地域の回と、時間が押して自由記述が書かれなかった回です。どちらもAIに要約させる必要がありません。 要約を作らない判断を、前処理の段階で機械的に行います。
7行目は、研修そのものの問題の兆しです。 1回の研修で安全やハラスメントの指摘が複数出たなら、それは要約や報告書で扱う話ではありません。報告書の作成を止め、課長が講師と企画担当から事情を聞くところから始めます。 台帳の状態は「保留」にし、翌朝の処理で拾い直されないようにします。
記録を残す
- その回の回答(元のスプレッドシートの行)と、伏せ字にした後の自由記述
- AIへ渡した入力(研修のねらい、進行表、手引の版)と、返ってきたJSONの全文
- 引用の照合の結果と、確認できなかった引用
must_readに出た回答番号と、課長の扱い(報告書に載せたか、別の手順に回したか)- 担当者が下書きから変えた箇所(区分を変えたまとまり、消した・足したまとまり)
- 送った報告書の最終版と送付日
5つ目が、宛先の区分の例を足す材料です。 担当者が「企画」から「講師」に直したまとまりを月に一度見ると、手引に足すべき例が分かります。
4つ目は、課長の判断の記録として残します。 後から「アンケートに書いてあったのに対応しなかった」と問われたとき、いつ、誰が、どう扱ったかを答えられるようにします。
04実装レベルの3段階
最小構成でも、読む時間は減ります。 ただし、名前を手で伏せ、貼り付ける手間が残り、伏せ忘れのおそれがあります。 試すための段階です。 半自動化で1回15分になり、この段階が本記事の想定です。 伏せ字が機械で行われ、下書きが宛先ごとに組まれて出てきます。本格構成で効くのは、時間よりも研修の改善の追いかけ方です。 前回返した点が次の回で消えたかを、研修の種類ごとに並べて見られます。 本格構成の半期のまとめは、1回ずつの要約をもう一度要約するものではありません。 1回ずつの clusters を研修の種類ごとに並べ、同じまとまりが何回の研修で出たかを Google スプレッドシートで数えます。AIに半年分の要約をまとめ直させると、1回ずつの要約で残した1件の意見が、そこでまた消えます。数えることは表で行い、AIには並んだまとまりの言い回しをそろえることだけをさせます。 段階を飛ばさないでください。 半自動化を1か月回すと、担当者がどのまとまりの区分を直しているかが分かります。そこを手引の例に足してから本格構成に進みます。
05工数削減シミュレーション
導入後 40件 × 15分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 社内研修を月に数十回開き、研修後のアンケートをフォームで集めている企業の人事部・研修部門。講師が社内の現場のベテランで、フィードバックを受ける仕組みが無い場合。アンケートの自由記述を読み切れず、満足度の平均点だけで研修を評価している場合。学習塾・介護・小売のように、現場の人が講師を務める研修が多い業種。
- 研修が年に数回で、担当者が全部の回答を読める場合。アンケートを紙で集めていて、電子化の予定が無い場合(先に UC-0028 のような読み取りが要ります)。研修の評価を講師の人事評価に直接つなげる運用の場合。なお、研修の中身をどう変えるかの判断は、この構成では代替しません。
07最小構成で試す方法
- 先月の研修から5回を選ぶ(回答の多い回、少ない回、厳しい意見の多かった回を入れる)
- その5回の、当時作った報告書を手元に置く
- 回答のスプレッドシートから自由記述を書き出し、受講者と生徒の名前を手で伏せる
- ChatGPT の画面に、研修のねらい、進行表、自由記述を貼り、第7章のプロンプトで要約させる
- 出てきた要約を、当時の報告書と突き合わせる
厳しい意見の多かった回を必ず入れてください。 厳しい意見が要約でやわらげられていないか、1件だけの重い意見が残っているかが、この構成の最初の関門です。試すときに使う ChatGPT の画面が、入力をどう扱う契約になっているかは、社内の情報システム部門と確かめてください。
| 出てきた内容 | 判断 |
|---|---|
| 当時の報告書と同じまとまりが出て、1件の意見も残っている | Google Apps Script との連携に進む |
| 1件の意見が「その他」に吸収されている | 指示の書き方で直る。「件数を書く」「1件も残す」を徹底する |
| 宛先の区分が当時の報告書と大きく違う | 宛先の区分の例が先。 手引に例を足す |
3行目は、研修課の中で基準がそろっていなかったことの表れかもしれません。 当時の報告書も担当者によって区分が違っていたなら、それは第3章の(b)です。
5回の突き合わせでは、講師にも下書きを見てもらってください。 研修課の担当者が「よくできた要約」と思っても、講師が読んで何を直せばよいか分からなければ役に立ちません。講師に「この下書きで次の回に何を変えるか」を聞き、答えが出てこない下書きは、引用が足りないか、進行表との対応が取れていないかのどちらかです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 1件だけの重い意見が要約で消える | 人が必ず読む指摘を別の欄に出し、要約させない |
| ハラスメントの申し出が言葉づかいの話になる | 原文のまま出す。要約を禁じる |
| 引用が言い換えられている | 回答番号と引用を照合し、合わないものに印を付ける |
| 要約の中に数字が混ざる | 数字は Google Apps Script で出す。指示で禁じる |
| 受講者が特定される | AIに渡す前に名前を伏せる。5件未満の回は要約しない |
| 企画への不満が講師への意見として届く | audience で宛先を分け、講師向けには trainer だけを載せる |
| 宛先の区分が担当者とずれる | 手引に実例を足す。定義の文だけで済ませない |
| 同じ研修で何度も下書きができる | 回答の送信ではなく、締切後の定時の処理で1回だけ作る |
| トリガーが止まる | 共用のアカウントで作る |
| 要約が前回の報告書の言い回しに寄る | 前回の全文ではなく「返した点」だけを渡す |
| 講師が要約の厳しさで身構える | 下書きはよかった点から始め、直す点を2つまでにする |
上の2行が、この構成の失敗のほとんどです。 どちらも「要約する」という仕事の性質から出ています。要約は多数派を残し、角を丸めます。 それが向かない記述を、要約の前に取り分けてあるかどうかで、運用に乗るかが決まります。
下の2行も軽く見ないでください。 講師が報告書を読んで身構えれば、受講者の声は次の研修に生きません。直す点を2つまでに絞るのは、講師が次の回で実際に直せる量にするためです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 受講者のアンケートの回答(匿名が原則)、自由記述に書かれた受講者・生徒・教室の名前、講師の名前、研修の内容。自由記述には、職場の人間関係や体調の話が書かれることがあります。
- AIに渡す前に名前を伏せる … 受講者と生徒の名前、教室名を名簿と照らして伏せます。伏せた箇所を戻す指示は出しません
- 少人数の回は要約しない … 5件未満の回は原文を引用すると書いた人が分かります。担当者が要点だけを返します
- ハラスメントと体調の記述を講師に返さない … 研修課長が社内の相談の手順で扱います
- 要約を講師の人事評価に使わない … 受講者の構成や研修の時期でも意見は変わります。使うかどうかを決めるなら、別の場で決めてください
- 回答と下書きの保存期間を決める … 自由記述には職場の人間関係が書かれます。回答のスプレッドシート、伏せ字の前後の自由記述、下書きのそれぞれを何年残すかを決めます
- API のデータの扱いを確かめる … OpenAI の案内では、API に送ったデータは明示的に選ばない限り学習に使われず、不正利用の監視のログは既定で最大30日保持されます。社内の規程で、この保持が許されるかを確かめます
- ChatGPT の画面で試すときの契約を確かめる … 試す段階で使う画面が、入力をどう扱う契約かは、利用しているプランで異なります。情報システム部門と確かめてから、実際の回答を貼ってください
誤りが起きた場合のリスクは、重い指摘が埋もれることと、受講者が特定されることの2つです。 前者は要約に混ぜると起き、後者は名前を残したまま引用すると起きます。どちらも要約の前の取り分けで守ります。
10まず何から始めるか
1週目:手引を作る
宛先の区分(講師・企画・運営)の実例を、過去の報告書から20件ほど拾って並べます。あわせて、人が必ず読む指摘の5つの種類と、それぞれの扱い(誰に上げるか)を決めます。
2週目:5回で試す
先月の5回分の自由記述を、名前を伏せて ChatGPT の画面で要約させます。厳しい意見がやわらげられていないか、1件の意見が残っているかを最優先で見ます。
3週目:フォームと研修台帳を整える
研修の種類ごとにフォームを1つにし、回の番号を設問で選ばせます。研修台帳に「回答締切」と「報告書の状態」の列を足します。
4週目:締切後の下書きまでをつなぐ
Google Apps Script で、締切を過ぎた研修を探し、数字の計算、伏せ字、要約、引用の照合、下書きの書き出しまでを作ります。この時点では講師向けの下書きを出さず、企画担当向けと人が必ず読む指摘だけを出します。
2か月目: 講師向けの下書きを足し、1回の所要時間を担当者ごとに測ります。3か月目以降: 担当者が直した区分を手引に足し、前回返した点の推移を研修の種類ごとに並べます。講師への返し方が担当者によってぶれなくなり、重い指摘が必ず課長に届く流れが定着した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Structured Outputs が指定した JSON スキーマに沿った応答を必ず生成し、JSON モードと違ってスキーマへの準拠を保証すること。拒否の場合は refusal の欄が返ること。値の中身には誤りがありうること | OpenAI: Structured Outputs | 2026-09-29 |
| 2023年3月1日以降、API に送ったデータは明示的に共有を選ばない限りモデルの学習や改善に使われないこと。不正利用の監視のログが既定で最大30日保持されること | OpenAI: Data controls in the OpenAI platform | 2026-09-29 |
| Google フォームの回答をスプレッドシートに保存でき、データが自動的に表の形になること | Google ドキュメント エディタ ヘルプ: フォームの回答の保存先を選択する | 2026-09-29 |
| インストール型トリガーに時間主導型とフォーム送信のトリガーがあること。作った人のアカウントで動くこと | Google Apps Script: Installable Triggers | 2026-09-29 |
ChatGPT の画面の入力の扱いは、利用しているプランの契約で確かめてください。 本記事は OpenAI API の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0312)についてのご相談はこちらから。
