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

AI驚き屋発見器

 AI驚き屋発見器

Avatar for Yuuki Yamashita

Yuuki Yamashita

July 27, 2026

More Decks by Yuuki Yamashita

Other Decks in Technology

Transcript

  1. > DETECTING̲HYPE... AI 驚き屋発見器 AI 投稿の「驚き屋度」を判定するウェブアプリ 山下 祐樹 # ちゃんこね

    フルスタックエンジニアを目指す会 | 2026-07-27 Next.js Strands Agent Bedrock AgentCore
  2. > AGENDA 今日話すこと 01 課題提起 02 アプリ紹介 03 技術構成 04

    ハマりポイント 05 まとめ SNS に溢れる「AI 驚き屋」とは? 「AI 驚き屋発見器」のコンセプトと UI 判定ロジック・アーキテクチャ 実装で詰まった 2 つの壁 得られた学びと今後 > 5 topics loaded. starting session... // PROBLEM // APP // TECH // DEBUG // SUMMARY
  3. > 課題提起 SNS に溢れる「AI 驚き屋」とは? AI 驚き屋(Hype Peddler)とは SNS で根拠なく誇張・扇動的な

    AI 投稿を繰り返すアカウント・投稿のこと。驚かせることが目的で、 情報の正確さは二の次。 よくある煽り文句パターン // 終末系 「〇〇の仕事はもう終わった」 // 誇大系 「人類史上最大の革命」 // 根拠なし系 「ソースなし・数字なし」 「エンジニアは不要になる」 「前代未聞の性能を達成」 「〇〇倍速い(比較対象不明)」 「人間の出番はなくなる」 「ゲームチェンジャー登場」 「専門家も驚愕(誰?)」 職種・言語・フレームワーク何でも 「終わった」宣言 根拠は示されない スケールを最大化して注目を集める 比較対象も根拠も存在しない 権威を借りた主張だが出典が存在し ない 「専門家によると」も同様
  4. よくある「AI 驚き屋」パターン // 終焉系 // 人類史上系 // 人間不要系 職種・言語・フレームワーク何でも 「終わった」宣言

    根拠は示されない スケールを最大化して注目を集める 比較対象も根拠も存在しない 不安を煽って拡散を狙う定番フレー ズ 具体的な根拠は一切ない // 数字誇張系 // 緊急煽り系 「今すぐ学ばないと乗り遅れる」 // ソースなし系 「研究で証明された(ソースなし)」 根拠のない大きな数字で信頼感を演 出 ソースへのリンクは存在しない FOMO(取り残される恐怖)を利 用した典型パターン 何に乗り遅れるかは曖昧 権威を借りた主張だが出典が存在し ない 「専門家によると」も同様 「〇〇エンジニアはもう終わった」 「生産性が 1000 倍になった」 「人類史上最大の革命が始まった」 「もう人間のエンジニアは不要」
  5. なぜ困るのか AI 驚き屋が引き起こす 3 つの実害 情報の信頼性が下がる 初心者が誤った判断をする 重要ニュースが埋もれる 誇張・嘘が混じると 本当の情報まで

    疑わしく見えてしまう 「もう人間は不要」 「〇〇が終わった」を 真に受けてしまう ノイズが多すぎると 本物のシグナルが 見えなくなる 「またどうせ大げさだろう」 という不信感が積み重なり 正確な発信者まで 信頼を失う 過剰な不安・過剰な期待が 間違った技術選択や キャリア判断につながる 本当に価値ある AI 研究・発表が 煽り投稿の陰に 隠れてしまう
  6. > 作ったもの AI 驚き屋発見器 AI 投稿を貼るだけで「驚き屋度」を判定する Web アプリ 01// INPUT

    02// ANALYZE 03// OUTPUT URLを貼るだけ AIが自動判定 驚き屋度を表示 投稿 URL かテキストをペーストして送 信 Strands Agent が 2 つのツールで分析 0 〜 100% のスコアと判定理由を返す https://x.com/... scan_hype_phrases URL 対応 87% check_evidence_density 判定する テキスト対応 煽り文句パターン検出 + 根拠密度チェ ック > 日英切り替え対応 // シンプルな UI // 驚き屋 根拠なし・煽り文句多数を検出 Vercel でホスティング
  7. > 使い方 貼るだけ。それだけ。 ai-hype-detector.vercel.app AI 驚き屋発見器 STEP 1 JA /

    EN 投稿 URL またはテキストを貼り付ける https://x.com/example/status/... 「ChatGPT が人類史上最大の革命を起こした!! もう人間のエンジニアは不要になる」 STEP 2 ボタンを押すだけ 判定する → JA EN URL でもテキストでも OK // 日英切り替え対応 ai-hype-detector.vercel.app 判定結果 驚き屋度スコア 87 / 100 驚き屋 判定理由 煽り文句を 3 件検出(「人類史上最大」「不要になる」等 ) ソース・数値・ベンチマーク等の根拠が見当たらない モデル名・論文への言及なし(信頼性スコア低) > 操作はたった 2 ステップ ̶ 貼る → 判定する
  8. > デモ画面 判定結果の見え方 ai-hype-detector.vercel.app AI 驚き屋発見器 JA / EN 投稿テキストを貼り付けてください

    【速報】ついに AI が人間の知性を完全に超えた !! これはもう人類史上最大の革命。 エンジニアの仕事はもう不要になる。 今すぐ転職しないと手遅れになるぞ! #AI # 革命 # エンジニア終了 判定する → 78 驚き屋度スコア 驚き屋 / 100 0 ̶ 健全 ← 驚き屋 → 判定根拠 scan̲hype̲phrases ̶ 煽り文句検出 検出フレーズ:「革命」「人類史上」「もう不要」 マッチ数: 3 / 3 → スコア +45 check̲evidence̲density ̶ 根拠密度チェック URL : 0 件 / 数値: 0 件 / モデル名: 0 件 根拠なし → スコア +33 100
  9. 判定ロジック① scan̲hype̲phrases 煽り文句のパターンマッチ 煽り系キーワードの出現数をカウント。 ヒット数が多いほど「驚き屋度」スコアが上昇。 > 仕組み 1 投稿テキストを受け取る 2

    キーワードリストと照合(正規表現) 3 ヒット数 → スコアに加算 4 マッチしたフレーズを返す(説明用) Python def scan̲hype̲phrases(text: str) -> dict: keywords = ["革命" , "終わった" , "人類史上" , "もう不要" , "前代未聞" , "衝撃" ] hits = [k for k in keywords if k in text] return {"score" : len(hits), "matched" : hits} STEP 1 / 2 > 検出キーワード例 「革命」 「〇〇が終わった」 「人類史上最大」 「もう人間は不要」 「前代未聞」 「衝撃」「ヤバい」 技術的変化を 過剰に誇張する定番ワー ド スケールを極端に 誇張するパターン 根拠なく 歴史的意義を主張 職業・業界の終焉を 煽る表現 不安を煽る 代表的フレーズ 感情的な反応を 誘発するワード > score̲threshold キーワード 3+ ヒット → 高驚き屋度 / 0 ヒット → 正常
  10. 判定ロジック② check̲evidence̲density 根拠の密度チェック URL ・数値・モデル名・ベンチマーク言及の有無を確認。 根拠が薄いほど「驚き屋度」スコアが上昇する。 > チェック項目 URL リンクの有無(ソース確認)

    数値・パーセンテージの言及 モデル名・バージョンの明記 ベンチマーク・論文への言及 STEP 2 / 2 > スコアリング例 根拠なし投稿の例 高スコ ア 「AI がついに人間を超えた!もう勉強は不要!すごす ぎてヤバい!!」 → URL なし・数値なし・モデル名なし → score: 3 根拠あり投稿の例 低スコ ア 「Claude 3.5 Sonnet が MMLU で 92.0% 達成。 論文 : https://arxiv.org/... 前モデル比 +8pt」 → URL あり・数値あり・モデル名あり → score: 0 Python def check̲evidence̲density(text): has̲url = bool(re.search(r 'https?://' , text)) has̲number = bool(re.search(r '¥d+[% 倍 x]' , text)) has̲model = any(m in text for m in MODELS) return {"score" : sum([not has̲url, not has̲number, not has̲model])} > スコア計算ロジック scan̲hype̲phrases のヒット数 + check̲evidence̲density のスコア = 総合「驚き屋度」スコア
  11. 全体アーキテクチャ > SYSTEM̲ARCHITECTURE // pipeline flow > INPUT > FRONTEND

    ユーザー Next.js X 投稿のテキストを 貼り付ける Vercel フロントエンド Vercel にデプロイ HTTP リクエスト > AGENT > LLM Strands Agent AgentCore Runtime Python SDK scan̲hype̲phrases check̲evidence̲density ツール呼び出し Amazon Bedrock LLM 推論 LLM 推論 マネージド実行環境 判定結果は AgentCore → Strands Agent → Next.js → ユーザー へ返却
  12. > TROUBLE̲01 日英 UI 切り替えと LLM 出力言語の一致問題 // 起きたこと //

    解決策 プロンプトに言語を明示する UI を英語に切り替えても LLM が日本語で返してくる # システムプロンプトに追加 "Respond in the same language as the user 's UI setting. Current language: {ui̲lang} " // 原因 // 学び LLM は UI の言語設定を知らない → プロンプトに言語指定がなければ 自由に選ぶ LLM への指示は「明示的に」が鉄則 暗黙の前提は通じない > プロンプトエンジニアリングの基本: LLM に「察してもらう」は禁物
  13. > ハマりポイント ② Vercel から AgentCore Runtime への接続 ⚠ 起きたこと

    ✓ 解決策 ① CORS エラー ① Vercel API Route をプロキシとして挟む ② 認証エラー(403) ② IAM ロール + Vercel 環境変数を正しく設定 ③ エンドポイント URL 設定ミス ③ リージョン・ Runtime ID を正確に指定 ブラウザから AgentCore Runtime への API コールが CORS でブロックされる IAM ロールの権限不足で AgentCore Runtime へのリクエストがすべてはじかれる リージョン・ Runtime ID の指定が間違っていて リクエストが届かない ブラウザ → Vercel API Route(サーバーサイド)→ AgentCore Runtime サーバー間通信にすることで CORS を回避 bedrock:InvokeModel 権限を付与した IAM ロール を作成 AWS̲ACCESS̲KEY̲ID / SECRET を Vercel に登 録 AgentCore Runtime のエンドポイント URL は リージョン + Runtime ID で構成。 SDK のドキュメン トを確認
  14. > SUMMARY// 得られた学び 1 Strands Agent × AgentCore Runtime エージェントロジックを

    Python で記述し、 LLM 推 論は AWS に委譲 この分離がシンプルかつ強力。 フレームワーク非依存で既存ツ ールにそのまま組み込める 2 ツール設計が 品質を決める scan̲hype̲phrases と check̲evidence̲density の 2 ツール ツールの粒度と責務の明確さが 、そのままエージェントの判断 精度に直結する 3 「作って試す」が 最速の学習 ドキュメントより、動かしてハ マって直す CORS エラーも言語ミスマッ チも、実際に動かさないと出会 えない問題。それが一番速い