GPT-4 または Code Llama / Llama 2 を利用した機密データ用の AI コード インタープリター。
Incognito Pilot は、 Large Language Model (LLM) と Python インタープリターを組み合わせているため、コードを実行し、タスクを実行できます。これはChatGPT コード インタープリターに似ていますが、インタープリターはローカルで実行され、 Code Llama / Llama 2のようなオープンソース モデルを使用できます。
シークレット パイロットを使用すると、機密データをクラウドにアップロードせずに操作できます。ローカル LLM (Llama 2 など) または API (GPT-4 など) を使用します。後者の場合、UI には承認メカニズムがあり、ローカル データをリモート サービスから分離します。
シークレット パイロットを使用すると、次のことが可能になります。
などなど!
ビデオでは、GPT-4 を使用したシークレット パイロットが示されています。会話と承認されたコードの結果が OpenAI の API に送信される間、データはマシン上にローカルに保存されます。インタプリタもローカルで実行されており、そこでデータを処理します。さらに、Code Llama / Llama 2 を使用して、マシン上ですべてを実行することもできます。
このセクションでは、OpenAI の API 経由で GPT モデルを使用してIncognito Pilot をインストールする方法を示します。のために
次の手順に従います。
docker run -i -t
-p 3030:80
-e OPENAI_API_KEY= " sk-your-api-key "
-e ALLOWED_HOSTS= " localhost:3030 "
-v /home/user/ipilot:/mnt/data
silvanmelchior/incognito-pilot:latest-slim
コンソールに URL が表示されるはずです。それを開くと、シークレット パイロットインターフェイスが表示されるはずです。
クレジット カードを追加せずに、OpenAI の無料トライアル クレジットを使用してIncognito Pilot を実行することもできます。ただし、現時点では GPT-4 は含まれていないため、モデルを GPT-3.5 に変更する方法は以下を参照してください。
シークレット パイロットインターフェイスには、モデルと対話できるチャット インターフェイスが表示されます。試してみましょう!
これで、自分のタスクにシークレット パイロットを使用する準備が整いました。覚えておいてください:
もう 1 つ: 先ほど使用したバージョンには、Python インタープリターに同梱されているパッケージがほとんどありません。つまり、画像や Excel ファイルの読み取りなどが機能しなくなります。これを変更するには、コンソールに戻り、Ctrl-C を押してコンテナを停止します。ここでコマンドを再実行しますが、イメージから-slim
サフィックスを削除します。これにより、多くのパッケージを備えた、より大きなバージョンがダウンロードされます。
デフォルトのモデル (GPT-4) 以外のモデルを使用するには、環境変数LLM
設定します。 OpenAI の GPT モデルにはプレフィックスgpt:
が付いているため、たとえば GPT-3.5 (元の ChatGPT) を使用するには、次のコードを docker run コマンドに追加します。
-e LLM= " gpt-openai:gpt-3.5-turbo "
GPT-4 は GPT-3.5 よりもインタープリターのセットアップが大幅に優れていることに注意してください。
3030 とは異なるポートで UI を提供するには、内部ポート 80 を別のポート、たとえば 8080 に公開できます。この場合、許可されるホスト変数も変更する必要があります。
docker run -i -t
-p 8080:80
-e ALLOWED_HOSTS= " localhost:8080 "
...
silvanmelchior/incognito-pilot
デフォルトでは、開く URL の一部である認証トークンが起動時にランダムに生成されます。つまり、コンテナを再起動するたびに、URL を再コピーする必要があります。これを防止したい場合は、docker run コマンドに以下を追加することで、トークンを特定の値に修正することもできます。
-e AUTH_TOKEN= " some-secret-token "
新しいトークンを使用して URL を開くと、ブラウザーはそれを記憶します。したがって、今後は、URL にトークンを追加しなくても、http://localhost:3030 を開くだけでシークレット パイロットにアクセスできるようになります。
デフォルトでは、Python インタープリターは 30 秒後に停止します。これを変更するには、環境変数INTERPRETER_TIMEOUT
を設定します。たとえば 2 分間の場合は、docker run コマンドに次の行を追加します。
-e INTERPRETER_TIMEOUT= " 120 "
起動時に docker / を使用してシークレット パイロットを自動的に起動するには、run コマンドから-i -t
削除し、次の行を追加します。
--restart always
UI URL のブックマークと組み合わせれば、必要なときにいつでもIncognito Pilot を利用できるようになります。あるいは、docker-compose を使用することもできます。
フル (スリムではない) バージョンのプリインストールされたパッケージに満足できませんか?インタープリターにさらに Python (または Debian) パッケージを追加したいですか?
Incognito Pilotを使用すると、独自の依存関係を簡単にコンテナ化できます。これを行うには、次のような Dockerfile を作成します。
FROM silvanmelchior/incognito-pilot:latest-slim
SHELL [ "/bin/bash" , "-c" ]
# uncomment the following line, if you want to install more packages
# RUN apt update && apt install -y some-package
WORKDIR /opt/app
COPY requirements.txt .
RUN source venv_interpreter/bin/activate &&
pip3 install -r requirements.txt
依存関係をrequirements.txtファイルに入れて、次のコマンドを実行します。
docker build --tag incognito-pilot-custom .
次に、次のようにコンテナを実行します。
docker run -i -t
...
incognito-pilot-custom
いいえ、限界があります。この場合、プライバシーと機能の間のトレードオフは簡単ではありません。画像などの場合、編集するために画像の内容を知る必要がないため、ChatGPT コード インタプリタと同じくらい強力です。しかし、スプレッドシートなどの場合、ChatGPT がコンテンツを認識できない場合、たとえばヘッダーからデータ形式を推測する必要があり、これが失敗する可能性があります。
ただし、特定の側面では、ChatGPT コード インタープリターよりも優れています。インタープリターはインターネットにアクセスできるため、以前は不可能だった多数の新しいタスクが可能になります。また、非常に強力なマシンを含む任意のマシン上でインタープリターを実行できるため、ChatGPT コード インタープリターを使用するよりもはるかに大規模なタスクを解決できます。
もちろんこれもできます。ただし、シークレット パイロットを使用すると、次のような利点があります。
入力したものや承認したすべてのコード結果は、クラウド API に送信されるという意味では、実際には非公開ではありません。ただし、データはローカルに残ります。インタプリタはローカルでも実行され、データをその場で処理します。特定の場合、データに関する何か (構造体のファイル名など) をモデルに伝える必要がありますが、通常、それは UI で積極的に承認されるメタデータであり、実際のデータではありません。実行の各ステップで、API に何かが送信されることを拒否することができます。
Incognito Pilotに貢献したいですか?それとも docker を使わずにインストールするだけですか?投稿の手順とガイドラインを確認してください。