Executando verificação de segurança...
8

[PITCH] Criei uma ferramenta com IA para explicar erros do terminal

Hello World!!!

Vamos seguir a cultura porque é minha primeira publicação aqui no TabNews hhhhhh.

Queria partilhar convosco um projeto recente que fiz c para voltar a movimentar meu github. Recriei oTheFuck de Vladimir Iakovlev com menos da metade de código.

Daí nasceu o WTF (What is The Fault?). Dê uma olhada :)

Primeiro, o que é The Fuck?

É um app escrito em Python que corrige o último comando do terminal pela expressão correcta. TheFuck usa usa uma combinação de heurísticas e regras predefinidas para analisar o histórico recente do terminal e tentar corrigir comandos que foram digitados incorretamente. Por exemplo, ele pode sugerir o uso de sudo se o comando falhou por falta de permissões, ou pode corrigir erros de digitação, como trocar git stauts por git status.

Ele usa principalmente o histórico de comandos e padrões comuns de erros para determinar a correção mais provável para o comando que você queria executar. Além disso, o The Fuck é extensível, permitindo que você adicione suas próprias regras de correção.

Porquê criei WTF?

O que o TheFuck faz é magia para os olhos de um junior como eu, para ser sincero tentei ler o código durante uma semana e não, eu não consegui entender hhhhh. Aí eu falei comigo mesmo: "Vou fazer o meu!".

A ideia do WTF não é substituir o TheFuck, mas sim servir como inspiração para meu portifólio rodeado de projetos que não agregam nada para a comunidade, desde bot para baixar cursos em plataformas como Kiwify e etc. Decidi então que iria começar a fazer projetos "legais" e que agregam algo à mim ou para comunidade.

Ideia eu tenho e agora?

Eu como um bom preguiçoso que sou, achei a solução mais completa possível, mas não a melhor... Usar ChatGPT. O ChatGPT já sabe tudo, já conhece todos os erros, já conhece todos os comandos, conhece inclusive o próprio TheFuck dos pés a cabeça. Decisão feite e parti para o desenvolvimento!

Processo de contrução do WTF

O ChatGPT vai cuidar de tudo e retornar o comando correcto simples assim - Falei comigo mesmo. Só que pareceu uma solução medíocre comparado ao que TheFuck já faz e sinceramente isso me desmotivou, mas não me fez desistir 😁.

Arranjei um atalho, mas não o melhor caminho.

Primeiro passo foi implementar o mesmo comportamento, então abri meu VSCODE e decidi escolher minha stack: Python, Poetry, Langchain, OpenAI e Typer.

Eu poderia ter usado API da OpenAI directamente, mas eu quis fazer algo mais extensível por isso escolhi o Langchain, já que me daria liberdade de implementar outros LLMs no futuro sem muita complicação.

Depois de ter concluído o primeiro passo que era gerar o mesmo comportamento do TheFuck eu senti um vazio. O que eu fiz afinal - Me questionei. Era só um TheFuck premium já que eu teria que possuir um API_KEY da OpenAI e gastar meus míseros centavos.

O TheFuck faz isso gratuito e é muito mais rápido, não 🥲? Ah pois, foi então que decidi incrimentar um nova funcionalidade. O WTF agora além de corrigir o comando errado terá que explicar qualquer erro que apareça no terminal.

Isso foi genial porque as vezes, eu como JUNIORZÃO me pego perdido nos logs do terminal, tudo em inglês e sem entender nada do erro. Há dias que o faço é copiar e colar o erro no ChatGPT para intrepetar e me explicar. Agora eu tenho o GPT no meu terminal sem precisar me preocupar em copiar pois WTF já faz tudo por mim:

  • Pega o último erro do terminal
  • Usa langchain para chamar API da OpenAI
  • E me retorna tudo bonitinho na linguagem que eu preferir

Isso tá bom de maise 😊👍
(Ler na voz de Manoel Gomes).

WTF feito, funcional e publicado

Depois de concluído subi o projeto no Github, mas a minha ideia era disponibilizar como um pacote Python usado o Poetry para que qualquer conseguisse baixar com:

pip install wtf 

Algumas coisas me impediram de fazer isso e irei listar aqui para que a comunidade possa ajudar a tornar esse projeto grande e, inclusive, gratuito(sem GPT).

  • Um CLI digno, algo como WTF --init para configurações iniciais como API_KEYS e etc
  • Suporte para Windows
  • Adição de multi-linguagem para textos estáticos
  • Adição de um LLM gratuito
  • Implementar funções para rodar com LLMs localmente(ex: llama)

Conlusão

É isso pessoal, o projeto está documento no github para quem quiser dar uma olhada 😊. Não se esqueça de deixar uma estrela e contribuir caso queira ajudar a tornar grande o projeto.

Desculpa se tiver alguma incosistência no texto, eu sou relativamente novo nesse mundo de escrita de artigos, cada dia que passa busco aprender e melhorar minha escrita, se tiver algum feedback sobre isso agradeceria.

Referências
  • Python: Linguagem de programação usada para desenvolvimento geral, incluindo IA, web, automação e mais.
  • Poetry: Ferramenta para gerenciamento de dependências e publicação de pacotes em Python.
  • Langchain: Biblioteca para construção de aplicações que utilizam modelos de linguagem (LLMs).
  • OpenAI: Plataforma que fornece acesso a modelos de linguagem avançados, como GPT, para diversas aplicações de IA.
  • Typer: Biblioteca em Python para criação rápida e intuitiva de interfaces de linha de comando (CLIs).

Obrigado 🙌.

Carregando publicação patrocinada...
2

Isso é bem interessante, no IntelliJ ele faz algo parecido usando o gemini, quando aparece algum error bizarro, ele mostra um hint dizendo para perguntar para o Gemini sobre isso, ele já me salvou algumas vezes.

0