ログを保存しないAIインシデント・コパイロットを構築しました

すべてのエンジニアがこれを行っています。

本番環境で何かが壊れる。ログを取得する。それをAIチャットに貼り付ける。助けを求める。AIが適切な回答をくれる。

多くの人はこれが普通だと思っています。しかし、そうではありません。これは重大なセキュリティリスクです。

本番ログには機密データが含まれています。顧客ID、認証エラー、スタックトレース、APIレスポンスなどが含まれます。時にはシークレットが含まれていることさえあります。

現在のデバッグ方法は、プライベートなデータをチャットボックスに貼り付けて、あとは祈るだけというものです。私は、データ漏洩のリスクなしにAIの助けを得られるようにしたいと考えました。

そこで、AIインシデント・コパイロットを構築しました。私は一つのルールに従いました。「データを保存しないとしても、アプリが有用でなければならない」というルールです。

このアプリはAIのウォー・ルーム(作戦会議室)として機能します。ログ、トレース、またはエラーを貼り付けると、以下のことをサポートします:

• 変更点の要約 • 失敗箇所の特定 • ノイズの多いログのグループ化 • スタックトレースの解説 • 緩和策の提案 • ポストモーテムのタイムライン作成

ほとんどの開発者は、次のような構成でアプリを構築します: Input → Backend → Database → LLM → Database → UI

これは危険な構築方法です。その結果、アプリがすべての本番環境での障害のアーカイブを保持することになります。侵害、バックアップ、管理者アクセスについて心配しなければならなくなります。

私が求めていたのはSaaSのダッシュボードではなく、プライベートなスクラッチパッドでした。

私のデザインルールは、「データを処理するが、収集はしない」です。

アーキテクチャは異なります:

  • チャット履歴はブラウザ内に留まります。
  • バックエンドはプロンプトを保存しません。
  • バックエンドはモデルの回答を保存しません。
  • すべてのリクエストは使い捨てです。

このプライバシーモデルに適合するため、Icelake AI APIを使用しました。サーバーは以下の3つのステップを実行します:

  1. 機密値を秘匿化(Redact)する。
  2. 最小限に絞ったプロンプトをAPIに送信する。
  3. リクエストを保存せずに回答を返す。

秘匿化は助けになりますが、魔法の盾ではありません。すべてを捉えられるわけではありません。真の勝利は、リクエスト終了後に保持するデータの量を減らすことにあります。

秘匿化は通信中のリスクを下げますが、ログを保存しないことは、リスクを永続的に下げます。

ほとんどのAIアプリは「何を収集できるか?」と問いかけます。 このアプリは「何を収集せずに済むか?」と問いかけます。

このアプローチは製品をより良くします。ユーザーは安心感を得られます。自分の思考が私のデータベースに蓄積されることがないため、実際のインシデント発生時にも安心して利用できるのです。

次世代のAIアプリは、単に「どれだけ賢いか」で競うべきではありません。「どれだけ自制できるか」で競うべきなのです。

自問してみてください: • 何を保存しないと決めていますか? • 自分自身でもアクセスできないようにしているものは何ですか? • セッションが終了したときに消えるものは何ですか?

AIツールは、すべてを記憶しないからこそ、有用であるべきなのです。

Source: https://dev.to/bart_holden_0d0cf2aaa0424/i-built-an-ai-incident-copilot-that-does-not-store-your-production-logs-3l0p

Optional learning community: https://t.me/GyaanSetuAi