慣性聚合 関心のあるブログ、ニュース、テクノロジーを効率的に追跡
原文を読む 慣性聚合で開く

おすすめ購読元

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
誰も話さないshipping AIの機能の部分—そしてFirebaseが直したこと
Vishal Keert · 2026-05-24 · via DEV Community

初めてAIを搭載したアプリを開発するとき、開発者は特定の瞬間に直面します

楽しい部分ではありません。モデルが驚くべきことを行い、天才のように感じる部分ではありません。他の瞬間です。午前1時、クライアントコードを見つめているときに、あなたのGemini APIキーが平文で座っており、JavaScriptファイルにバンドルされようとしている瞬間。ブラウザと10分しか要らない誰でも開いて読めるのです。

Sambhavを構築している間にその瞬間が私に起こりました—SambhavはWhisperを通じてリアルタイム音声変換を行い、履歴書分析とGeminiを通じてパーソナライズされた指導を行うAIキャリアプラットフォームです。このアプリはNext.js 15のフロントエンドがFlaskのバックエンドと通信し、Supabaseが下にあり、多くの動く部分があり、それらはすべてLLMに何らかの点で触れる必要がありました。

私が最も誇りに思った機能:リアルタイムの模擬面接モードで、ユーザーが自然に話し、その回答を記録し、Geminiが即座に評価できる機能。それが完成度が高く、うまく動作していた。

その下のアーキテクチャは、問題を引き起こす可能性のある負債だった。


実際の問題

私が陥っていたパターンはこうだった:低レイテンシーの必要があるGeminiの呼び出しはクライアント側に行った。ライブトランスクリプションフィードバックのようなものは、サーバー側のラウンドトリップを追加すると体験が遅延して壊れてしまうから。しかしクライアントからGeminiを呼び出すと、APIキーはクライアントがアクセスできる場所に存在しなければならなかった。

開発者がここで通常選択する解決策は、それぞれ違う方法で悪い。

キーを環境変数に入れて、バンドラが漏れないことを願うこともできますが、それが漏れることがあり、監査が難しい方法で漏れます。すべてを自分のバックエンドを通じてプロキシすることもできます——それは機能しますが、今は2つのサービス間でセッション状態を維持しており、あなたのFlaskサーバーはただリクエストをフォワードし、遅延を追加するだけです。有効期間の短いトークンを使うこともできます——しかし、その場合、トークン生成とリフレッシュシステムを構築する必要があり、それはそれ自体のプロジェクトです。

根本的な問題は、これらがクォータ問題を解決しないことです。APIキーを隠しても、意欲的なユーザーは依然として転送中の有効な認証トークンをキャプチャして再放送できます。キーを盗むのではなく——ただ Billing クォータを枯渇させるだけです。個人プロジェクトやハッカソンデモの場合、それは煩わしいエッジケースです。実際のユーザーがいる本番環境の場合、それは本物の脅威です。

プロキシアプローチを実装することにしたのは、それが最も議論できる方法だからだったが、インタビューフィードバックループに有意義な遅延を加え、セッション管理を大幅に複雑にした。Flaskバックエンドは同時にWhisperセッション状態、Geminiコンテキスト、認証レイヤーを保持する必要があった。何か問題が発生した時——デモンストレーションでは問題はよく発生する——どのレイヤーが失敗したのかは決して明らかではなかった。


Firebase AI Logicが実際に変更するもの

Secure AI Architecture

Firebase AI Logicは新しいものではない—しかしGoogleがI/Oでリリースしたものは、6ヶ月前と比べて本質的に異なるツールにした、そして特定の2つの機能の組み合わせが上記の問題を正確に解決する。

最初のものであるのは テンプレートのみモード はここでのアーキテクチャはシンプルです:あなたの Gemini プロンプト — システムインストラクション、モデル設定、ツール定義 — は Firebase のサーバー上にありますが、あなたのクライアントコードにはありません。あなたのクライアントはテンプレートIDを参照します。それだけです。リクエストが入ってきたら、Firebase はサーバーサイドのテンプレートを実行します。もし誰かがクライアントリクエストを傍受してカスタムシステムプロンプトを注入しようとすると、フレームワークはそれを無視します。クライアントコードからプロンプト操作へのパスはありません。

サンバハブのインタビューモードのようなものでは、評価基準——ジェミニが候補者の回答を評価する方法を定義するプロンプト——は、それが属するサーバーに残り、フロントエンドにバンドルされることはなかった。クライアントはテキストを送信し、構造化されたレスポンスを返されるだけです。

二つ目はアプリチェックのリプレイ保護と一度きりトークンです。は、今月からFirebase AI LogicのApp Checkトークンは厳密に一度限り使用されます。一度使用されたトークンは無効になります。転送中に有効なトークンをキャプチャした攻撃者は、それを繰り返して追加のGeminiコールを行うことはできません。先に説明したクォータードレイン攻撃——技術的に見て、よく隠されたAPIキーでさえ可能な攻撃——は、インフラレベルで現在閉鎖されています。

レイテンシーのトレードオフは本物で、認識する価値があります:リクエストごとに新しいトークンを生成すると、ネットワークのラウンドトリップが追加されます。数秒ごとにジェミニコールを行うリアルタイムの音声認識機能では、そのコストが蓄積します。これをレイテンシーサensitiveなパスで有効にする前に、プロファイリングする価値があります.


混合推論の部分

Hybrid Inference Architecture

第三のアナウンスがありますが、これは実際にはアーキテクチャ上の決定なのに、パフォーマンス最適化に聞こえてしまうため、私は報告が不十分だと思います。

Firebaseは現在、iOS、Android(Gemma 4を使用)、そして—すぐにGAに昇格する—Web上のChromeでハイブリッド推論をサポートしています。モデルは可能な限りデバイス上でローカルに実行し、不可能な場合にはクラウドのGeminiにフォールバックします。

「速くて安い」という理由を超えて、耐久性が重要なのです。Sambhavはハッカソン環境向けに作られており、会議のWiFiで動作するように設計されていました。会議のWiFiは敵対的です。インタビューモードがセッション中に時折停止してしまい、その理由はGeminiコールがタイムアウトしたからでした。これは、製品をデモンストレーションしようとしている人がその時点で体験を打ち切る原因となりました。

ハイブリッド推論とは、パイプラインの軽量部分——テキスト認識のクリーンアップ、基本的なレスポンスのフォーマット、簡単な分類——がネットワークの状態に関わらずローカルで実行できることを意味します。重い推論はまだクラウドに行きます。ネットワークが存在しないときでもアプリは生き残ります。

この技術を実装する人々にとっての実用的な問題点は、デバイス上のGemma 4モデルからは完全なGemini品質は得られないということです。能力のギャップは本物で、ローカル経路が破損したものではなく、優雅に劣化した体験を生み出すように機能を設計する必要があります。これは単なる設定問題ではなく、設計上の問題です.


これは実際には意味します

Firebase AI Logic GAは見出しの発表ではありません。トレンドになることもありません。しかし、クライアントアプリケーションでAI機能をリリースしたか、リリースしようとしたか、そして「APIキーはどこにあり、どうやってクォータを保護するか」という壁にぶつかった開発者にとって、これはI/Oから実際に重要な発表です。

テンプレートのみモード、App Check 再プレイ保護、およびハイブリッド推論の組み合わせにより、Sambhavのために私は組み立てたセキュリティと回復性アーキテクチャー — プロキシサーバー、セッション状態管理、手動トークン処理 — は現在、Firebase SDKの一流の機能となっています。パイプラインを構築する必要はありません。設定するだけです。

生産に入る際に注意深く見守るべきこと:テンプレートのみモードとリプレイ保護は問題の異なる部分を解決し、異なる遅延プロファイルを持っています。デフォルトで両方をすべての場所で有効にしないでください。まず、遅延に敏感なパスをプロファイルし、往復コストがどこに落ち着くかを理解し、トレードオフが受け入れ可能な場所で意図的な決定を下すこと。

従来はバックエンドプロジェクトが必要だったセキュリティアーキテクチャは、今は3つのFirebase設定オプションに存在します。これは、実装可能なものに意味のあるシフトです。