WEB3DEV

Cover image for Como Substituí o Google pelo ChatGPT
Isabela Curado Nehme
Isabela Curado Nehme

Posted on

Como Substituí o Google pelo ChatGPT

Incorporando IA em meus fluxos de trabalho de engenharia diários

https://miro.medium.com/v2/resize:fit:720/format:webp/1*h0aEA5J9aminqJFsBAdwdw.png

O erro que cometi quando usei o ChatGPT pela primeira vez foi tentar pular de tarefas simples para a automatização de um ser humano inteiro.

Minha exposição ao ChatGPT seguiu uma tendência típica: uma onda inicial de entusiasmo seguida por um fracasso total em mudar minhas rotinas. Fiz algumas perguntas iniciais simples e fiquei impressionado com o que ele conseguia fazer. Então, pedi para que escrevesse uma postagem inteira em um blog para ver se ele poderia me substituir como escritor. Concluí que não poderia substituir totalmente os humanos e voltei totalmente para um fluxo de trabalho sem IA.

Em retrospectiva, eu precisava de mais orientação sobre como aproveitar a IA em meu fluxo de trabalho diário, e é isso que este artigo pretende corrigir.

Este conteúdo é direcionado a profissionais de software interessados ​​em obter conselhos concretos sobre como podem aproveitar o ChatGPT de maneira eficaz. A ideia é começar com casos de uso diário simples e avançar para casos mais complexos. Terminarei com um exemplo de projeto que deu errado.

  • Migrando do Google para o ChatGPT;
  • Programação em pares com o ChatGPT;
  • Usando o ChatGPT para brainstorming;
  • Testando os limites de codificação do ChatGPT.

Minha intenção não é convencê-lo de que o ChatGPT é a melhor IA, nem tentar convencê-lo de que a IA vai substituir todos os trabalhos de software (definitivamente não vai). Em vez disso, espero deixá-lo com inspiração suficiente para tentar incorporar a IA em sua rotina de trabalho.

Se você achar este artigo útil, reserve um tempo para 👏 ou siga-me.

Migrando do Google para o ChatGPT

https://miro.medium.com/v2/resize:fit:720/format:webp/1*W7vRpk3cd87pTTXPjtyIQA.png

🤔Mudança de mentalidade: o Google serve para trazer à tona perguntas semelhantes de outras pessoas, enquanto o ChatGPT está aqui para responder exatamente à sua pergunta.

Como a maioria das pessoas, eu pesquiso no Google quando não sei alguma coisa. O fluxo de trabalho padrão é ir ao Google, clicar nos resultados principais e ler até sentir que você encontrou a resposta correta. Se tiver sorte, alguém já fez exatamente a mesma pergunta. Porém, na maioria das vezes, me pego clicando em várias respostas e juntando-as.

Vamos fazer uma pergunta incrivelmente simples:

https://miro.medium.com/v2/resize:fit:720/format:webp/1*jYUsA3njg8edlt_tDcp7ww.png

Ok, na verdade, não foi isso que perguntei. É uma resposta parcial. Aqui estão os resultados restantes:

Você já passou por esse processo tantas vezes que é instintivo. Esses resultados de pesquisa do Google responderam principalmente à pergunta: “Como excluir itens de uma tabela do DynamoDB”. Em seguida, você reescreveria sua pesquisa para “Como adicionar itens a uma tabela do DynamoDB”. Você leria esses resultados, juntaria as respostas em sua cabeça e estaria pronto para prosseguir.

Vamos fazer a mesma coisa com o ChatGPT:

https://miro.medium.com/v2/resize:fit:720/format:webp/1*ny75UKQzYYYhxEkSKaa4eQ.png

O ChatGPT forneceu o código para Python e AWS CLI

O ChatGPT forneceu a descrição em inglês e o código exato em Python e AWS CLI. O Google fez o seu melhor para retornar conteúdo semelhante à minha pergunta, enquanto o ChatGPT fez o seu melhor para gerar uma resposta.

🤔 Mudança de mentalidade: o ChatGPT automatiza o processo de análise dos principais resultados e filtragem para obter uma resposta.

Essa nova mentalidade me fez perceber quantas vezes por semana tenho uma pergunta muito simples e quero os “melhores resultados do Google”. Aqui está uma lista das perguntas que fiz só esta semana:

  • “É possível baixar partes específicas de um arquivo através do curl?”
  • “Como é que se cortam as aspas dessa string no bash?”
  • “Como adiciono segredos ao AWS Secrets Manager?”
  • “Como posso eliminar todos os processos em um sistema Linux que correspondam a uma regex?”
  • “Dê-me 5 ideias para perguntas em uma pesquisa de produtividade de desenvolvedores?”
  • “Quais são as 3 maneiras diferentes de iniciar um processo de inicialização no Linux?”

Posso obter as mesmas respostas através do Google? Sim.
Posso obter minha resposta mais rapidamente através do ChatGPT? Sem dúvida.
A IA pode substituir o meu trabalho? Não.
A IA pode melhorar a minha velocidade? Sem dúvida.

O ChatGPT é agora minha referência para pesquisas básicas do Google. Podemos ir para os mais complexos?

Programação em Pares com o ChatGPT

Vamos começar com o que eu estava tentando fazer:

Recentemente fui apresentado ao Databricks. Meu objetivo era investigar como os dados no S3 estão crescendo em relação ao tipo e à quantidade de drones que a minha empresa vende. A quantidade de dados pode mudar de acordo com o produto, a duração do voo e tipo de missão. Eu precisaria ajustar os dados para excluir voos curtos, simuladores de drones e tipos de arquivos que não são relevantes. O Databricks é muito pesado em termos de SQL, o que significa fazer várias junções de tabelas, condições e agrupamentos complexos.

Usamos o ChatGPT para responder perguntas simples, como “Como unir duas tabelas em SQL”. Mas é possível fazer mais com o ChatGPT: você pode contextualizar.

https://miro.medium.com/v2/resize:fit:720/0*n4z4gQrqSAu2bMJb

Aqui está a resposta:

https://miro.medium.com/v2/resize:fit:720/0*othVO4ULoVQu_WNw

🤔 Mudança de mentalidade: o ChatGPT pode formar suas respostas com base nas informações que você fornece.

Pense em como isso é poderoso. Ao adaptar suas respostas com base no contexto fornecido, o ChatGPT supera em muito o que o Google pode fazer. Nenhuma pesquisa no Google me daria o código acima. Na melhor das hipóteses, eu estaria juntando vários sites diferentes. Isso foi infinitamente mais rápido!

Essa primeira consulta é legal, mas não era a resposta final que eu precisava. Eu precisava ajustar os dados. Agora, se o ChatGPT é 10 vezes mais rápido que o Google porque pode adaptar sua resposta às especificidades da sua pergunta, a próxima etapa é 100 vezes mais rápida:

O ChatGPT considera o contexto de toda a conversa ao formular suas respostas:

https://miro.medium.com/v2/resize:fit:720/0*W32u8XTxm3oOvFs_

Como o ChatGPT se lembra da sua conversa, você não precisa regurgitar as informações. É como se você estivesse programando em pares com um humano. Você e o ChatGPT podem continuar desenvolvendo, fornecendo novas informações, voltando às etapas anteriores ou tentando um caminho experimental.

Na realidade, passei a hora seguinte dando mais uma dúzia de prompts até ter 150 linhas de SQL que, de outra forma, estariam além das minhas capacidades. Agora, para ser claro, o ChatGPT cometeu erros, como um humano faria. Eu fui capaz de apontar os erros e conseguimos progredir.

🤔 Mudança de mentalidade: você pode trabalhar com o ChatGPT para desenvolver uma solução complexa. Comece de forma simples e vá aumentando a complexidade.

Ok, então você pode usar o ChatGPT para responder perguntas simples ou criar pequenos trechos de código. Mas será que podemos ir mais longe?

Usando o ChatGPT para Brainstorming

Um ótimo exemplo é usar o ChatGPT para trazer considerações adicionais para o seu projeto. Aqui está meu exemplo da vida real:

Esta semana, um desenvolvedor me perguntou como poderia automatizar a injeção de um arquivo de licença em seu ambiente de desenvolvimento remoto. Como é meu novo estilo, fui direto ao ChatGPT:

https://miro.medium.com/v2/resize:fit:720/0*0tVknHDeICdRvNhF

O ChatGPT me deu uma resposta sólida, explicando o processo de upload e download do arquivo e do Terraform para as políticas AWS IAM necessárias para gerenciar o AWS Secrets Manager. Cada seção incluía exemplos de código e explicações. Foi ótimo.

No entanto, fiquei curioso para saber se já havia considerado o problema o suficiente e fiz uma pergunta mais geral ao ChatGPT:

https://miro.medium.com/v2/resize:fit:720/0*PUGyvkl7kikGsrTA

Ele voltou com oito itens adicionais a serem considerados: permissões, custos, criptografia, rotação de segredos, regiões, políticas de recursos, controle de versão de segredos e configuração inicial da conta. Para cada um deles, havia um parágrafo resumindo o tópico.

Eu já conhecia a maioria dessas considerações, mas várias eram novas. Isso me fez pensar: é possível usar o ChatGPT como parceiro de brainstorming?

Ver para crer: tente copiar um desses prompts para o ChatGPT4.

  • Sou engenheiro de software em uma empresa de software com uma API REST pública. Quero começar a fazer testes de resistência e estou avaliando vários frameworks. Quais são os recursos importantes que devo procurar?
  • Sou uma empresa de software que executa um produto SaaS. Preciso adicionar SSO ao meu produto para que cada empresa possa fazer login com sua plataforma de autenticação. Estou tentando comparar ferramentas como Auth0 e WorkOS. Quais são alguns recursos importantes a serem considerados?
  • Sou engenheiro de software em uma empresa que está criando um aplicativo corporativo (auto-hospedado). No meu caso, os próprios clientes gerenciam todo o produto, sem a minha ajuda. Estou preocupado com a carga de manutenção do suporte ao meu aplicativo a longo prazo. O que devo considerar?

As respostas que obtive foram muito úteis e um excelente ponto de partida. Esse é um ótimo exemplo de algo que não pode ser pesquisado no Google porque eu tentei. Porque, mais uma vez, o ChatGPT está tentando criar respostas e o Google está tentando trazer à tona conteúdo semelhante.

🤔 Mudança de mentalidade: use o ChatGPT para fazer um brainstorming das incógnitas desconhecidas do seu trabalho.

Ok, agora estou usando o ChatGPT para substituir minhas pesquisas típicas do Google, escrever trechos de código em conjunto e atuar como parceiro de brainstorming. Posso fazer com que ele escreva código complexo?

Testando os Limites de Codificação do ChatGPT

Quando se trata de escrever código que se ajusta diretamente à sua base de código, o ChatGPT é definitivamente a ferramenta errada (irei experimentar o GitHub Copilot a seguir). No entanto, quando se trata de escrever integrações com APIs públicas, o ChatGPT pode ser excelente.

Se pensarmos bem, isso faz sentido. Construir uma integração é simplesmente mapear ações de “leitura” de um site para ações de “escrita” de outro site. A parte mais difícil do problema é descobrir como você deseja traduzir entre dois modelos de dados diferentes. Depois de saber o que se quer, é fácil:

https://miro.medium.com/v2/resize:fit:720/0*a7LQdc1H0kosQZXV

Aqui está um link para o código que foi gerado. Isso é ótimo para o que é. Mas será que posso ir mais longe?

Criei um desafio para que o ChatGPT construísse um pequeno programa de software com a seguinte restrição: não tenho permissão para digitar nenhum código. Só posso executar o que ele me dá. Cada erro de digitação precisa ser corrigido pelo ChatGPT.

No início, o ChatGPT estava indo muito bem. Ele escreveu facilmente um cliente RESTful e conectou outras bibliotecas comuns. Funcionou, embora fosse simples.

Adicionar instruções de depuração foi bom. Eu disse ao ChatGPT que precisava de mais instruções de depuração e ele adicionou instruções de impressão em todo o código.

Envolver chamadas de função em outras bibliotecas também foi bacana. Eu estava baixando e reenviando arquivos grandes, então perguntei ao ChatGPT se ele poderia envolvê-los com uma visualização de barra de progresso na linha de comando. Aqui está o que ele fez:

https://miro.medium.com/v2/resize:fit:720/0*N9HYwPbaurhEyoAw

Eu nunca teria escrito esse polimento extra sem o ChatGPT.

Eu não teria tirado tempo para fazer tantas instruções de depuração ou injetar a biblioteca tqdm se estivesse fazendo isso sozinho.

🤔 Mudança de mentalidade: o ChatGPT pode adicionar polimento ao seu código, que de outra forma não teria valido a pena.

Onde tudo desmoronou: pedindo ao ChatGPT para refatorar o código em métodos.

Quando o código foi além de uma função simples, pedi ao ChatGPT para refatorar o código e adicionar abstração. E a partir daí, o ChatGPT começou a apresentar erros de digitação e falhas lógicas em quase todas as perguntas. Perto do final, passei mais tempo dizendo ao ChatGPT para corrigir os problemas do que se eu tivesse apenas feito sozinho.

Meu palpite sobre o que aconteceu é que cada pergunta ao ChatGPT recebe apenas uma quantidade limitada de tempo de computação. Quanto mais complexa a situação, mais parecia que o ChatGPT não conseguiu aperfeiçoar totalmente sua resposta e apenas apresentava um resultado pouco polido.

Texto explicativo: o ChatGPT é bom para escrever uma única função, mas desmorona rapidamente ao lidar com abstração ou vários métodos.

Melhor ainda, quando finalmente consegui fazer o código funcionar no AWS S3 com Python, o ChatGPT o traduziu bem. Embora tenha demorado uma hora para escrever o código que eu precisava, levou apenas um prompt para ele:

  • Traduzir o código S3 para funcionar com Azure, GCP e Dropbox.
  • Traduzir o código Python para Typescript.

Conclusão: o ChatGPT Está Aqui para Complementá-lo, Não Para Substituí-lo

Inicialmente, tive dificuldade para incorporar o ChatGPT em minha rotina diária. Achei que era um truque legal e que talvez se aplicasse aos fluxos de trabalho de outras pessoas, mas não ao meu. Meu trabalho era muito complexo ou cheio de nuances para que uma ferramenta externa de IA fosse útil. Quando as pessoas me perguntavam sobre IA, eu tentava ignorar, dizendo: “Eu experimentei e é legal”. Eu não dizia a eles que nunca tinha usado para tarefas práticas do dia a dia.

Depois de me forçar a usá-lo por uma semana, agora sou um fanático religioso pela forma como a IA transformou meu trabalho diário. Utilizo-a como substituto do Google, para brainstorming e como programador parceiro para código simples.

Recomendo fortemente que você se inscreva em uma conta ChatGPT4 e a incorpore ao seu fluxo de trabalho. Acho que você descobrirá que é uma grande ajuda.

Este artigo foi escrito por Elliot Graebert e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.

Top comments (0)