Интерпретатор кода AI для конфиденциальных данных на базе GPT-4 или Code Llama/Llama 2.
Incognito Pilot сочетает в себе модель большого языка (LLM) с интерпретатором Python, поэтому он может запускать код и выполнять задачи за вас. Он похож на ChatGPT Code Interpreter , но интерпретатор работает локально и может использовать модели с открытым исходным кодом, такие как Code Llama/Llama 2 .
Incognito Pilot позволяет работать с конфиденциальными данными , не загружая их в облако. Либо вы используете локальный LLM (например, Llama 2), либо API (например, GPT-4). В последнем случае в пользовательском интерфейсе имеется механизм утверждения , который отделяет ваши локальные данные от удаленных сервисов.
С Incognito Pilot вы можете:
и многое другое!
На видео показан Incognito Pilot с GPT-4. Хотя ваш разговор и результаты одобренного кода отправляются в API OpenAI, ваши данные хранятся локально на вашем компьютере. Интерпретатор также работает локально и тут же обрабатывает ваши данные. А вы можете пойти еще дальше и использовать Code Llama/Llama 2, чтобы все работало на вашем компьютере.
В этом разделе показано, как установить Incognito Pilot с использованием модели GPT через API OpenAI. Для
Выполните следующие действия:
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-адрес. Откройте его, и вы увидите интерфейс Incognito Pilot .
Также можно запустить Incognito Pilot с бесплатными пробными кредитами OpenAI без добавления кредитной карты. Однако на данный момент это не включает GPT-4, поэтому смотрите ниже, как изменить модель на GPT-3.5.
В интерфейсе Incognito Pilot вы увидите интерфейс чата, с помощью которого можно взаимодействовать с моделью. Давайте попробуем!
Теперь вы готовы использовать Incognito Pilot для своих задач. Просто помните:
И еще: в версии, которую вы только что использовали, почти нет пакетов, поставляемых с интерпретатором Python. Это означает, что такие вещи, как чтение изображений или файлов Excel, не будут работать. Чтобы изменить это, вернитесь в консоль и нажмите Ctrl-C, чтобы остановить контейнер. Теперь повторите команду, но удалите из образа суффикс -slim
. Будет загружена гораздо более крупная версия, оснащенная множеством пакетов.
Чтобы использовать другую модель, отличную от модели по умолчанию (GPT-4), установите переменную среды LLM
. Модели OpenAI GPT имеют префикс gpt:
, поэтому, чтобы использовать, например, GPT-3.5 (исходный ChatGPT), добавьте следующее в команду запуска docker:
-e LLM= " gpt-openai:gpt-3.5-turbo "
Обратите внимание, что GPT-4 значительно лучше в настройке интерпретатора, чем GPT-3.5.
Чтобы обслуживать пользовательский интерфейс через порт, отличный от 3030, вы можете предоставить внутреннему порту 80 другой порт, например 8080. В этом случае вам также следует изменить разрешенную переменную хоста:
docker run -i -t
-p 8080:80
-e ALLOWED_HOSTS= " localhost:8080 "
...
silvanmelchior/incognito-pilot
По умолчанию токен аутентификации, который является частью открываемого вами URL-адреса, генерируется случайным образом при запуске. Это означает, что при каждом перезапуске контейнера вам необходимо повторно скопировать URL-адрес. Если вы хотите предотвратить это, вы также можете зафиксировать для токена определенное значение, добавив следующее в команду запуска Docker:
-e AUTH_TOKEN= " some-secret-token "
Как только вы откроете URL-адрес с новым токеном, браузер запомнит его. Таким образом, теперь вы можете получить доступ к Incognito Pilot , просто открыв http://localhost:3030, без необходимости добавлять токен к URL-адресу.
По умолчанию интерпретатор Python останавливается через 30 секунд. Чтобы изменить это, установите переменную среды INTERPRETER_TIMEOUT
. Например, на 2 минуты добавьте в команду запуска docker следующее:
-e INTERPRETER_TIMEOUT= " 120 "
Чтобы автоматически запускать Incognito Pilot с помощью docker / при запуске, удалите -i -t
из команды запуска и добавьте следующее:
--restart always
Вместе с закладкой 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
Поместите свои зависимости в файл require.txt и выполните следующую команду:
docker build --tag incognito-pilot-custom .
Затем запустите контейнер следующим образом:
docker run -i -t
...
incognito-pilot-custom
Нет, у этого есть свои пределы. В этом случае найти компромисс между конфиденциальностью и возможностями непросто. Для таких вещей, как изображения, он так же эффективен, как интерпретатор кода ChatGPT, поскольку для его редактирования не нужно знать о содержимом изображения. Но для таких вещей, как электронные таблицы, если ChatGPT не видит содержимое, ему приходится угадывать, например, формат данных из заголовка, что может пойти не так.
Однако в некоторых аспектах он даже лучше, чем интерпретатор кода ChatGPT: интерпретатор имеет доступ к Интернету, что позволяет выполнять множество новых задач, которые раньше были невозможны. Также вы можете запустить интерпретатор на любой машине, в том числе очень мощной, что позволит вам решать гораздо более масштабные задачи, чем с помощью интерпретатора кода ChatGPT.
Вы, конечно, можете это сделать. Однако использование Incognito Pilot имеет ряд преимуществ:
Что бы вы ни вводили, и все результаты кода, которые вы утверждаете, действительно не являются конфиденциальными в том смысле, что они отправляются в облачный API. Однако ваши данные остаются локальными. Интерпретатор также работает локально, обрабатывая ваши данные там, где они есть. В некоторых случаях вам придется сообщить модели что-то о ваших данных (например, имя файла структуры), но обычно это метаданные, которые вы активно утверждаете в пользовательском интерфейсе, а не фактические данные. На каждом этапе выполнения вы можете просто отказаться от отправки чего-либо в API.
Хотите внести свой вклад в пилотный проект Incognito ? Или просто установить без докера? Ознакомьтесь с инструкциями и рекомендациями по вкладу.