Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20260626_生成AIで「見える化」する Microsoft MVP-公開データの集計・分...

20260626_生成AIで「見える化」する Microsoft MVP-公開データの集計・分析ダッシュボード実装

Microsoft MVP の公開プロフィール情報をもとに、国別・地域別・Award Category 別・Technology Area 別などの傾向を可視化するダッシュボードを実装した事例を紹介します。

本セッションでは、.NET 8 Blazor Web App、Azure Container Apps、Azure SQL Database、Azure OpenAI、MudBlazor、Blazor-ApexCharts を組み合わせたアーキテクチャに加え、Spec Kit と GitHub Copilot Agent を活用して、仕様駆動でAIエージェント実装を進める流れを解説します。

また、未ドキュメントAPIや公開データの扱いについて MVP Program Support に確認した結果を踏まえ、「技術的に取れること」と「使ってよいこと」を分けて考える重要性についても触れます。

Avatar for yutakaosada

yutakaosada

June 26, 2026

More Decks by yutakaosada

Other Decks in Technology

Transcript

  1. 2026.06.26 Yutaka.Osada 生成AIで「見える化」する Microsoft MVP Spec Kit と GitHub Copilot

    Agent で作る データ可視化ダッシュボード 公開データの取得・可視化・インサイト生成を、仕様駆動で実装する
  2. Agenda DO WHAT MATTERS 2 ダッシュボー ド紹介 MVP データを「検 索」ではなく「分析

    」するダッシュボー ドの全体像 アーキテクチ ャ全体像 データ取得から可視 化、Azure OpenAI によるインサイト生 成まで Spec Kit 活用 の流れ 仕様駆動で AI エー ジェント実装を進め るプロセスの紹介 公開データ利 用の考え方 技術的に取れること と、使ってよいこと は別
  3. Yutaka Osada (長田 豊) • DevOps Engineer @Avanade Japan •

    業務 • Azureコンポーネントを活用したサー ビス構築 • 技術検証、パフォーマンスチューニン グを得意とし、T-SQLが好き。 • 技術スタック • C#, .NET, Azure(PaaS), Azure DevOps, GitHub • Please follow me DO WHAT MATTERS 3 https://github.com/yutaka-art
  4. ダ ッ シ ュ ボ ー ド DO WHAT MATTERS

    4 https://mvp.ante-mode.online/
  5. なぜ「数値で見る Microsoft MVP」なのか DO WHAT MATTERS 5 現状の公開ページ • 個人プロフィールの検索・閲覧に最

    適化 • 全体傾向を把握するには見えづらい 部分がある • 集計・比較・時系列分析が難しい 見えていない問いかけ • 地域別の分布はどうなっているか • Award Category ごとの人数差は • Technology Area に偏りはあるか • 国別・時系列でどう変化しているか 公開情報を「探す」ページから、公開情報を「読む」ダッシュボードへ 公開されている Microsoft MVP プロフィール情報に基づき、国別・地域別・カテゴリ別などの集計 インサイトを生成 公開情報:https://mvp.microsoft.com/ja-JP/search?target=Profile&program=MVP
  6. 一般公開ページとの差別化 DO WHAT MATTERS 6 観点 一般公開ページ 今回のダッシュボード 主目的 MVP個人の検索・閲覧

    全体傾向の分析 表示単位 個人プロフィール中心 国・地域・カテゴリ・技術領域・会社 分析 検索結果から人が読み取る 集計・比較・ドリルダウン 時系列 見えづらい 日別・月別・年別の総数推移 フィルター 検索条件中心 地域・カテゴリ・会社・技術領域など インサイト 人が解釈 Azure OpenAI で文章化 公式ページを置き換えるものではなく、公開情報を集計・分析するための別視点のダッシュボードです
  7. ダッシュボードの機能 DO WHAT MATTERS 7 MVP総数の表 示 地域別・国別 分布 Award

    Category別分 布 Technology Area別分布 会社別分類 日別・月別・ 年別推移 ドリルダウン ・フィルター Azure OpenAI インサイト生 成 性別など公開プロフィール上で明示されていない属性については、推定による分類は行わない方針です。
  8. データ取得方式と利用条件への配慮 DO WHAT MATTERS 8 1 HTML クローリング検討 アクセス負荷・保守性・ 利用条件の懸念

    → 2 API 候補を発見 → 事前確認を実施 MVP Program Support へ問い合わせ → 3 回答を受けて 方針を確定 集計インサイト中心の アプローチを継続 ✓ MVP Program Support からの回答(確認済み) 使用・表現NG • 当該 API は非ドキュメント・非サポート → 直接利用は非推奨 • 「公式 API」という表現は不可 推奨アプローチ • 現時点で公式な公開 API は存在しない • 推奨表現:「公開されている Microsoft MVP プロフィール情報に基づく」 • 集計インサイト中心のアプローチはベスト プラクティスに沿っている 事前に確認したことで、方針の正しさが裏付けられた
  9. 公開データ利用時のガードレール DO WHAT MATTERS 9 • 公開プロフィール情報のみを対象に する • 認証回避や非公開情報の取得は行わ

    ない • 低頻度・キャッシュ前提で取得する • 過度な並列アクセスを行わない • 429 / 403 / 5xx では停止またはバッ クオフする • 個人プロフィール全文の再配布は行 わない • 集計値・インサイト中心に表示する • 推定属性の付与は行わない • 表現は「公開されている Microsoft MVPプロフィール情報に基づく」と する これらの方針は MVP Program Support により「ベストプラクティスに完全に沿っている」 と確認済み 技術的に取れることと、使ってよいことは別。確認が信頼をつくる。
  10. アーキテクチャ全体像 DO WHAT MATTERS 10 MVP Support へ確認のうえ、特定の未ドキュメント化APIを公式APIとして扱わず、「公開されてい る Microsoft

    MVP プロフィール情報に基づく集計ダッシュボード」として紹介します。 Azure Resource Group Container Apps Environment Container Apps(Web) Container Apps(Worker) Container revision 1 Container revision 2 Container revision Ingress http://8080 100% SQL Database MVP datas Container Registry Log Analytics Managed Id Key Vault Application Insights CI/CD Monitor https://fed- app.*.japaneast.azurecontai nerapps.io 認 証 ・ 認 可 MVP 公式Web MVP datas 4 1 Container Apps(API) Container revision .NET 8 Blazor Web Appがフロ ントを担当 Container Apps +Dapr Cronで 定期収集 Controller-based Web API (.NET 8) で集計 エンドポイント提供 Azure Open AI 2 領域 サービス例 役割 定期取 得 Azure Functions / Container Apps データ取得 生デー タ保存 Azure Blob Storage Raw JSON Snapshot 構造化 データ Azure SQL Database / Cosmos DB 正規化済みデータ UI .NET 8 Blazor Web App ダッシュボード AI Azure OpenAI インサイト生成 監視 Application Insights + Key Vault 実行状況・秘密情 報管理 3 Azure OpenAI には生データを丸投げせず、 C# 側で集計済みの JSON を渡す Storage account Raw data
  11. 論理データモデル(概要) DO WHAT MATTERS 12 マスタテーブル 設計のポイント • Snapshots テーブルで日別・

    月別・年別の MVP 総数推移を 表現 • ON DELETE CASCADE でスナ ップショット単位の管理 • 推定属性は付与しない設計
  12. UI 構成:MudBlazor + ApexCharts DO WHAT MATTERS 13 領域 ライブラリ

    KPIカード MudBlazor チップ・フィルター MudBlazor テーブル MudTable / MudDataGrid レイアウト MudGrid / MudPaper ドーナツチャート Blazor-ApexCharts 横棒ランキング Blazor-ApexCharts エリアチャート Blazor-ApexCharts Copilot Agent の提案に注意 • GitHub Copilot Agent が提案するラ イブラリが、常に最適とは限らない • 古い Chart.js ラッパーを提案するケ ースあり • UI・チャートライブラリは人間側で 方針を決めてから実装を委任する 技術スタックは Spec Kit の clarify / plan フェーズで先に固定しておく
  13. Azure OpenAI によるインサイト生成 DO WHAT MATTERS 14 やりがちな実装 「このMVPデータからインサイトを作ってく ださい。」

    → 生データを丸投げ 今回の実装 総数・割合・順位・地域分類・Top10合計・ 未分類数を C# 側で計算 → Azure OpenAI には文章化を 依頼 Aggregation API Insight Input JSON Azure OpenAI Insight Result Dashboard LLM に計算させるのではなく、集計済みデータを説明させる
  14. Spec Kit とは何か DO WHAT MATTERS 15 AI に「いい感じに作って」と頼むのではなく、仕様・設計・タスクを 先に構造化してから実装させるための仕組み

    1 specify 何を作るか・なぜ作 るかを定義 → 2 clarify 曖昧な仕様を洗い出 す → 3 plan 技術スタックとアー キテクチャを固定 → 4 tasks 実装可能な単位に分 解 → 5 implement GitHub Copilot Agent に実装させる 特に clarify が重要: 公開データ利用・APIの位置づけ・推定属性の扱いなど、曖昧なまま実 装すると危ない点を先に洗い出せる 出典:https://github.com/github/spec-kit
  15. 今回の Spec Kit 活用ポイント DO WHAT MATTERS 16 1. specify

    「MVPの公開プロフィールを集計・可視化するダッシュボードを作る」 という目的を文書化 2. clarify データ取得方式・API利用可否・推定属性の扱い・更新頻度・エラー時 の挙動などを事前整理 3. plan .NET 8 Blazor / MudBlazor / Blazor-ApexCharts / Azure OpenAI の技術 スタックを確定 4. tasks データ取得・正規化・集計API・UI・AIインサイト生成を実装可能な単 位に分解 5. implement GitHub Copilot Agent に各タスクを委任し、人間はレビューと制約確認 に集中
  16. Copilot Agent に任せる前に決めること DO WHAT MATTERS 17 Copilot Agent は優秀な実装者だが、優秀なアーキテクトとは限らない

    • データ取得方式 • 利用条件への配慮 • UIライブラリ • チャートライブラリ • データモデル • 更新頻度 • LLMに渡すデータ粒度 • 推測を許す範囲 • エラー時の挙動 • 完了条件 だからこそ、Spec Kit で仕様・制約・タスクを先に渡す
  17. 工数比較:フルスクラッチ vs Spec Kit 活用 DO WHAT MATTERS 18 項目

    フルスクラッチ Spec Kit + Copilot Agent 要件整理 3〜5人日 1〜2人日 データモデル設計 3〜4人日 1〜2人日 データ取得・正規化 8〜12人日 5〜8人日 ダッシュボードUI 8〜12人日 4〜7人日 Azure OpenAI連携 3〜5人日 2〜3人日 テスト・調整 5〜8人日 3〜5人日 合計 30〜46人日 16〜27人日 • ※ 実績値ではなく、同等機能を 1 名で実装する場合の想定比較です • ※ Spec Kit でゼロになるのではなく、仕様化・タスク分解・手戻り削減に効きます
  18. まとめ DO WHAT MATTERS 19 1 公開データの価値 集計・分類・時系列化することで、検索では見えなかっ た新しいインサイトが得られる 2

    Azure OpenAI の使 い方 LLM に計算させるのではなく、集計済みデータを渡して 「説明」させると安定する 3 Spec Kit の効果 AIエージェントに実装を任せる前に、仕様・制約・タス クを明確化することで手戻りを削減できる AI に実装を任せる時代だからこそ、 人間が「何を作るか」「何を使うか」「何をしてはいけないか」を先に決める重要性が増している
  19. THANK YOU DO WHAT MATTERS Yutaka.Osada [email protected] https://github.com/yutaka-art 20 ▪合格対策Microsoft認定試験AZ-400

    書籍 発売中 ▪今後の登壇予定 7/14 GitHub Copilot User Group Japan - Agentic DevOps の実践 ワークフローマイグレーション 7/25 .NETラボ - 数値で見る Microsoft MVP-Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード