Como usar o ChatGPT para escrever código

Usando o ChatGPT para código

Uma das descobertas mais intrigantes sobre o ChatGPT é que ele pode escrever um código muito bom. Testei isso em fevereiro quando pedi para ele escrever um plugin do WordPress que minha esposa pudesse usar em seu site. Ele fez um bom trabalho, mas o projeto era muito simples.

Como usar o ChatGPT para escrever: Currículos | Fórmulas do Excel | Ensaios | Cartas de apresentação

Como você pode usar o ChatGPT para escrever código como parte de sua prática diária de programação? É isso que vamos explorar aqui.

Quais tipos de programação o ChatGPT pode fazer bem?

Há dois fatos importantes sobre o ChatGPT e programação. O primeiro é que ele pode, de fato, escrever código útil. O segundo é que ele pode se perder completamente, cair na toca do coelho, perseguir o próprio rabo e produzir lixo completamente inutilizável.

Também: Estou usando o ChatGPT para me ajudar a corrigir código mais rápido, mas a que custo?

Descobri isso do jeito difícil. Depois de terminar o plugin do WordPress, decidi testar até onde o ChatGPT poderia ir. Escrevi um prompt muito cuidadoso para um aplicativo Mac, incluindo descrições detalhadas de elementos da interface do usuário, interações, o que seria fornecido nas configurações, como eles funcionariam, e assim por diante. Em seguida, alimentei isso para o ChatGPT.

O ChatGPT respondeu com um fluxo de texto e código. Então ele parou no meio do código. Quando pedi para continuar, ele vomitou ainda mais código e texto. Pedi por continuação após continuação e ele despejou mais e mais código. Mas… nada disso era utilizável. Ele não identificou onde o código deveria ir, como construir o projeto e – quando olhei cuidadosamente o código produzido – ele omitiu operações importantes que solicitei, deixando descrições simples de texto dizendo “a lógica do programa vai aqui”.

Também: Ok, então o ChatGPT acabou de depurar meu código. De verdade

Depois de uma série de testes repetidos, ficou claro para mim que, se você pedir para o ChatGPT entregar um aplicativo completo, ele falhará. Uma corolário dessa observação é que, se você não souber nada sobre programação e quiser que o ChatGPT construa algo para você, ele falhará.

Onde o ChatGPT tem sucesso – e tem muito sucesso – é em ajudar alguém que já sabe programar a criar rotinas específicas e realizar tarefas específicas. Não peça por um aplicativo que rode na barra de menu. Mas se você pedir ao ChatGPT uma rotina para colocar um menu na barra de menu e, em seguida, colar isso em seu projeto, tudo vai dar certo.

Também: Como usar o ChatGPT para criar um aplicativo

Também tenha em mente que, embora o ChatGPT pareça ter uma quantidade tremenda de conhecimento específico de domínio (e muitas vezes tem), ele não tem sabedoria. Como tal, ele pode ser capaz de escrever código, mas não será capaz de escrever código contendo as nuances de problemas muito específicos ou complexos que exigem experiência profunda para entender.

Use o ChatGPT para demonstrar técnicas, escrever pequenos algoritmos e produzir sub-rotinas. Você até pode fazer o ChatGPT ajudá-lo a dividir um projeto maior em partes menores e, em seguida, pedir a ele para ajudá-lo a codificar essas partes.

Portanto, tendo isso em mente, vamos dar uma olhada em algumas etapas específicas de como usar o ChatGPT para escrever código.

Como o ChatGPT pode ajudá-lo a escrever código

1. Reduza e afine sua solicitação

O primeiro passo é decidir o que você vai pedir ao ChatGPT – mas ainda não peça nada a ele. Decida o que você quer que sua função ou rotina faça, ou o que você quer aprender para incorporar em seu código. Decida os parâmetros que você vai passar para o seu código e o que você quer obter. E então pense em como você vai descrever isso.

Também: Como escrever prompts melhores para o ChatGPT

Imagine que você está pagando um programador humano para fazer isso. Você está fornecendo informações suficientes para que essa pessoa possa trabalhar na sua tarefa? Ou você está sendo vago demais e a pessoa que você está pagando é mais propensa a fazer perguntas ou entregar algo completamente diferente do que você deseja?

Aqui está um exemplo. Digamos que eu queira ser capaz de resumir qualquer página da web. Eu quero alimentá-la com algo como este artigo e obter de volta um resumo curto e adequado. Como entrada, vou especificar a URL da página da web. Como saída, é um bloco de texto com um resumo.

2. Use o ChatGPT para explorar bibliotecas e recursos

Dando continuidade ao exemplo acima, uma forma muito antiga de extrair dados de uma página da web era encontrar o texto entre as tags de parágrafo do HTML.

Mas com o surgimento de ferramentas de IA, faz mais sentido usar uma biblioteca de IA para fazer uma extração e resumo inteligente. Um dos pontos fortes do ChatGPT (e também é uma área que você pode verificar facilmente para evitar seu padrão de comportamento autoritário, mas errado) é encontrar bibliotecas e recursos.

Também: Como fazer o ChatGPT fornecer fontes e citações

A OpenAI (a criadora do ChatGPT) vende acesso à API dos motores GPT-3 e GPT-4 que farão exatamente o que queremos. Mas, no caso deste exemplo, vamos supor que não queremos pagar taxas de transação.

Então, vamos analisar a interação com o ChatGPT para descobrir como usar uma ferramenta dessas, gratuitamente, com um projeto em PHP.

Comecei com um prompt projetado para obter informações sobre quais bibliotecas forneceriam a funcionalidade que eu queria. Uma biblioteca (para aqueles que estão lendo e não são programadores) é um conjunto de código a que um programador pode ter acesso e que realiza grande parte do trabalho pesado para um propósito específico. Uma grande parte da programação moderna é encontrar e escolher as bibliotecas certas. Portanto, este é um bom ponto de partida.

Também: Usei o ChatGPT para escrever a mesma rotina em 12 principais linguagens de programação. Veja como ele se saiu

Neste caso, estou analisando blocos de código escritos por outras pessoas que irão resumir texto. Aqui está meu primeiro prompt:

Descreva dez bibliotecas de IA de código aberto diferentes (e as linguagens com as quais elas funcionam) que eu possa usar para gerar um resumo do conteúdo principal de qualquer página da web, ignorando anúncios ou materiais incorporados.

Isso me deu exatamente o que eu queria, incluindo uma menção às ofertas da OpenAI. Acho que a OpenAI seria ótima aqui, mas para este projeto hipotético, não quero incluir taxas da API no orçamento. Então, vou refinar a pergunta.

Alguma delas é gratuita?

O ChatGPT foi cauteloso em sua resposta. Aqui está o que ele disse: “Sim, todas as dez dessas bibliotecas de IA são de código aberto e gratuitas para uso. No entanto, algumas delas podem ter limites de uso ou exigir pagamento para acesso a recursos ou funcionalidades adicionais.” Portanto, com base nisso, esclareci minha consulta.

Quais dessas bibliotecas não têm limites de uso e não exigem nenhum pagamento ou licenciamento adicional?

Observe como isso é muito uma conversa. Não preciso fazer novamente a pergunta original. Estou apenas aprofundando da mesma forma que faria se tivesse um especialista ao meu lado e estivesse buscando esclarecimentos. Neste caso, o ChatGPT me deu oito opções de bibliotecas, mas nenhuma delas mencionou a linguagem PHP na qual eu planejava programar. Então, aqui está o próximo prompt:

Dessas 8 bibliotecas, posso usar alguma com PHP?

Ele retornou três bibliotecas, mas eu não estava certo sobre o que cada uma fazia. Então, outra pergunta:

Qual é a diferença entre Sumy, Gensim e NLTK?

Ainda não estava certo, então esclareci meu plano de uso e depois perguntei:

Se eu quiser criar resumos de artigos de notícias em páginas da web, qual biblioteca funcionaria melhor?

A resposta que recebi foi clara e promissora: “Sumy é especificamente projetada para sumarização de texto, que é a tarefa de criar um resumo que capture as informações mais importantes de um texto.” Então, agora era hora de ver o que estava envolvido em usá-la com PHP. Fiz minha última pergunta para esta parte do projeto:

Você pode explicar como usar o Sumy a partir do PHP?

Sinta-se à vontade para experimentar no seu computador e colar esses comandos em sua instância do ChatGPT. Observe que, no passo 1, decidi em qual módulo do programa eu buscaria ajuda. Em seguida, neste passo, tive uma conversa com o ChatGPT para decidir qual biblioteca usar e como integrá-la ao meu projeto.

Também: Os melhores chatbots de IA: ChatGPT e outras alternativas interessantes para experimentar

Isso pode não parecer programação, mas eu garanto que é. Programação não se resume a digitar linhas de código em uma página. Programação é descobrir como integrar todos os recursos e sistemas diversos e como se comunicar com os vários componentes da sua solução. Aqui, o ChatGPT me ajudou a fazer essa análise de integração.

A propósito, fiquei curioso para saber se o Bard do Google poderia ajudar da mesma forma. O Bard não consegue escrever código de fato, mas forneceu algumas ideias extras sobre o aspecto de planejamento da programação em relação às respostas do ChatGPT. Portanto, não hesite em usar várias ferramentas para obter as respostas que você deseja. Aqui está essa história: Bard vs. ChatGPT: O Bard pode ajudar você a programar? Desde que escrevi aquele artigo, o Google adicionou algumas capacidades de programação ao Bard, mas elas não são tão boas assim. Você pode ler sobre isso aqui: Testei as novas habilidades de programação do Google Bard. Não foi muito bem.

A programação vem a seguir.

3. Peça para o ChatGPT escrever código de exemplo

Ok, vamos dar uma pausa aqui. Este artigo é intitulado “Como usar o ChatGPT para escrever código”. E é isso que faremos! Mas estamos realmente pedindo ao ChatGPT que escreva código de exemplo. Espera aí. O quê?

Também: O que é o GPT-4? Aqui está tudo o que você precisa saber

Vamos deixar claro. A menos que você esteja escrevendo uma função muito pequena (como o classificador/aleatorizador de linhas que o ChatGPT escreveu para minha esposa), o ChatGPT não conseguirá escrever seu código final. Primeiro, você terá que mantê-lo. O ChatGPT é péssimo em modificar código já escrito. Péssimo, no sentido de que ele simplesmente não faz isso. Portanto, para obter um novo código, você precisa pedir ao ChatGPT que gere algo novo. Como eu descobri anteriormente, mesmo que sua solicitação seja virtualmente idêntica, o ChatGPT pode alterar o que ele te dá de maneiras muito inesperadas.

Então, resumindo: o ChatGPT não consegue manter ou ajustar seu código.

Isso significa que você precisa fazer isso sozinho. Como sabemos, a primeira versão de um código raramente é o código final. Portanto, mesmo que você espere que o ChatGPT gere o código final, ele realmente será apenas um ponto de partida, no qual você precisa levá-lo à conclusão, integrá-lo ao seu projeto maior, testá-lo, aperfeiçoá-lo, depurá-lo e assim por diante.

Também: Pedi ao ChatGPT para escrever um episódio curto de Star Trek. E ele conseguiu

Mas isso não significa que o código de exemplo não seja útil. Muito pelo contrário. Vamos dar uma olhada em um comando que escrevi com base no projeto que descrevi anteriormente. Aqui está a primeira parte:

Crie uma função em PHP chamada summarize_article.

Como entrada, summarize_article receberá uma URL de um artigo em um site de notícias, como ENBLE.com ou Reuters.com.

Estou dizendo ao ChatGPT qual linguagem de programação ele deve usar. Também estou fornecendo a entrada, mas, ao fazer isso, estou fornecendo dois sites como exemplos para ajudar o ChatGPT a entender o estilo do artigo. Sinceramente, não tenho certeza se o ChatGPT ignorou essa parte da orientação. Em seguida, vou dizer a ele como fazer a maior parte do trabalho:

Dentro da summarize_article, recupere o conteúdo da página da web fornecida pela URL. Usando a biblioteca Sumy dentro do PHP e quaisquer outras bibliotecas necessárias, extraia o corpo principal do artigo, ignorando anúncios ou materiais incorporados, e resuma-o em aproximadamente 50 palavras. Certifique-se de que o resumo consista em frases completas. Se necessário, você pode ultrapassar as 50 palavras para concluir a última frase.

Isso é muito semelhante à forma como eu instruiria um funcionário. Eu gostaria que essa pessoa soubesse que não está restrita apenas ao Sumy. Se precisasse de outra ferramenta, eu queria que a utilizasse.

Também: Como obter uma correspondência perfeita de rostos usando o Midjourney AI

Também especifiquei um número aproximado de palavras para criar limites para o que eu queria como resumo. Uma versão posterior da rotina pode levar esse número como parâmetro. Em seguida, terminei dizendo o que eu queria como resultado:

Uma vez que o processamento estiver completo, o código summarize_article deve retornar o resumo em texto simples.

O código resultante é bastante simples. O ChatGPT chamou outra biblioteca (Goose) para recuperar o conteúdo do artigo. Ele então passou isso para o Summy com um limite de 50 palavras e depois retornou o resultado. Isso é tudo. Mas uma vez que os conceitos básicos estão escritos, é apenas uma questão de programação para voltar e adicionar ajustes, personalizar o que é passado para as duas bibliotecas e fornecer os resultados.

Um ponto interessante a ser observado. O ChatGPT criou uma chamada de exemplo para a rotina que ele escreveu, usando uma URL posterior a 2021 (quando o conjunto de dados do ChatGPT termina).

https://www.reuters.com/business/retail-consumer/teslas-musk-says-fremont-california-factory-may-be-sold-chip-shortage-bites-2022-03-18/

Verifiquei essa URL tanto no site da Reuters quanto no Wayback Machine, e ela não existe. O ChatGPT inventou isso.

Perguntas frequentes

O ChatGPT substitui programadores?

Ainda não – ou, pelo menos, ainda não. O ChatGPT programa no nível de um estudante talentoso do primeiro ano de programação, mas ele é preguiçoso (como esse estudante do primeiro ano). Ele pode reduzir a necessidade de programadores iniciantes, mas no nível atual, acho que ele apenas facilitará a vida dos programadores iniciantes (e até mesmo dos programadores com mais experiência) para escrever código e procurar informações. Certamente é uma economia de tempo, mas há poucos projetos de programação que ele pode fazer sozinho – pelo menos por enquanto. Em 2030? Quem sabe.

Como obter respostas de programação no ChatGPT?

Basta perguntar. Você viu acima como usei um diálogo de discussão interativo para filtrar as respostas que eu queria. Ao trabalhar com o ChatGPT, não espere que uma pergunta resolva magicamente todo o seu trabalho. Mas use o ChatGPT como um ajudante e recurso, e ele lhe dará muitas informações muito úteis. Claro, teste essas informações – porque, como John Schulman, um dos fundadores da OpenAI, diz: “Nossa maior preocupação era a factualidade, porque o modelo gosta de fabricar coisas”.

O ChatGPT é confiável para programação? Posso confiar no código que ele gera?

Ah, de jeito nenhum. Mas você também não pode confiar no código escrito por programadores humanos. Certamente, não confio em nenhum código que escrevo. O código sai do processo de criação de código incrivelmente falho. Sempre há bugs. Antes de enviar, você precisa testar, testar e testar novamente. Em seguida, teste alfa com algumas vítimas escolhidas. Em seguida, teste beta com sua comunidade de usuários mais ampla. Mesmo depois de tudo isso, ainda haverá bugs. Só porque uma IA está brincando com essa coisa de programar, não significa que ela possa fazer código sem falhas. Não confie. Sempre verifique. E ainda assim você não terá um código totalmente livre de bugs. Essa é a natureza do universo.

Se eu usar o ChatGPT para escrever meu código, quem é o proprietário?

Acontece que ainda não há muitos precedentes legais para responder definitivamente a essa pergunta. Os Estados Unidos, Canadá e Reino Unido requerem que algo que seja protegido por direitos autorais tenha sido criado por mãos humanas, então o código gerado por uma ferramenta de IA pode não ser protegido por direitos autorais. Também existem questões de responsabilidade com base na origem do código de treinamento e como o código resultante é usado. A ENBLE fez uma análise profunda sobre esse tópico, conversou com especialistas jurídicos e produziu os seguintes três artigos. Se você está preocupado com esse problema (e se está usando IA para ajudar com o código, você deve estar), recomendo que você os leia.

  • Quem é o proprietário do código? Se a IA do ChatGPT ajuda a escrever seu aplicativo, ele ainda pertence a você?
  • Se você usar código gerado por IA, qual é a exposição à responsabilidade?
  • Uma questão espinhosa: quem é o dono do código, das imagens e das narrativas geradas por IA?

Quais linguagens de programação o ChatGPT conhece?

Maioria deles. Acabei me distraindo muito tentando isso. Testei linguagens modernas comuns, como PHP, Python, Java, Kotlin, Swift, C# e outras. Mas então tive que escrever código em linguagens obscuras da era das trevas, como COBOL, Fortran, Forth, LISP, ALGOL, RPG (o gerador de programa de relatório, não o jogo de interpretação de papéis) e até mesmo linguagem assembly IBM/360.

Como cereja do bolo, dei a ele esta tarefa:

Escreva uma sequência que exiba ‘Olá, mundo’ em luzes piscantes ASCII no painel frontal de um PDP 8/e.

O PDP 8/e foi o meu primeiro computador e o ChatGPT realmente me deu instruções sobre como alternar um programa usando interruptores no painel frontal. Fiquei impressionado, alegre e um pouco assustado.

Também: Como usar o ChatGPT para resumir um livro, artigo ou trabalho de pesquisa

Qual é a conclusão? O ChatGPT pode ser uma ferramenta muito útil. Apenas não atribua superpoderes a ele. Ainda.


Você pode acompanhar as atualizações diárias do meu projeto nas redes sociais. Não deixe de me seguir no Twitter em @DavidGewirtz, no Facebook em Facebook.com/DavidGewirtz, no Instagram em Instagram.com/DavidGewirtz e no YouTube em YouTube.com/DavidGewirtzTV.