dataiku/kiji-proxy

Privacy proxy for your OpenAI requests

📦 プロジェクト概要

Kiji Privacy Proxy は、アプリケーション(またはブラウザ)と OpenAI、Anthropic、Gemini、Mistral などの AI サービス API の間に位置する、オープンソースのプライバシーファーストプロキシです。送信プロンプト内の個人識別情報(PII)を自動的に検出し、現実的なダミー値に置き換え、マスクされたリクエストを転送し、レスポンス内の元のデータを復元します。すべての検出は軽量な DistilBERT モデル(ONNX 最適化)でローカルに実行されるため、機密テキストがマシンから送信されることはありません。


🎯 主なユースケース

対象ユーザー 利点
AI 搭載アプリを開発する開発者 外部 LLM API にプロンプトを送信する際の顧客データの偶発的な漏洩を防ぎます。
データサイエンスチーム LLM に供給する前にログやトレーニングデータをクリーンアップし、GDPR、HIPAA、CCPA などのコンプライアンスを維持します。
サポートエンジニア 実際のユーザーのメールアドレス、電話番号、クレジットカード番号を公開せずに、ChatGPT をチケットトリアージに使用します。
セキュリティ/コンプライアンス担当者 26 種類の組み込み PII タイプをマスクし、カスタム正規表現ルールを追加できる、透明で監査可能なレイヤーを強制します。

🛠️ 主な機能(README の説明による)

機能 説明
自動 PII 検出 ML ベースの DistilBERT モデル(ONNX)が 26 のエンティティタイプ(メール、SSN、クレジットカード、電話、住所など)を認識します。
シームレスなマスキングと復元 検出された値は、プロキシからリクエストが送信される前にダミーデータに置き換えられます。元の値は LLM のレスポンスに再挿入されます。
ゼロコード統合 ローカル HTTP プロキシとして実行されます(デフォルト :8081)。macOS アプリは PAC ファイルを自動的にインストールし、ブラウザが手動設定なしで api.openai.com などをルーティングできるようにします。
ブラウザと Chrome 拡張機能 ChatGPT、Claude、Gemini などに対するインライン PII 検出。拡張機能はマスクされたエンティティをその場で表示します。
設定可能なマスキング UI または設定ファイルを介して、特定のエンティティタイプをオフにしたり、感度を調整したり、カスタム正規表現パターンを追加したりできます。
マッピングレビュー UI Electron デスクトップ UI がすべてのマスクされた値を一覧表示し、個別または一括でマッピングを削除できます。
高速ローカル推論 ONNX 最適化モデルにより、ほとんどのリクエストで 100 ミリ秒未満のレイテンシを実現します。
クロスプラットフォーム配布 macOS ネイティブアプリ(DMG、Homebrew Cask)と Linux サーバー(deb、tarball、systemd サービス)。
Docker と systemd サポート 本番環境への展開に対応。ログは構造化され、可観測性スタックに送信できます。
プライバシーファースト設計 すべての PII 処理はデバイス上で行われます。テレメトリはオプトインであり、生のプロンプトを含むことはありません。
拡張可能 モデルを微調整または置き換えることができます。トレーニングデータとモデルは HuggingFace で公開されています。

🚀 はじめに(クイックランサマリー)

  1. インストール macOS: brew install --cask dataiku/tap/kiji-privacy-proxy
    Linux: Releases ページから .deb または tarball をダウンロードし、kiji-proxy を実行します(または systemd ユニットを有効にします)。
  2. プロキシを実行 – macOS ではアプリが PAC ファイルを自動設定します。Linux では HTTP_PROXY/HTTPS_PROXY を http://127.0.0.1:8081 に設定します。
  3. リクエストを送信 – 例: プロンプトにメールアドレスを含めて curl https://api.openai.com/v1/chat/completions … を実行します。ログにメールがマスクされたことが表示され、レスポンスには元のメールが復元されて含まれます。
  4. マッピングを検査/編集 – Electron UI を開いて、どの値がマスクされたかを確認し、必要に応じて削除します。

🏗️ アーキテクチャ(高レベル)

アプリ/CLI  ──►  Kiji Privacy Proxy (HTTP/HTTPS)  ──►  LLM プロバイダー API
   │                │  PII を検出してマスク                │  (マスクされたデータのみ)
   │                │  リクエストを転送                  │
   │                │  レスポンスを受信                  │
   │                ◄─ 元の PII を復元 ──────────────────◄
   ▼                ▼
元の外観のデータを含む結果
  • プロキシは Go サーバー(kiji-proxy)を実行し、ONNX Runtime を介して ONNX モデルをロードします。復元に使用されるリクエストごとのマッピングテーブル(ダミー ↔ 実値)を維持します。
  • Electron フロントエンドはローカル API を介して同じマッピングテーブルを読み取り、レビュー、削除、設定のための UI を提供します。
  • オプションの Unix ソケットリスナー(PROXY_UNIX_SOCKET_PATH)を使用すると、TCP ポートの代わりにソケットの背後でプロキシを実行できます。

📚 ドキュメントと拡張性

  • 完全なドキュメント – docs/README.md には、インストール、開発、ビルド、リリース管理、高度なトピック、Chrome 拡張機能、カスタムモデルトレーニング、マスキングコントロール、コーディングエージェント統合に関するセクションがあります。
  • モデルとデータ – HuggingFace で公開されています(DataikuNLP/kiji-pii-model-onnx、kiji-pii-model、kiji-pii-training-data)。カスタム PII モデル ガイドに従って、モデルを微調整または置き換えることができます。
  • カスタム正規表現ルール – UI または設定ファイルを介してドメイン固有のパターンを追加します。
  • コーディングエージェント – プロキシを使用して Codex または Claude Code エージェントをルーティングし、生成された PII を含むコードも保護されるようにします。

🤝 貢献とコミュニティ

  • バグや機能アイデアについては Issue を開いてください。
  • Dataiku CLA(ボットガイド)に署名後、プルリクエストを受け付けます。
  • ドキュメントの改善、モデルトレーニングデータの貢献、新しいパートナー統合を歓迎します。
  • コミュニティチャネル: GitHub Discussions、Slack(招待リンク提供)、通常の GitHub stars/forks。

🔒 セキュリティとプライバシー

  • すべての PII 検出はローカルで実行されます。モデルへの外部呼び出しはありません。
  • ダミー↔実値マッピングのオプションの暗号化ストレージ。
  • セキュリティ開示は opensource@dataiku.com に非公開で送信してください。

📦 リリースとライセンス

  • 最新リリース – macOS DMG(約 400 MB)、Linux tarball(約 150 MB)、Debian/Ubuntu .deb。
  • CI/CD – GitHub Actions がプッシュ/タグごとにビルドとテストを実行します。
  • ライセンス – Apache 2.0(寛容、商用利用可能)。

TL;DR

Kiji Privacy Proxy は、開発者が外部 LLM API を安全に使用し、メールアドレス、電話番号、クレジットカード番号、その他の PII の偶発的な露出のリスクを回避できる、本格的で本番環境に対応したツールです。ローカルで ONNX アクセラレーションされたトランスフォーマーモデルを実行してデータをリアルタイムにマスクし、レビュー用の UI を提供し、レスポンス内の元のコンテンツを復元します。これらすべてを、呼び出しアプリケーションのコード変更なしで実現します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch