AICodeBot é um assistente de codificação baseado em terminal projetado para facilitar sua vida de codificação. Pense nisso como a sua versão AI de um programador par. Execute revisões de código, crie mensagens de commit úteis, depure problemas e ajude você a pensar na construção de novos recursos. Um membro da equipe que acelera o ritmo de desenvolvimento e ajuda você a escrever um código melhor.
Planejamos construir várias interfaces diferentes para interagir com o AICOdeBot. Para começar, é uma ferramenta de linha de comando que você pode instalar e executar em seu terminal e uma ação GitHub para revisões de código.
Status: Este projeto foi construído antes que os AI Coding Assistants fossem legais. ? Como tal, grande parte da funcionalidade foi replicada em vários IDEs. Onde o AICodeBot brilha é a) está no terminal, não na GUI, eb) pode ser usado em processos como ações do GitHub.
Estamos usando o AICodeBot para construir o AICodeBot, e ele está crescendo em espiral o tempo todo.️ Estamos procurando colaboradores para nos ajudar a construí-lo. Veja CONTRIBUINDO para mais informações.
Tarefa | Status |
---|---|
Gerando mensagens de commit de qualidade | ✅ |
Pensando nas tarefas como um programador par | ✅ |
Codificação com um pequeno número de arquivos | ✅ |
Depuração | ✅ |
Fazendo revisões de código | ✅ |
Explicando o código | ✅ |
Escrevendo testes | ✅ |
Integração com GitHub | ✅ |
Modificando arquivos locais | Estágios iniciais |
Procurando respostas na internet | Em andamento |
Lendo a documentação da biblioteca | Estágios iniciais |
Codificação com um grande número de arquivos | À medida que os LMs obtêm limites de token maiores |
Escrevendo código de nível de desenvolvedor sênior | Eventualmente |
Principais refatoradores | Eventualmente |
Crie aplicativos inteiros | Eventualmente |
Substituir desenvolvedores | Não |
aicodebot sidekick
Seu assistente de codificação com tecnologia de IA. Ele foi projetado para ajudá-lo em suas tarefas de codificação, fornecendo sugestões e soluções baseadas no contexto. Pense no ChatGPT com a capacidade de ler o repositório local para obter contexto.
Por padrão, ele transmitirá um diretório de arquivos do diretório de trabalho atual e você também poderá transmitir uma lista de arquivos para usar como contexto para a tarefa em que está trabalhando. Por exemplo:
aicodebot sidekick file1.py file2.py
Neste exemplo, o ajudante lerá o conteúdo de file1.py e file2.py e os usará para fornecer respostas sensíveis ao contexto.
Dicas profissionais:
Esse recurso está em sua fase inicial no momento, mas já é útil. Adicionaremos suporte para ferramentas que o companheiro pode usar, incluindo integração com GitHub, ingestão de conhecimento de domínio específico do repositório, gravação de arquivos locais e muito mais. Por enquanto, ele apenas lê arquivos e dá sugestões.
aicodebot commit
melhora o processo de commit do git. Ele executará o pré-commit para você verificar a sintaxe e, em seguida, gerará uma mensagem de commit para você com base nas alterações feitas. Com tanto esforço quanto digitar "fix bug" para a mensagem de commit, você receberá uma mensagem de commit de alta qualidade que descreve minuciosamente a mudança.
aicodebot review
executará uma revisão do seu código e sugerirá melhorias. Por padrão, ele examinará as alterações [não] preparadas e você também poderá fornecer um hash de commit específico para revisão. Seu objetivo é sugerir como melhorar o código, e descobrimos que muitas vezes ele nos ensina coisas novas sobre nosso código e nos torna melhores programadores. É uma ótima maneira de obter um segundo par de olhos robóticos em seu código.
aicodebot debug $command
executará o $command e capturará a saída do log. Ele passará a mensagem de erro, rastreamento de pilha, saída de comando, etc. para a IA e responderá com algumas sugestões sobre como corrigi-lo.
Para instalar o AICOdeBot, execute:
pip install aicodebot
E então, execute aicodebot configure
para começar.
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot oferece suporte a vários modelos de linguagem grande, incluindo Claude 3.x da Anthropic e GPT-3/4x da OpenAI. Solicitações pull para Gemini ou Ollama são bem-vindas, mas achamos que esses dois funcionam.
Na primeira vez que você executar o AICOdeBot, você será solicitado a inserir suas chaves de API
Que tal revisões automatizadas de código em cada commit? Você pode fazer com que o AICOdeBot seja executado como uma ação do GitHub em seu repositório. Consulte A ação GitHub do AICOdeBot para revisões de código. Ele analisará cada solicitação de commit e pull e, em seguida:
aicodebot debug $command
pip install aicodebot
aicodebot alignment
. A própria tecnologia é amoral; apenas impregna os valores das pessoas que o criam. Acreditamos que a IA deve ser construída de uma forma que se alinhe com a humanidade, e estamos construindo o AICodeBot para nos ajudar a fazer exatamente isso. Estamos construindo a partir de um espaço centrado no coração e contribuindo para a intersecção saudável entre IA e humanidade.
aicodebot
é uma ferramenta para desenvolvedores, não um substituto para eles. Isso não substituirá o seu trabalho, mas o tornará mais fácil e divertido. Não dominará o mundo, mas nos ajudará a construir um mundo melhor. Consulte a seção Alinhamento abaixo para obter mais informações.
Também não é uma ferramenta do tipo “construa um site para mim em 5 minutos” que recebe um prompt bem construído e constrói uma estrutura para você. Existem outras ferramentas para isso. Não é uma plataforma sem código. Em vez disso, o AICodeBot foi desenvolvido para funcionar com bases de código existentes e o nível git-commit. Ele foi projetado para multiplicar a eficácia de engenheiros competentes.
Para especificar um modelo diferente, você pode definir o language_model
em seu arquivo $HOME/.aicodebot.yaml
. Por exemplo:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
Em modelos de IA como o GPT-4 da OpenAI, um “token” é um pedaço de texto, tão curto quanto um caractere ou tão longo quanto uma palavra. O total de tokens em uma chamada de API, incluindo entrada e saída, afeta o custo, o tempo e se a chamada funciona com base no limite máximo.
Cada modelo tem um limite máximo de tokens. Por exemplo, GPT-3.5 tem um limite de 4.096 tokens e GPT-4 tem um limite de tokens de 8.192 tokens. Caso uma conversa ultrapasse esse limite, você deverá reduzir seu texto até que caiba.
Ao usar comandos como o comando Sidekick no AICodeBot, que permite passar arquivos para contexto, é importante gerenciar seus tokens de maneira eficaz. Devido aos limites de token, não é viável carregar toda a sua base de código. Em vez disso, você deve carregar apenas os arquivos específicos relevantes para a tarefa em que está trabalhando. Isso garante que o modelo de IA possa processar sua solicitação com eficiência e fornecer as sugestões mais relevantes para sua tarefa atual.
Você precisa de uma janela de contexto maior para sua tarefa? Você está atingindo os limites de tokens e recebendo uma mensagem como esta?
The context is too large (21414) for any of the models supported by your API key. ?
Existem algumas coisas que você pode fazer:
Adoraríamos sua ajuda! Se você estiver interessado em contribuir, veja como começar. Consulte CONTRIBUINDO para obter mais detalhes.
Supõe que você tenha alterações no diretório de trabalho atual que já foram adicionadas.
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y