Um intérprete de código de IA para dados confidenciais, desenvolvido com GPT-4 ou Code Llama/Llama 2.
O Incognito Pilot combina um Large Language Model (LLM) com um interpretador Python, para que possa executar código e tarefas para você. É semelhante ao ChatGPT Code Interpreter , mas o interpretador é executado localmente e pode usar modelos de código aberto como Code Llama/Llama 2 .
O Incognito Pilot permite que você trabalhe com dados confidenciais sem carregá-los na nuvem. Você usa um LLM local (como Llama 2) ou uma API (como GPT-4). Para o último caso, existe um mecanismo de aprovação na UI, que separa os dados locais dos serviços remotos.
Com o Incognito Pilot , você pode:
e muito mais!
O vídeo mostra o Incognito Pilot com GPT-4. Enquanto sua conversa e os resultados do código aprovado são enviados para a API da OpenAI, seus dados são mantidos localmente em sua máquina. O interpretador também está sendo executado localmente e processa seus dados ali mesmo. E você pode ir ainda mais longe e usar o Code Llama/Llama 2 para ter tudo rodando na sua máquina.
Esta seção mostra como instalar o Incognito Pilot usando um modelo GPT por meio da API OpenAI. Para
Siga estas etapas:
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
No console, você deverá ver agora um URL. Abra-o e você verá a interface do Incognito Pilot .
Também é possível executar o Incognito Pilot com os créditos de avaliação gratuita do OpenAI, sem adicionar cartão de crédito. No momento, isso não inclui o GPT-4, então veja abaixo como alterar o modelo para GPT-3.5.
Na interface do Incognito Pilot , você verá uma interface de chat, com a qual poderá interagir com o modelo. Vamos experimentar!
Agora você deve estar pronto para usar o Incognito Pilot para suas próprias tarefas. Apenas lembre-se:
Mais uma coisa: a versão que você acabou de usar quase não contém pacotes fornecidos com o interpretador Python. Isso significa que coisas como ler imagens ou arquivos Excel não funcionarão. Para mudar isso, volte ao console e pressione Ctrl-C para parar o contêiner. Agora execute novamente o comando, mas remova o sufixo -slim
da imagem. Isso fará o download de uma versão muito maior, equipada com muitos pacotes.
Para usar outro modelo que não o padrão (GPT-4), defina a variável de ambiente LLM
. Os modelos GPT da OpenAI têm o prefixo gpt:
, portanto, para usar GPT-3.5, por exemplo (o ChatGPT original), adicione o seguinte ao comando docker run:
-e LLM= " gpt-openai:gpt-3.5-turbo "
Observe que o GPT-4 é consideravelmente melhor na configuração do intérprete do que o GPT-3.5.
Para servir a UI em uma porta diferente de 3030, você pode expor a porta interna 80 a uma porta diferente, por exemplo 8080. Você também deve alterar a variável de host permitida neste caso:
docker run -i -t
-p 8080:80
-e ALLOWED_HOSTS= " localhost:8080 "
...
silvanmelchior/incognito-pilot
Por padrão, o token de autenticação, que faz parte da URL que você abre, é gerado aleatoriamente na inicialização. Isso significa que sempre que você reiniciar o contêiner, será necessário copiar novamente o URL. Se quiser evitar isso, você também pode corrigir o token para um determinado valor, adicionando o seguinte ao comando docker run:
-e AUTH_TOKEN= " some-secret-token "
Depois de abrir o URL com o novo token, o navegador se lembrará dele. Assim, a partir de agora, você pode acessar o Incognito Pilot apenas abrindo http://localhost:3030, sem precisar adicionar um token à URL.
Por padrão, o interpretador Python para após 30 segundos. Para alterar isso, defina a variável de ambiente INTERPRETER_TIMEOUT
. Por 2 minutos, por exemplo, adicione o seguinte ao comando docker run:
-e INTERPRETER_TIMEOUT= " 120 "
Para iniciar automaticamente o Incognito Pilot com docker / na inicialização, remova o -i -t
do comando run e adicione o seguinte:
--restart always
Juntamente com um marcador do URL da interface do usuário, você terá o Incognito Pilot ao seu alcance sempre que precisar. Alternativamente, você pode usar docker-compose.
Não está satisfeito com os pacotes pré-instalados da versão completa (também conhecida como não slim)? Quer adicionar mais pacotes Python (ou Debian) ao interpretador?
Você pode facilmente conteinerizar suas próprias dependências com o Incognito Pilot . Para fazer isso, crie um 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 suas dependências em um arquivo requirements.txt e execute o seguinte comando:
docker build --tag incognito-pilot-custom .
Em seguida, execute o contêiner assim:
docker run -i -t
...
incognito-pilot-custom
Não, tem seus limites. A troca entre privacidade e capacidades não é fácil neste caso. Para coisas como imagens, é tão poderoso quanto o interpretador de código ChatGPT, porque não precisa saber o conteúdo da imagem para editá-la. Mas para coisas como planilhas, se o ChatGPT não vir o conteúdo, ele terá que adivinhar, por exemplo, o formato dos dados do cabeçalho, o que pode dar errado.
Porém, em certos aspectos, é ainda melhor que o intérprete de código ChatGPT: O intérprete tem acesso à internet, permitindo uma série de novas tarefas que antes não eram possíveis. Além disso, você pode executar o interpretador em qualquer máquina, inclusive em máquinas muito poderosas, para que possa resolver tarefas muito maiores do que com o interpretador de código ChatGPT.
É claro que você pode fazer isso. No entanto, existem algumas vantagens em usar o Incognito Pilot :
Tudo o que você digita e todos os resultados de código que você aprova não são privados, no sentido de que são enviados para a API da nuvem. No entanto, seus dados permanecem locais. O interpretador também é executado localmente, processando seus dados exatamente onde eles estão. Para certas coisas, você terá que informar ao modelo algo sobre seus dados (por exemplo, o nome do arquivo da estrutura), mas geralmente são metadados que você aprova ativamente na UI e não os dados reais. Em cada etapa da execução, você pode simplesmente rejeitar que algo seja enviado para a API.
Quer contribuir para o Incognito Pilot ? Ou apenas instale-o sem docker? Confira as instruções e diretrizes de contribuição.