レポートのAIアドバイス自動生成
概要
| 項目 | 内容 |
|---|---|
| ステータス | 🔵 提案中 |
| Issue | #9 |
| 担当 | - |
| 出力形式 | PowerPoint(PPTX) |
| テンプレート | MEO月間レポート / MEO年間レポート |
既存のPPTXテンプレートをベースに、インサイト・口コミ・ランキングデータを自動で流し込み、AIアドバイスを生成してレポートを自動作成する。
提案内容
背景・課題
- レポートのアドバイスは手動で記述しており時間がかかる
- データに基づく客観的なアドバイス生成が困難
- レポート作成者によってアドバイスの質にばらつきがある
- PowerPointテンプレートへの手動データ入力が煩雑
提案するソリューション
既存の管理画面(/admin/reports)のレポート作成フローにAIアドバイス生成とPPTX自動出力を統合する。
主な特徴:
- 既存PPTXテンプレート(月間/年間)へのデータ自動流し込み
- インサイト・口コミ・ランキングデータからAIアドバイスを自動生成
- 管理画面のレポート作成画面(ReportGenerate.vue)にAI生成ボタンを追加
- 生成アドバイスの手動編集後にPPTXダウンロード
機能一覧
| # | 機能名 | 説明 | 優先度 |
|---|---|---|---|
| 1 | AIアドバイス生成 | データに基づくアドバイス自動生成 | 高 |
| 2 | PPTX自動生成 | テンプレートへのデータ・アドバイス流し込み | 高 |
| 3 | テンプレート選択 | 月間/年間テンプレートの選択 | 高 |
| 4 | アドバイス編集 | 生成アドバイスの手動編集 | 中 |
| 5 | PPTXダウンロード | 生成レポートのダウンロード | 高 |
管理画面への組み込み
既存の管理画面レポート機能(/admin/reports)に統合する。
既存構成:
| パス | コンポーネント | 説明 |
|---|---|---|
/admin/reports | ReportList.vue | レポート一覧(フィルタ・検索) |
/admin/reports/generate/:userId? | ReportGenerate.vue | レポート作成(セクション選択・コメント入力) |
/admin/reports/:userId/history | ReportHistory.vue | ダウンロード履歴 |
追加する機能:
ReportGenerate.vueに以下を追加:
- 「AIアドバイス生成」ボタン → Python APIを呼び出し
- 生成結果のプレビュー・編集エリア
- テンプレート選択(月間/年間)
- 「PPTXダウンロード」ボタン
レポートサンプル(月間)
サンプルデータを流し込んだ月間レポートのプレビューです。
画面モック
レポートAIアドバイス
AI分析結果
良い点
- 全店舗平均で表示回数が前月比15%増加
- 口コミ返信率が95%を維持
- 写真投稿の頻度が適切に維持されている
改善点
- 3店舗でインサイト数値が低下傾向
- 新規口コミ獲得数が目標未達
- 一部店舗でGBP情報の更新が滞っている
アドバイス
全体的にはポジティブなトレンドですが、インサイト低下が見られる3店舗については個別対策が必要です。特に投稿頻度の見直しと、口コミ促進施策(QRコード配布等)の実施を推奨します。
アーキテクチャ
技術スタック
| 項目 | 技術 | 選定理由 |
|---|---|---|
| PPTX生成 | python-pptx | テンプレートのプレースホルダー置換が最も優秀 |
| AI基盤 | LangChain + LangGraph | python-pptxと同一Pythonプロセスでネイティブ連携 |
| APIサーバー | FastAPI | 軽量・高速、非同期対応 |
| LLM | Claude Sonnet 4(推奨) | 日本語品質・コスト最適 |
| フロントエンド | Vue.js(既存ReportGenerate.vue改修) | 既存管理画面に統合 |
| バックエンド | Laravel API | データ集約・Python API呼び出し |
全体構成
Python FastAPI 処理フロー
PPTX生成の仕組み
python
from pptx import Presentation
# テンプレート読み込み
prs = Presentation('MEO月間レポート_テンプレート.pptx')
# プレースホルダーにデータを流し込み
for slide in prs.slides:
for shape in slide.placeholders:
if shape.placeholder_format.idx == 0: # タイトル
shape.text = f"{shop_name} 月間レポート"
if shape.placeholder_format.idx == 1: # 本文
shape.text = ai_generated_advice
# テーブル・グラフのデータ更新
# ...
prs.save('output_report.pptx')技術選定の比較
| 方式 | テンプレート対応 | AI連携 | 導入コスト | 採用 |
|---|---|---|---|---|
| Python (python-pptx + LangChain) | ◎ プレースホルダー置換 | ◎ ネイティブ | FastAPIサーバー追加 | 採用 |
| PHP (PHPPresentation) | △ 限定的 | × 別途API必要 | なし | 不採用 |
| Node.js (pptx-automizer) | ○ テンプレート対応 | × 別途API必要 | Node環境 | 不採用 |
Python採用の理由:
- python-pptxのテンプレート置換機能が最も成熟(プレースホルダー名での参照)
- LangChainと同一プロセスで動作し、API呼び出しのオーバーヘッドなし
- グラフ生成もMatplotlib→画像埋め込みで対応可能
概算工数(AI前提)
体制
| 役割 | 人数 | 担当内容 |
|---|---|---|
| 設計者 | 1名 | 要件確認 → AIに設計書作成指示 → レビュー → 製造へ指示 |
| 製造者 | 1名 | ISSUEを元にAIに作成指示 → コードレビュー → テスト実施 → デプロイ |
工数内訳
| # | 作業項目 | AIリテイク | レビュー | 工数(人日) | 担当 |
|---|---|---|---|---|---|
| 1 | 要件確認・設計書作成 | 2回 | 0.5日/回 | 1.0 | 設計者 |
| 2 | プロンプト設計・API設計 | 3回 | 0.5日/回 | 1.5 | 設計者 |
| 3 | Python FastAPI環境構築 | 2回 | 0.5日/回 | 1.0 | 製造者 |
| 4 | python-pptxテンプレート実装 | 3回 | 0.5日/回 | 1.5 | 製造者 |
| 5 | LangChainアドバイス生成実装 | 3回 | 0.5日/回 | 1.5 | 製造者 |
| 6 | Laravel API・Vue.js UI改修 | 2回 | 0.5日/回 | 1.0 | 製造者 |
| 7 | 結合テスト・品質調整 | 3回 | 0.5日/回 | 1.5 | 製造者 |
| 8 | デプロイ・動作確認 | 1回 | 0.5日/回 | 0.5 | 製造者 |
| 合計 | 9.5 |
前提条件・制約
- LLM APIのアカウント・利用枠が確保されていること
- Python FastAPIサーバーのホスティング環境が用意できること
- PPTXテンプレートのプレースホルダー設計が事前に完了していること
- 既存の管理画面レポート機能(
/admin/reports)の改修が許可されていること
スケジュール
| タスク | 担当 | 日数 | 4/3 | 4/4 | 4/5 | 4/6 | 4/7 | 4/8 | 4/9 | 4/10 | 4/11 | 4/12 | 4/13 | 4/14 | 4/15 | 4/16 | 4/17 | 4/18 | 4/19 | 4/20 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 | 月 | |||
| 要件確認・設計書作成 | 設計者 | 1d | ||||||||||||||||||
| プロンプト設計・API設計 | 設計者 | 2d | ||||||||||||||||||
| Python FastAPI環境構築 | 製造者 | 1d | ||||||||||||||||||
| 設計レビュー・製造指示 | 設計者 | 1d | ||||||||||||||||||
| python-pptxテンプレート実装 | 製造者 | 2d | ||||||||||||||||||
| LangChainアドバイス生成 | 製造者 | 2d | ||||||||||||||||||
| Laravel API・Vue.js UI改修 | 製造者 | 1d | ||||||||||||||||||
| 結合テスト・品質調整 | 製造者 | 2d | ||||||||||||||||||
| デプロイ・動作確認 | 製造者 | 1d |