Un intérprete de códigos de IA para datos confidenciales, impulsado por GPT-4 o Code Llama / Llama 2.
Incognito Pilot combina un modelo de lenguaje grande (LLM) con un intérprete de Python, por lo que puede ejecutar código y tareas por usted. Es similar a ChatGPT Code Interpreter , pero el intérprete se ejecuta localmente y puede usar modelos de código abierto como Code Llama/Llama 2 .
Incognito Pilot le permite trabajar con datos confidenciales sin cargarlos en la nube. O utiliza un LLM local (como Llama 2) o una API (como GPT-4). Para el último caso, existe un mecanismo de aprobación en la interfaz de usuario que separa sus datos locales de los servicios remotos.
Con Incognito Pilot , puedes:
¡y mucho más!
El video muestra al piloto de incógnito con GPT-4. Mientras su conversación y los resultados del código aprobado se envían a la API de OpenAI, sus datos se guardan localmente en su máquina. El intérprete también se ejecuta localmente y procesa sus datos allí mismo. Y puedes ir aún más lejos y usar Code Llama / Llama 2 para que todo funcione en tu máquina.
Esta sección muestra cómo instalar Incognito Pilot usando un modelo GPT a través de la API de OpenAI. Para
Siga estos pasos:
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
En la consola, ahora deberías ver una URL. Ábrelo y deberías ver la interfaz de Incognito Pilot .
También es posible ejecutar Incognito Pilot con los créditos de prueba gratuitos de OpenAI, sin agregar una tarjeta de crédito. Por el momento, esto no incluye GPT-4, así que vea a continuación cómo cambiar el modelo a GPT-3.5.
En la interfaz de Incognito Pilot , verá una interfaz de chat con la que podrá interactuar con el modelo. ¡Probémoslo!
Ahora debería estar listo para utilizar Incognito Pilot para sus propias tareas. Solo recuerda:
Una cosa más: la versión que acaba de usar casi no tiene paquetes incluidos con el intérprete de Python. Esto significa que cosas como leer imágenes o archivos de Excel no funcionarán. Para cambiar esto, regrese a la consola y presione Ctrl-C para detener el contenedor. Ahora vuelva a ejecutar el comando, pero elimine el sufijo -slim
de la imagen. Esto descargará una versión mucho más grande, equipada con muchos paquetes.
Para utilizar otro modelo además del predeterminado (GPT-4), configure la variable de entorno LLM
. Los modelos GPT de OpenAI tienen el prefijo gpt:
, por lo que para usar GPT-3.5, por ejemplo (el ChatGPT original), agregue lo siguiente al comando docker run:
-e LLM= " gpt-openai:gpt-3.5-turbo "
Tenga en cuenta que GPT-4 es considerablemente mejor en la configuración del intérprete que GPT-3.5.
Para servir la interfaz de usuario en un puerto diferente al 3030, puede exponer el puerto interno 80 a uno diferente, por ejemplo 8080. También debe cambiar la variable del host permitida en este caso:
docker run -i -t
-p 8080:80
-e ALLOWED_HOSTS= " localhost:8080 "
...
silvanmelchior/incognito-pilot
De forma predeterminada, el token de autenticación, que forma parte de la URL que abre, se genera aleatoriamente al inicio. Esto significa que, cada vez que reinicie el contenedor, deberá volver a copiar la URL. Si desea evitar esto, también puede fijar el token en un valor determinado agregando lo siguiente al comando de ejecución de Docker:
-e AUTH_TOKEN= " some-secret-token "
Una vez que haya abierto la URL con el nuevo token, el navegador la recordará. Así, a partir de ahora podrás acceder a Incognito Pilot con sólo abrir http://localhost:3030, sin tener que añadir un token a la URL.
De forma predeterminada, el intérprete de Python se detiene después de 30 segundos. Para cambiar esto, configure la variable de entorno INTERPRETER_TIMEOUT
. Durante 2 minutos, por ejemplo, agregue lo siguiente al comando docker run:
-e INTERPRETER_TIMEOUT= " 120 "
Para iniciar Incognito Pilot automáticamente con Docker / al inicio, elimine -i -t
del comando de ejecución y agregue lo siguiente:
--restart always
Junto con un marcador de la URL de la interfaz de usuario, tendrás Incognito Pilot a tu alcance siempre que lo necesites. Alternativamente, puedes usar Docker-Compose.
¿No estás satisfecho con los paquetes preinstalados de la versión completa (también conocida como no delgada)? ¿Quiere agregar más paquetes de Python (o Debian) al intérprete?
Puede contener fácilmente sus propias dependencias con Incognito Pilot . Para hacerlo, cree un Dockerfile como este:
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
Coloque sus dependencias en un archivo require.txt y ejecute el siguiente comando:
docker build --tag incognito-pilot-custom .
Luego ejecuta el contenedor así:
docker run -i -t
...
incognito-pilot-custom
No, tiene sus límites. El equilibrio entre privacidad y capacidades no es fácil en este caso. Para cosas como imágenes, es tan poderoso como el intérprete de código ChatGPT, porque no necesita conocer el contenido de la imagen para editarla. Pero para cosas como hojas de cálculo, si ChatGPT no ve el contenido, tiene que adivinar, por ejemplo, el formato de los datos del encabezado, lo que puede salir mal.
Sin embargo, en ciertos aspectos, es incluso mejor que el intérprete de código ChatGPT: el intérprete tiene acceso a Internet, lo que permite realizar un montón de tareas nuevas que antes no eran posibles. Además, puede ejecutar el intérprete en cualquier máquina, incluidas las muy potentes, por lo que puede resolver tareas mucho más grandes que con el intérprete de código ChatGPT.
Por supuesto que puedes hacer esto. Sin embargo, existen bastantes ventajas al utilizar Incognito Pilot :
Todo lo que escriba y todos los resultados del código que apruebe no son privados, en el sentido de que se envían a la API de la nube. Sin embargo, sus datos permanecen locales. El intérprete también se ejecuta localmente y procesa sus datos justo donde están. Para ciertas cosas, tendrá que decirle al modelo algo sobre sus datos (por ejemplo, el nombre del archivo de la estructura), pero generalmente son metadatos los que usted aprueba activamente en la interfaz de usuario y no los datos reales. En cada paso de la ejecución, puede simplemente rechazar que se envíe algo a la API.
¿Quieres contribuir a Incognito Pilot ? ¿O simplemente instalarlo sin Docker? Consulte las instrucciones y pautas de contribución.