autopilot - um desenvolvedor de IA
autopilot é uma ferramenta de IA que utiliza GPT para ler uma base de código, criar contexto e resolver tarefas solicitadas.
Demonstração do piloto automático" width="800" data-animated-image="" style="max-width: 100%;">
Junte-se ao nosso discord
Participe da conversa em https://discord.gg/r72ykfvyx7
Como funciona
- Você aponta autopilot para uma base de código com uma tarefa.
- autopilot gera e mantém um banco de dados com metadados nos arquivos de base de código. (dentro do diretório codebase)
- autopilot decide quais arquivos existentes são necessários para a tarefa usando o banco de dados de metadados.
- autopilot tenta implementar a tarefa solicitada em cada arquivo relevante.
autopilot como um aplicativo GitHub
Você pode usar este projeto instalando o aplicativo GitHub disponível no site do Code autopilot . Este aplicativo usa autopilot para resolver automaticamente problemas que você abre no GitHub e também possui recursos para Pull Request. Ele fornece uma interface fácil de usar e integração direta com o Github.
Características
- - Pré-processa arquivos de base de código.
- ? - Implementa alterações de código para você.
- - Chamadas paralelas para agentes sempre que possível.
- - Mostra o que foi atualizado. (Registro completo do processo com cada interação de IA também produzido)
- ?️ - Modo interativo - veja o processo com opções de repetir, continuar e abortar.
Expectativas de tarefas
- Referenciando o código atual:
- ✅ Referenciar um arquivo específico por caminho relativo do projeto.
- ✅ Referenciar um arquivo específico apenas pelo nome do arquivo, ignorando o caminho dos subdiretórios.
- ✅ Referenciar uma função específica dentro de um arquivo sem o nome do arquivo.
- ✅ Referenciar um conceito de negócio importante que é usado exclusivamente em um arquivo.
- ✅ Referenciando todos os arquivos do projeto.
- ? Solicitações lógicas gerais. Sua milhagem seria diferente por modelo, base de código e tarefa. Alguns trabalhos. (Deve introduzir pontuação de tarefas)
- Mudanças executadas:
- ✅Crie um novo arquivo com base em um arquivo existente.
- Inicie um novo arquivo do zero.
- ✅Atualize um arquivo existente.
- ✅Atualize vários arquivos existentes.
- Exclua os arquivos existentes. (Isso pode esvaziá-los, mas não excluí-los atualmente)
- Comece a usar novas bibliotecas de terceiros. (Precisa de execução arbitrária de código para instalar a biblioteca)
- Atualização em cascata de arquivos relacionados, como testes. (Em breve)
- Teste o código que ele escreveu e corrija-o automaticamente.
Pré-requisitos
nodejs v18 ou superior.
Instalação
- Clone o repositório:
git clone https://github.com/fjrdomingues/autopilot.git
- Faça
cd autopilot
para instalar dependências: npm ci
- Crie o arquivo
.env
e configure as variáveis de ambiente:- Copie o arquivo .env.template para .env:
cp .env.template .env
- Configure uma chave de API OpenAI e um arquivo com a chave:
OPENAI_API_KEY=<your-api-key>
. Criar chave de API openAI - Defina o caminho para o seu código
CODE_DIR=<path-to-your-code>
(ou use -d path-to-your-code
mais tarde) - Atualizar
IGNORE_LIST=node_modules,coverage,public,__tests__
- Atualizar
FILE_EXTENSIONS_TO_PROCESS=.js,.tsx,.ts,.jsx
Correndo
-
node ui -t "YOUR_TASK"
- é a maneira mais fácil de começar.- As soluções serão aplicadas automaticamente em seu código e um git diff será mostrado, se possível.
- Alternativamente, você pode especificar
--auto-apply=false
.
-
node ui -h
- mostrará todas as opções.
Modo interativo
Use node ui -i
para um modo interativo, aqui você pode revisar a saída de cada etapa antes de continuar.
? Contribuindo
Estamos executando autopilot em um servidor conectado ao repositório https://github.com/fjrdomingues/autopilot. Novos problemas criados acionarão autopilot e criarão uma nova solicitação pull com uma proposta. Executando com gpt-4
Aceitamos contribuições! Envie solicitações pull ao repositório e certifique-se de que suas alterações estejam alinhadas com os objetivos e diretrizes do projeto. Juntos, podemos tornar autopilot uma ferramenta ainda mais poderosa e eficiente para desenvolvedores!
Executando testes - tudo
npm run test
- executa todos os testes
Executando testes - teste de unidade
npm run unit-test
- executa os testes de unidade
Executando testes - Benchmarks
npm run e2e-test
- executa os testes de ponta a ponta
Estrutura de código
- agentes - interações com modelos de linguagem.
- módulos - a maioria das outras bibliotecas internas.
- ui.js - O principal().
- logs - documenta a execução de uma tarefa.