皆さんこんにちは、横浜で清掃業をしているヤスです。
前回は【Dify初級】子どもの症状を話しかけるだけ!受診すべきか判断+かかりつけ医への説明文を自動生成するチャットボット
のアプリを作りましたね。今回はこちらです。
1. 「なんとなく練習している」から「データで改善する」に変わります
スポーツをしている人なら誰もが経験したことがある悩みがあります。「練習はしているのになぜか記録が伸びない」「自分の弱点がわからない」「大会までどんな練習をすればいいかわからない」パーソナルコーチがいれば解決できる悩みですが、コーチなしで練習している人がほとんどです。
今回紹介する「練習記録→弱点分析+練習メニュー自動生成くん」は、1週間の練習記録を貼り付けるだけで以下を全自動生成します。
- 弱点分析(技術・体力・メンタル・練習バランスの4カテゴリ・優先度付き)
- 来週の7日間練習メニュー(ウォームアップ・メイン・クールダウン・意識するポイント付き)
- 大会までのピーキング計画(5フェーズのロードマップ・2週間前のやること/やめること付き)
- コンディション管理アドバイス(睡眠・栄養・メンタル・怪我予防)
実際に「5000m 18分切りを目指す中級ランナー・右膝に違和感あり・疲労気味」という条件でテストしたところ、弱点がスタミナ不足→休養不足→フォーム改善の優先順位で整理され、右膝への配慮が練習メニュー全体に一貫して反映されました。
2. 実際の出力サンプル
🏃 練習分析レポート&メニュー 競技:陸上 目標:5000m 18分切り(3ヶ月後) 🔍 STEP1 弱点分析 残り期間:12週間(84日) 優先度:高|スタミナ不足 根拠:インターバル走で後半ペースが落ちる リスク:本番でも後半失速・目標未達の可能性 優先度:中|休養不足 根拠:疲労気味+右膝の違和感から休養不足の可能性 リスク:疲労蓄積→怪我のリスク上昇 強みとして維持:前半のペース・練習の多様性 📋 STEP2 来週の練習メニュー(疲労気味対応版) 月:完全休養 火:スタミナ強化ロングジョグ 60分(強度5/10) 水:フォームドリル+補強運動(膝に負担をかけない) 木:ペース走 30分(強度6/10) 金:完全休養 土:インターバル走 200m×5本(軽め・強度7/10) 日:アクティブレスト 🎯 STEP3 ピーキング計画 現在:ベース期(残り12週間) → スタミナ強化・休養・フォーム改善が重点 2週間前にやること:練習量を減らして質重視 2週間前にやめること:新技術の習得・過度な負荷
💡 「右膝の違和感」という1つの情報が弱点分析・メニュー・ピーキング計画・コンディション管理の全4セクションに一貫して反映されました。
3. このアプリが特に刺さる人
| こんな人に刺さる | 解決できる悩み |
| コーチなしで練習しているアスリート | 弱点が主観でしか判断できない問題が解決 |
| 市民ランナー・趣味スポーツ愛好家 | 大会に向けた練習計画を立てるのが苦手な問題が解決 |
| 部活・クラブチームの指導者 | 複数選手の記録をまとめて分析してメニューを個別生成できる |
| 記録が伸び悩んでいるアスリート | 「なんとなく練習」からデータに基づく改善へシフトできる |
| 復帰明け・怪我から回復中の選手 | 怪我の部位を考慮した無理のないメニューが自動生成される |
4. 全体のブロック構成
| # | ブロック名 | 種類 | 役割 |
| 1 | ユーザー入力 | 開始 | 競技・レベル・目標・練習記録・体調を入力 |
| 2 | 弱点分析 | LLM① | 4カテゴリで弱点を特定・優先度付き・引き継ぎメモ生成 |
| 3 | 練習メニュー生成 | LLM② | 7日間の練習メニューを体調・怪我を考慮して生成 |
| 4 | ピーキング計画 | LLM③ | 5フェーズのロードマップ・コンディション管理を生成 |
| 5 | 最終整形 | テンプレート変換 | 全レポートを1つにまとめる |
| 6 | 出力 | 終了 | 最終レポートを出力 |
5. 事前準備|必要なものはこれだけ
- Difyのアカウント(無料プランOK)
- OpenAIのAPIキー(GPT-4oが使えるプラン)
- 1週間分の練習記録(日付・内容・時間・気づきをメモしたもの)
- 所要時間:30〜40分
💡 練習記録は詳しいほど分析精度が上がります。「月曜:ジョグ30分」より「月曜:ジョグ30分・5分30秒/km・後半足が重かった」の方が的確な弱点分析につながります。
6. 【作り方】ステップごとに丁寧に解説
STEP 1|新しいワークフローアプリを作成する
- Difyにログインして「アプリを作成」をクリック
- 種類は「ワークフロー」を選ぶ
- アプリ名に「練習記録→弱点分析+練習メニュー自動生成くん」と入力
- 「作成する」をクリック
STEP 2|開始ブロックを設定する(変数7つ)
| 変数名 | 表示名 | 種類 | 必須 |
| sport | 競技・種目 | セレクトボックス | ✅ 必須 |
| level | レベル | セレクトボックス | ✅ 必須 |
| goal | 目標・目標大会 | テキスト(短文) | ✅ 必須 |
| goal_date | 目標日・大会日 | テキスト(短文) | ✅ 必須 |
| practice_log | 今週の練習記録 | テキスト(長文) | ✅ 必須 |
| physical_condition | 今週の体調・疲労度 | セレクトボックス | ✅ 必須 |
| concern | 自分が感じている課題 | テキスト(長文) | 任意 |
【sport】選択肢:陸上/水泳/マラソン・ランニング/サッカー・フットサル/バスケットボール/野球・ソフトボール/テニス・バドミントン/バレーボール/武道/筋トレ・ウェイトトレーニング/その他
【level】選択肢:初心者(1年未満)/中級者(1〜3年)/上級者(3年以上)/競技者(インターハイ・社会人大会レベル)
【physical_condition】選択肢:絶好調/普通(多少の疲れあり)/疲労気味(休養が必要)/怪我・痛みあり(練習量を抑えたい)
STEP 3|LLM①(弱点分析)を設定する
temperature:0.2(分析系は正確性重視)に設定してください。
このブロックのプロンプト設計で最重要な3点があります。
- 弱点を4カテゴリに分類させる:技術的・体力的・メンタル的・練習バランスの4種類で分類することで漠然とした弱点が具体的になります
- 優先度を決める基準を明示する:「改善に時間がかかるものほど早く着手する」という基準をStep4で定義することで的確な優先順位が付きます
- 強みの維持ポイントを必ず出力させる:弱点だけでなく「維持すべき強み」を出力させることでモチベーション維持につながります
💡 怪我・痛みがある場合はFallbackで「強度を落とした代替練習を前提にする」と定義しておくことで全ブロックに一貫した配慮が反映されます。
STEP 4|LLM②(練習メニュー生成)を設定する
temperature:0.5・最大トークン:2000に設定してください。
練習メニューの品質を上げる3つのポイントがあります。
- 週間の練習バランスを比率で定義する:技術30〜40%・体力30〜40%・試合形式10〜20%・休養1〜2日という比率をStep2で明示します
- 体調別の強度調整基準を設定する:絶好調→高強度週2回・疲労気味→低〜中強度中心・怪我あり→患部に負担のかからない代替練習と4段階で定義します
- 怪我時の代替練習ルールを追加する:疲労時のインターバルは「距離を短くするか本数を減らすかのどちらか一方」という基準を追記することで両方を同時に減らしすぎる問題を防ぎます
STEP 5|LLM③(ピーキング計画)を設定する
temperature:0.4・最大トークン:1500に設定してください。
ピーキング計画の5フェーズを明確に定義します。
| フェーズ | 残り期間 | 重点 | 練習量 | 強度 |
| ベース期 | 8週間以上 | 基礎体力・技術の底上げ | 中 | 中 |
| 強化期 | 4〜8週間 | 弱点を集中改善 | 多 | 高 |
| 調整期 | 2〜4週間 | 量を落として質を上げる | 中 | 中 |
| ピーク期 | 4日〜2週間 | 体を整える | 少 | 低 |
| 直前期 | 3日以内 | ほぼ休養・軽い確認 | 最少 | 最低 |
⚠️ ピーク期と直前期の境界を「残り4日」で明確に区切ることが重要です。境界が曖昧だとAIが2つのフェーズを混同することがあります。
STEP 6|テンプレート変換+終了ブロックを設定する
| 変数名(左) | 参照先(右) | 内容 |
| arg1 | LLM①.text | 弱点分析 |
| arg2 | LLM②.text | 来週の練習メニュー |
| arg3 | LLM③.text | ピーキング計画 |
| arg4 | 開始.sport | 競技・種目 |
| arg5 | 開始.goal | 目標 |
| arg6 | 開始.goal_date | 目標日 |
| arg7 | 開始.level | レベル |

7. テスト実行と確認ポイント
以下のテストデータを使って実行してください。
競技:陸上(長距離) レベル:中級者 目標:5000m 18分切り 目標日:3ヶ月後の市民マラソン 体調:疲労気味 課題:後半にペースが落ちる 練習記録: 月:ジョグ30分・流し5本 火:インターバル走(400m×8本)75〜83秒(後半落ちた) 水:オフ 木:テンポ走5km・ドリル30分 金:ジョグ40分・補強運動 土:ロング走15km(5分30秒/km) 日:オフ 気づき:後半のペース維持が苦手。右膝に少し違和感あり
- STEP1:弱点が3段階(高・中・低)で整理されているか
- STEP1:右膝の違和感が分析に反映されているか
- STEP1:強みとして維持すべき点が出力されているか
- STEP2:7日間のメニューが揃っているか・休養日が2日あるか
- STEP2:疲労気味を考慮した強度設定になっているか
- STEP3:現在のフェーズが明示されているか
- STEP3:2週間前のやること/やめることが出力されているか
8. プロンプト設計の工夫ポイント
① 怪我情報を全ブロックに一貫反映させる
「右膝の違和感あり」という入力情報がLLM①の弱点分析・LLM②のメニュー全体・LLM③のコンディション管理の全ての箇所に反映されました。これはLLM①の引き継ぎメモに「体調を考慮した強度設定」を含めてLLM②・③が参照する設計になっているためです。
② 弱点を「4カテゴリ」で分類させる
「なんか遅い」という漠然とした感覚を技術的弱点・体力的弱点・メンタル的弱点・練習バランスの問題の4カテゴリに分類させることで「何を改善すればいいか」が明確になります。
③ ピーキング計画で「今は何をすべき時期か」を明示する
残り期間に応じて現在どのフェーズにいるかを明示することで「大会直前に無理な詰め込み練習をしてしまう」という最悪のパターンを防げます。
9. よくある質問(FAQ)
Q1. どんな競技でも使えますか?
sport変数のセレクトボックスに11種類の競技を用意しています。「その他」を選択して練習記録に競技の詳細を書くことでラグビー・ダンス・格闘技なども対応できます。
Q2. 怪我があっても使えますか?
physical_conditionで「怪我・痛みあり」を選択することで患部に負担をかけない代替練習が自動的に提案されます。ただしこのアプリは医療アドバイスではありません。怪我の治療はかかりつけの医師・トレーナーにご相談ください。
Q3. チームの複数選手に使えますか?
各選手が個別に入力して実行することで選手ごとの個別メニューが生成されます。指導者が複数選手の記録をまとめて1回で処理したい場合は繰り返しブロック(Iterator)の追加をおすすめします。
Q4. 毎週定期的に使うにはどうすればいいですか?
毎週日曜日に1週間の練習記録をまとめて入力する習慣をつけることで週次の練習分析レポートが自動生成されます。Notionと連携させて記録を蓄積すると長期的な成長の変化も可視化できます。
10. さらに便利にする3つのカスタマイズ
① タイム推移グラフを追加する
コード実行ブロックを追加して練習記録のタイムデータをグラフ化することで視覚的に成長の変化を確認できます。「頑張っているのに記録が伸びているかわからない」問題が解決します。
② 栄養・食事アドバイスを追加する
LLM④を追加して競技・トレーニング強度に合わせた食事プランを生成することでパフォーマンス向上の両輪が揃います。「練習はしているのに疲れが取れない」という選手に特に有効です。
③ 複数週のデータを比較分析する
過去4週分の練習記録をまとめて入力できる変数を追加することで「1週間では見えないトレンド(慢性疲労・マンネリ化・特定の弱点の固定化)」を発見できます。
11. まとめ
- 1週間の練習記録を貼り付けるだけで弱点分析・来週の7日間練習メニュー・大会までのピーキング計画が数分で完成
- 弱点を技術・体力・メンタル・練習バランスの4カテゴリに分類して優先度付きで整理
- 怪我・疲労の情報が全ブロックに一貫して反映される設計でオーバートレーニングを防ぐ
- 5フェーズのピーキング計画で大会直前に最高のコンディションを作れる
- 5ブロック構成。手順通りに進めれば30〜40分で完成
「なんとなく練習している」から「データで改善する」へ。パーソナルコーチがいなくても科学的な練習計画が立てられます。競技種目・レベル問わず使えるので、
練習メニューを考えるのが面倒な方、マンネリしてる方
時短にしたい方など、ぜひ試してみてください。
次におすすめの記事
AIの頭の中を覗き見!?LangSmithで「ブラックボックス」を可視化してみた!
xもやってるので良かったら見に来てください
次回も是非お楽しみに!


コメント