保守では毎日監視データが溜まりますが、そのままでは顧客に渡せません。AIに書かせるには「数字を作られる」不安があります。そこで「AIに数字を作らせない」を、方針ではなく仕組みと検証で担保しました。下書きはAI、確定は人です。
課題
スコアやミリ秒をそのまま並べても、サイトの持ち主には伝わりません。毎月書き起こすのは手間で、生成AIに任せると数値の正しさが担保できません。
やり方(かんたんに)
- 監視データをプログラムで集計する
- AIには集計値だけを渡し、文章にさせる
- 書かれた数値を機械で元データと突き合わせる
- 一致しなければ警告し、担当者が確認して確定
「AIに数字を作らせない」を、方針ではなく仕組みで担保しています。下書きはAI、確定は人です。
回数・最小・最大・平均などをプログラムで計算します。AIには元データを渡しません。
渡された値を、読みやすい日本語のレポートにします。専門用語もやさしく言い換えます。
文章中の数値を全部抜き出し、元の値と突き合わせます。一致しない数値は警告します(4本で138個中136個が一致)。
警告を見て担当者が確定します。顧客に出すのは、人の確認を経てからです。
検証は自社2サイトで実施し、顧客サイトのデータは使っていません。顧客への送付実績はまだありません。

結果
| 項目 | 実測値 |
|---|---|
| 本文中の数値が元データと一致した割合 | 138個中136個(98.6%) |
| 1本あたりの生成費用 | 3.78円 |
| 1本あたりの生成時間 | 約25秒 |
検証が、人では見つけられない誤りを捕まえた
…平均3712ミリ秒(最小3678ミリ秒、最大3779ミリ秒)と、いずれの回も3.6秒台後半〜3.7秒台にとどまっています
3678ミリ秒を「3.6秒台」と言い換えたものです。算数は合っていますが、元データに「3.6」という値は無く、これは明示的に禁じていた言い換えでした。数字が正しく見えるので人は素通りし、機械で突き合わせたから見つかりました。
この仕組みは、定期レポート・報告書・議事録など「数字が入る文章をAIに書かせたいが、間違いが許されない」場面に応用できます。ご相談はお問い合わせから。
技術構成
- Laravel 13 / Claude API(軽量モデル)
- 数字を作らせないため構造で分離:元データはAIに渡さず、集計済みの値だけを渡す
- 本文の数値を抽出し、渡した値と機械照合。不一致は警告して人へ
数字はプログラムが計算し、AIは文章化のみ。書かれた数値は機械で検算します。
Laravel 13 / Claude API。数字を「作らせない」ために構造で分離(元データ非提示+機械照合)。自社2サイトで検証、顧客データ不使用。

書かれた内容(都合の悪いことも書く)
- 特定商取引法に基づく表記が「未対応」
- Cookie 同意の表示が「未対応」
- ページタイトルの長さが不適切な状態が、21回の測定すべてで継続(toha.jp・2026年8月)
データが無い項目は埋めません。復旧訓練の記録が無い月は「実施記録がありません」と書き、申し送りを残します。
ここは測っていない
- 「レポート作成の工数が◯%減った」… 手動で書く時間を測っていません
- 顧客満足度 … 顧客に出していません(4本とも社内検証)
- 「保守先◯社に導入」… 自社2サイトのみ。顧客サイトのデータは不使用
- Sonagear 本体(ポータル)は未改修。レポート生成のみ。自動送信もしていません
Analyzegear