ChatGPTはプログラミングを含んだ様々な質問に答えてくれる便利なツールです。
一方で、特別な設定をしなければ、ChatGPTに送信した内容は学習データとして利用されるため、情報漏洩のリスクを孕んだツールでもあります。
例えば、社外秘をChatGPTに入力してしまい、その内容をChatGPTに学習されてしまうと、他の人がChatGPTを利用した際に社外秘が生成されてしまうといったことが起こり得ます。
そのため、業務でChatGPTを使う時は「入力内容が社外秘であるか?」といったことを気にする必要があり、結構イライラします。
今回はこの「ChatGPTを介した情報漏洩リスク」を自動で防ぐツールとして「privacy gpt cli」を作成しました。
仕組み
以下の通り仕組みはかなりシンプルであり、標準入力を受け取った段階でブラックリストに含まれる社外秘を含んでいるかチェックして、社外秘を含んでいた場合はOpen AIのAPIに送信しないというものです。
- ターミナルから標準入力を受け取る
- 入力チェック
- ブラックリストに存在するワードが標準入力に含まれていた場合、Open AIのAPIに送信せずにブラックリストに含まれたワードが入力された旨をユーザに返す
- ブラックリストに存在するワードが含まれていない場合、Open AIのAPIにユーザの入力を送信する
- 1に戻る
使い方
使い方はシンプルで、ツールを起動後は質問文を入力してEnterを押し、最後にgoという送信キーワードを入力してEnterを押すだけです。
そうするとOpen AI APIへ質問が送信され、レスポンスが表示されます。
またブラックリストとして登録した「xxx corp」というワードを入力してみると、送信前にリジェクトされていることがわかります
展望
また今回のバージョンはあくまでプロトタイプ的な簡単なものなので、今後は以下の改善を加えて使いやすくしていきたいと思います。
- 事前設定するプロンプトをカスタマイズできるようにする
- gptのモデルを環境変数で指定できるようにする(現在はgpt3-turbo)
- レスポンスを非同期で受け取れるようにして、1文字ずつレスポンスを表示できるようにする
- 会話を保存できるようにする
以上
参考
- privacy-gpt-cli, https://github.com/YukihiroArakawa/privacy-gpt-cli
- open ai, api reference, https://platform.openai.com/docs/api-reference/introduction
- open-ai-java, https://github.com/TheoKanning/openai-java
- OpenAIとJavaでAIアシスタントを実装する, https://qiita.com/blue_islands/items/2522ba0bc1c2db450342
- JavaだってGPT-3.5を使ってChatGPTクローンが作れる, https://qiita.com/fsdg-yook/items/7b8e804e5e4bb31d5f5c