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