// CASE STUDY — 05

経営ダッシュボードと、使うほど育つAI分析
— Snowflake × AWS でつなぐ

複数の事業と多くの拠点を持つ企業の、月次の実績と予算を1つの画面に集めました。Snowflake の数字を AWS 上で毎朝つくり直して配り、文章でも声でも、聞けば Amazon Bedrock がSQLを組み立てて答えます。声で聞いたときは、答えを読み上げます。役に立った回答は管理者が確かめてから教師データに加え、翌朝からAIの手本になります。

SnowflakeAWS LambdaAmazon BedrockRAG音声入力経営ダッシュボード
経営ダッシュボードの概要画面のデモ。営業収益と営業利益の見出し、月次の実績と予算、事業別の予算差、拠点別ランキング、営業収益から営業利益までのウォーターフォール
概要 — 実績と予算、事業別の予算差、拠点別の順位、営業収益から営業利益までの内訳を1枚に(紹介用のデモ画面・数値は架空) / 横にスワイプできます

社名・業種・事業名は伏せています。このページの画面は、実際の機能をもとに紹介用に作り直したデモで、見た目は納品した画面と異なります。数値・事業名・拠点名はすべて架空です。

/ 01

やったこと

「見えるようにする」より先に、数字の読み方を決めることに時間を使いました。定義が揺れている画面は、どれだけきれいでも会議では使われません。

  1. 数字の定義を、先に確定した。会計の科目マスタと組織マスタをたどり、「この事業のこの利益は、どの科目をどう足したものか」を1つずつ決めました。決められないものは埋めずに、決まっていないことが画面に出るようにしています。
  2. 見方を1つの画面に集めた。全体、予実対比とPL明細、事業別、拠点別、AI分析。年度・事業・拠点の絞り込みはすべてのタブで連動し、実績/予算/前年の比較基準も1か所で切り替えます。
  3. Snowflake と AWS をつないだ。Snowflake の数字を AWS Lambda が毎朝読み取って集計し、S3 と CloudFront で配ります。画面を開くたびにデータベースへ問い合わせないので、待たされません。ログインは Cognito で、管理画面は管理者にだけ出ます。
  4. 文章のまま聞けるようにした。質問は ECS Fargate のAPIが受け、Amazon Bedrock がSQLを組み立てて Snowflake に照会し、表やグラフで返します。組み立ての手本は Bedrock のナレッジベースから探します。
  5. 声でも聞けるようにした。マイクを押して話すと、Amazon Transcribe が話しながら文字に起こし、文章のときと同じ定義でSQLを組み立てて照会します。答えは表・グラフに加えて、Amazon Polly が読み上げます(04 で詳しく)。
  6. 使うほど育つようにした。役に立った回答に 👍 を押し、管理者が確かめて採用すると、翌朝からAIの手本になります(03 で詳しく)。
  7. 毎朝つくり直し、止まったら気づける。データは毎朝自動で作り直します。別の経路でも同じものを作って突き合わせ、食い違えば通知が飛びます。元は人が入力する会計の数字なので、「止まっている」と「動いていないだけ」を分けて見ています。
/ 02

アーキテクチャ — Snowflake × AWS

経路は2つです。ひとつは、Snowflake の数字を毎朝つくり直して配る経路。もうひとつは、その場で聞く経路で、入口は文章と声の2つです。どちらも Snowflake の同じ定義(セマンティックビュー)を見ているので、画面とAIの答えが食い違いません。

// ARCHITECTURE — Snowflake × AWS Snowflake AWS 公開View 会計・予算の実績 セマンティックビュー 集計の決まりを定義 画面もAIも 同じ定義を見る 毎朝つくり直して配る経路 その場で 聞く経路 EventBridge 毎朝 起動 Lambda 読み取って集計 S3 画面用のデータ CloudFront 配信 と /api Cognito ログイン ECS Fargate 質問を受けるAPI Amazon Bedrock 質問 → SQL ナレッジベース Bedrock・手本を検索 DynamoDB 利用ログ・👍・採用 BROWSER 利用者 経営・現場 管理者 毎朝 読み取り 配信 質問 /api SQLで照会 手本 記録 上は毎朝つくり直す実績、下はその場で聞く分析(文字でも声でも)。どれも Snowflake の同じ定義を見ている。 声で 聞く経路 Lambda 声の窓口 Amazon Bedrock SQL → 回答文 Amazon Polly 回答を読み上げ Transcribe 話しながら文字に マイク 質問 声 SQLで照会 回答・グラフ・読み上げ
緑=毎朝の配信 赤=文字で聞く 紫=声で聞く 黄=教師データ / 横にスワイプできます
/ 03

AI分析の教師データのつくり方

文章で聞くAIは、入れた日のままでは、その会社の言葉づかいや集計の癖を知りません。そこで、使う人が「役に立った」と押した回答を、管理者が確かめてから手本に加える流れを作りました。手本は毎朝ナレッジベースに取り込まれ、似た質問が来たときに Bedrock が参照します。

// TEACHING DATA — 👍 が翌朝の手本になるまで 01 利用者 質問する 文章で聞くと、グラフ・ 表とSQLが返る ECS Fargate / Bedrock 02 利用者 👍 を押す 質問とSQLを記録し、 そのときの結果も控える DynamoDB / S3 03 管理者 確かめる 管理画面で結果とSQL を見て、集計を確かめる Cognito(管理者だけ) 04 管理者 採用する 「教師データに採用」を 押す DynamoDB 05 自動 翌朝から手本に 毎朝、採用分を書き出し、 ナレッジベースへ取り込む Lambda / S3 / ナレッジベース 次に似た質問が来たら、Bedrock がナレッジベースから手本を探して SQL を組み立てる
青=利用者 茶=管理者 緑=自動 / 横にスワイプできます

👍 だけでは手本にしない

押されただけで手本にすると、もっともらしくても集計を間違えた回答が混ざります。誤った手本はAIの精度を下げるので、採用は管理者だけができるようにし、SQLと数字を見てから決めます。

採用するもの・しないもの

採用するのは、集計が正しく、よく聞かれそうな質問(事業別の営業利益率、拠点別の売上上位、月別の推移など)。迷ったら、SQLの結果をダッシュボードの数字と突き合わせてから決めます。

押したときの結果も残す

👍 の記録だけでは、あとから正しかったか判断できません。押した瞬間のグラフ・表の結果を控えとして S3 に残し、管理画面の「結果を見る」で確かめられるようにしました。

集計の決まりは Snowflake に1か所

どの表をどう結び、どの科目を足して「営業利益」と呼ぶか。この決まりを Snowflake のセマンティックビューに置き、画面とAIが同じ定義を見ています。定義が変わったときは、毎朝の確認で気づいて画面を合わせます。

AI分析画面のデモ。マイクつきの入力欄があり、営業利益の予算差から事業、拠点へと続けて質問して掘り下げた4つの回答が並ぶ。回答ごとに役に立ったボタン
① ② AI分析 — 声でも文字でも聞ける。「その事業は?」「その拠点は?」と続けて聞き、掘り下げられる。役に立ったら 👍(デモ画面・数値は架空)
管理画面の教師データ一覧のデモ。👍が付いた回答の一覧と、選んだ回答のSQL、押したときの結果、採用ボタン
③ ④ 管理 › 教師データ — SQLと押したときの結果を見て、採用する(デモ画面) / 横にスワイプできます
/ 04

声で聞く — 話すと、答えが返って読み上げられる

会議の途中や移動中は、キーボードで質問を打つより話すほうが早い。マイクを押して話しかけると、話している途中から文字が入力欄に出て、黙ると送られ、数秒で表・グラフと読み上げの声が返ります。下の動画は、架空のデータで同じ仕組みを動かし、実際に声で質問したものです。

声で聞くデモ — マイクで質問すると、AIがSQLで調べて答え、読み上げる(デモ環境・数値は架空)

話しながら文字にする

声は Amazon Transcribe にそのまま流し、話している途中から入力欄に文字を出します。聞き違いがあれば、その場で気づいて言い直せます。

黙れば送る

話し終えたらボタンを押し直さなくても、1.2秒黙れば自動で送ります。長い質問でも最大60秒まで聞き取ります。

数字は、AIに計算させない

金額は「12億3,400万円」のような読みやすい形にプログラムで直してから、AIに渡します。AIには桁の換算も足し算もさせないので、読み上げる数字が画面の数字と食い違いません。

続けて聞けて、待たせない

直前の4つの発言を踏まえて答えるので、「事業別だと?」と続けて聞けます。SQLを組む指示は使い回しの効く形で送り、読み上げる回答文は軽いモデルで3文以内にして、待ち時間を縮めました。

Contact

データ活用の伴走支援、
始めませんか。

BI導入・データ基盤構築・AI活用の定着まで。まずはお気軽にご相談ください。

お問い合わせ→
記事URLをコピーしました