Share
Embed
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 に確認した結果を踏まえ、「技術的に取れること」と「使ってよいこと」を分けて考える重要性についても触れます。
yutakaosada
June 26, 2026
Transcript
19 slides
-
2026.06.26 Yutaka.Osada 生成AIで「見える化」する Microsoft MVP Spec Kit と GitHub Copilot
Agent で作る データ可視化ダッシュボード 公開データの取得・可視化・インサイト生成を、仕様駆動で実装する -
Agenda DO WHAT MATTERS 2 ダッシュボー ド紹介 MVP データを「検 索」ではなく「分析
」するダッシュボー ドの全体像 アーキテクチ ャ全体像 データ取得から可視 化、Azure OpenAI によるインサイト生 成まで Spec Kit 活用 の流れ 仕様駆動で AI エー ジェント実装を進め るプロセスの紹介 公開データ利 用の考え方 技術的に取れること と、使ってよいこと は別 -
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 -
ダ ッ シ ュ ボ ー ド DO WHAT MATTERS
4 https://mvp.ante-mode.online/ -
なぜ「数値で見る Microsoft MVP」なのか DO WHAT MATTERS 5 現状の公開ページ • 個人プロフィールの検索・閲覧に最
適化 • 全体傾向を把握するには見えづらい 部分がある • 集計・比較・時系列分析が難しい 見えていない問いかけ • 地域別の分布はどうなっているか • Award Category ごとの人数差は • Technology Area に偏りはあるか • 国別・時系列でどう変化しているか 公開情報を「探す」ページから、公開情報を「読む」ダッシュボードへ 公開されている Microsoft MVP プロフィール情報に基づき、国別・地域別・カテゴリ別などの集計 インサイトを生成 公開情報:https://mvp.microsoft.com/ja-JP/search?target=Profile&program=MVP -
一般公開ページとの差別化 DO WHAT MATTERS 6 観点 一般公開ページ 今回のダッシュボード 主目的 MVP個人の検索・閲覧
全体傾向の分析 表示単位 個人プロフィール中心 国・地域・カテゴリ・技術領域・会社 分析 検索結果から人が読み取る 集計・比較・ドリルダウン 時系列 見えづらい 日別・月別・年別の総数推移 フィルター 検索条件中心 地域・カテゴリ・会社・技術領域など インサイト 人が解釈 Azure OpenAI で文章化 公式ページを置き換えるものではなく、公開情報を集計・分析するための別視点のダッシュボードです -
ダッシュボードの機能 DO WHAT MATTERS 7 MVP総数の表 示 地域別・国別 分布 Award
Category別分 布 Technology Area別分布 会社別分類 日別・月別・ 年別推移 ドリルダウン ・フィルター Azure OpenAI インサイト生 成 性別など公開プロフィール上で明示されていない属性については、推定による分類は行わない方針です。 -
データ取得方式と利用条件への配慮 DO WHAT MATTERS 8 1 HTML クローリング検討 アクセス負荷・保守性・ 利用条件の懸念
→ 2 API 候補を発見 → 事前確認を実施 MVP Program Support へ問い合わせ → 3 回答を受けて 方針を確定 集計インサイト中心の アプローチを継続 ✓ MVP Program Support からの回答(確認済み) 使用・表現NG • 当該 API は非ドキュメント・非サポート → 直接利用は非推奨 • 「公式 API」という表現は不可 推奨アプローチ • 現時点で公式な公開 API は存在しない • 推奨表現:「公開されている Microsoft MVP プロフィール情報に基づく」 • 集計インサイト中心のアプローチはベスト プラクティスに沿っている 事前に確認したことで、方針の正しさが裏付けられた -
公開データ利用時のガードレール DO WHAT MATTERS 9 • 公開プロフィール情報のみを対象に する • 認証回避や非公開情報の取得は行わ
ない • 低頻度・キャッシュ前提で取得する • 過度な並列アクセスを行わない • 429 / 403 / 5xx では停止またはバッ クオフする • 個人プロフィール全文の再配布は行 わない • 集計値・インサイト中心に表示する • 推定属性の付与は行わない • 表現は「公開されている Microsoft MVPプロフィール情報に基づく」と する これらの方針は MVP Program Support により「ベストプラクティスに完全に沿っている」 と確認済み 技術的に取れることと、使ってよいことは別。確認が信頼をつくる。 -
アーキテクチャ全体像 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 -
論理データモデル(概要) DO WHAT MATTERS 12 マスタテーブル 設計のポイント • Snapshots テーブルで日別・
月別・年別の MVP 総数推移を 表現 • ON DELETE CASCADE でスナ ップショット単位の管理 • 推定属性は付与しない設計 -
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 フェーズで先に固定しておく -
Azure OpenAI によるインサイト生成 DO WHAT MATTERS 14 やりがちな実装 「このMVPデータからインサイトを作ってく ださい。」
→ 生データを丸投げ 今回の実装 総数・割合・順位・地域分類・Top10合計・ 未分類数を C# 側で計算 → Azure OpenAI には文章化を 依頼 Aggregation API Insight Input JSON Azure OpenAI Insight Result Dashboard LLM に計算させるのではなく、集計済みデータを説明させる -
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 -
今回の 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 に各タスクを委任し、人間はレビューと制約確認 に集中 -
Copilot Agent に任せる前に決めること DO WHAT MATTERS 17 Copilot Agent は優秀な実装者だが、優秀なアーキテクトとは限らない
• データ取得方式 • 利用条件への配慮 • UIライブラリ • チャートライブラリ • データモデル • 更新頻度 • LLMに渡すデータ粒度 • 推測を許す範囲 • エラー時の挙動 • 完了条件 だからこそ、Spec Kit で仕様・制約・タスクを先に渡す -
工数比較:フルスクラッチ 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 でゼロになるのではなく、仕様化・タスク分解・手戻り削減に効きます -
まとめ DO WHAT MATTERS 19 1 公開データの価値 集計・分類・時系列化することで、検索では見えなかっ た新しいインサイトが得られる 2
Azure OpenAI の使 い方 LLM に計算させるのではなく、集計済みデータを渡して 「説明」させると安定する 3 Spec Kit の効果 AIエージェントに実装を任せる前に、仕様・制約・タス クを明確化することで手戻りを削減できる AI に実装を任せる時代だからこそ、 人間が「何を作るか」「何を使うか」「何をしてはいけないか」を先に決める重要性が増している -
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 で作るデータ可視化ダッシュボード