Pitch: 🚀 Commia: Automatizando Mensagens de Commit com Inteligência Artificial
GitHub do Projeto | Commia no NPM
Oi, pessoal! Recentemente desenvolvi uma CLI chamada Commia. A ideia por trás dessa ferramenta é bem simples: automatizar a criação de mensagens de commit usando inteligência artificial. Se você, assim como eu, às vezes perde tempo tentando pensar na mensagem perfeita para um commit, a Commia pode ser uma grande ajuda!
De Onde Veio a Ideia?
Tudo começou quando eu vi uma ferramenta que fazia algo parecido, mas usava a API da OpenAI com o ChatGPT. Achei muito legal, mas percebi que, com o tempo, os custos podiam começar a pesar, especialmente com o dólar nas alturas.
Com tempo acabei conhecendo algumas ferramentas bem interessantes: o Ollama e a SDK da Vercel. Eles permitem rodar modelos de IA localmente, sem custos extras, o que me pareceu a solução perfeita.
Entendendo as Ferramentas
Ollama
O Ollama é uma ferramenta incrível que permite que você rode modelos de IA diretamente no seu computador. Isso significa que não preciso me preocupar com chamadas a APIs externas ou custos adicionais. O modelo que escolhi usar por padrão na Commia é o LLaMA 3.1, mas você pode trocar por outros modelos se quiser.
Por usar uma inteligência artificial localmente, o tempo para a criação do commit vai depender muito da máquina que está utilizando e do modelo que você escolher. Na minha máquina (com wsl), que tem um I5 de 9ª geração e uma placa de vídeo GTX 1650 com 4 GB de RAM, e usando o modelo LLaMA 3.1, o tempo chegou a 01:20s com muitas alterações.
SDK da Vercel
Já a SDK da Vercel facilitou muito a comunicação com as IAs. Como eu optei por fazer a CLI em JavaScript, a SDK da Vercel caiu como uma luva, já que é super fácil de integrar em projetos Node.js. Com ela, consegui fazer a integração com o Ollama de forma rápida e eficiente.
Interagindo com o Git
Para fazer a Commia realmente funcionar, precisei que ela interagisse com o Git, e foi aí que o simple-git entrou em cena. Essa biblioteca facilita bastante as operações com Git via Node.js, e foi essencial para que a Commia pudesse adicionar alterações ao stage e realizar os commits automaticamente.
Como Instalar e Usar a Commia
1. Pré-requisitos
Antes de instalar a Commia, você precisa configurar algumas ferramentas:
-
Ollama: Para usar a Commia, instale o Ollama na sua máquina. O Ollama é uma API que permite a comunicação com uma IA localmente. Siga as instruções no site oficial: Ollama - Official Site.
-
Modelos de IA: Após instalar o Ollama, faça o download do modelo de IA que deseja utilizar. Por padrão, a Commia usa o modelo LLaMA 3.1, que pode ser baixado com o comando:
ollama pull llama3.1
Se quiser usar um modelo diferente, certifique-se de fazer o download do modelo desejado usando o comando
ollama pull <nome-do-modelo>
.
2. Instalando a Commia
Depois de configurar o Ollama e o modelo de IA, instale a CLI Commia globalmente com npm:
npm install commia --global
Você também pode usar outros gerenciadores de pacotes como yarn ou pnpm.
3. Usando a Commia
-
No diretório do seu projeto que já possui um repositório Git iniciado, adicione todas as alterações ao stage com o comando:
git add .
-
Agora, gere uma mensagem de commit e realize o commit automaticamente usando o comando:
commia ia
A Commia irá gerar a mensagem de commit, realizar o commit automaticamente, e você poderá dar push para o repositório remoto.
4. Opções da Commia
--lang <lang>
: Define o idioma da mensagem de commit (padrão: "en-US").--model <model>
: Define o modelo de IA a ser usado para gerar o texto. Por padrão, a Commia utiliza o modelo LLaMA 3.1. Lembre-se de fazer o pull do modelo escolhido usando o Ollama antes de utilizá-lo.-h, --help
: Exibe a ajuda para o comando.
5. Exemplo de Uso
Para gerar uma mensagem de commit utilizando o modelo LLaMA 3.1:
commia ia --lang pt-BR --model llama3.1
Ou, para utilizar um outro modelo suportado pelo Ollama:
-
Primeiro, faça o download do modelo desejado:
ollama pull <nome-do-modelo>
-
Depois, utilize a Commia especificando o modelo:
commia ia --model <nome-do-modelo>
Se a flag --model
não for passada, o modelo LLaMA 3.1 será usado por padrão.
Melhoria Futuras
Embora a Commia já seja funcional e facilite bastante o processo de commit, pensei em algumas melhorias que podem ser adicionadas nas próximas versões:
-
Editar a Mensagem de Commit Antes de Committar: Atualmente, a mensagem gerada é utilizada diretamente. Seria interessante permitir que o usuário edite a mensagem antes de confirmar o commit.
-
Adicionar Arquivos ao Stage Automaticamente: Implementar uma flag que permita ao usuário adicionar todos os arquivos ao stage ou escolher quais arquivos adicionar antes de criar o commit.
-
Commits Separados por Arquivo: Uma funcionalidade que poderia ser útil é a capacidade de criar um commit separado para cada arquivo modificado, criado ou apagado. Isso ajudaria a manter um histórico de commits mais granular e organizado.
-
arquivo de configurações: um aquivo onde pode salvar as configurações da CLI.
Publicação no NPM
Depois de algumas horas de desenvolvimento, consegui terminar uma versão funcional da Commia e publiquei no NPM. O nome "Commia" é uma junção de "COMMIT" e "IA", refletindo bem o propósito da ferramenta.
Se você quiser conferir ou usar a Commia, é só acessar o NPM: Commia no NPM.
Conclusão
Desenvolver a Commia foi um desafio divertido e gratificante. Agora, com a ajuda da IA, não preciso mais quebrar a cabeça para pensar em boas mensagens de commit. E o melhor de tudo: tudo isso roda localmente, sem custos extras.
Se você também quer dar um upgrade no seu fluxo de trabalho com commits, te convido a experimentar a Commia. E, claro, se tiver alguma sugestão ou encontrar algum problema, fique à vontade para contribuir!
Abraços