Eu pedi ao ChatGPT para escrever um plugin do WordPress que eu precisava. Ele fez isso em menos de 5 minutos

gettyimages-1246766124.jpg

Não para ser muito direto, mas estou mais do que um pouco assustado. Como um experimento, perguntei ao ChatGPT para escrever um plugin que pudesse economizar tempo para minha esposa ao gerenciar seu site. Eu escrevi uma breve descrição e o ChatGPT escreveu tudo: interface do usuário, lógica e tudo mais.

Em menos de cinco minutos.

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

Existem implicações. Vamos falar sobre isso daqui a alguns minutos. Primeiro, deixe-me conduzir você pela experiência e pelo que aconteceu.

A necessidade

linha-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Minha esposa é a proprietária de um site de e-commerce baseado em WordPress focado em um hobby popular. Ela também administra um grupo muito ativo no Facebook para os clientes de seu site. Todos os meses, ela randomiza uma lista de nomes e, em seguida, faz uma animação de roda virtual, usando essa lista randomizada, para o grupo do Facebook. Ela tem usado um site na internet que faz um trabalho justo de randomizar as linhas, mas cobra um pouco mais do que vale a pena para exportar a lista.

Também: Os detectores de IA podem nos salvar do ChatGPT? Eu tentei 3 ferramentas online para descobrir

Ao ver ela lutar para conseguir recuperar os nomes aleatórios, pensei que seria útil se eu escrevesse um plugin rápido para WordPress que pudéssemos instalar em seu site. Ela está no painel de controle todos os dias, então ter isso como uma ferramenta seria útil.

Mas mesmo um plugin simples me levaria alguns dias para escrever, com elementos de interface do usuário e código lógico, e estou bem ocupado com projetos atualmente.

E então eu pensei no ChatGPT. Tem havido algumas discussões sobre o ChatGPT como uma ferramenta de programação na mídia, então decidi experimentá-lo.

O comando

A chave para fazer o ChatGPT gerar algo é um prompt cuidadosamente escrito. No caso da programação, pense nele como sendo um gerente ou cliente. Você precisa descrever claramente o que você precisa para obter o que deseja. Eu comecei com um prompt muito básico, apenas para ver se funcionaria. Aqui está o prompt que eu usei:

código.jpg

Escreva um plugin do WordPress compatível com o PHP 8 que forneça um campo de texto onde uma lista de linhas pode ser colada e um botão, que quando pressionado, randomize as linhas da lista e apresente os resultados em um segundo campo de texto.

Em menos de um minuto, gerou o código que você vê à direita. Eu copiei o código gerado para um arquivo .php, coloquei-o em uma pasta com o mesmo nome de raiz do arquivo .php, compactei e o enviei para o servidor dela. Funcionou.

Também: Hackers russos estão tentando invadir o ChatGPT, diz Check Point

Quando mostrei isso para minha esposa, ela ficou devidamente impressionada e surpresa. Mas então as engrenagens começaram a girar e ela pediu por uma nova funcionalidade: certifique-se de que nomes duplicados não fiquem lado a lado.

Para sua aplicação, às vezes ela precisará incluir o nome de alguém em uma lista várias vezes. Mas ela não quer que essas duplicatas se agrupem.

Eu modifiquei minha solicitação original, adicionando as seguintes condições adicionais:

...garante que duas entradas idênticas não estejam lado a lado (a menos que não haja outra opção)...com o número de linhas enviadas e o número de linhas no resultado sendo idênticos entre si.

Incluí a frase "a menos que não haja outra opção" e o requisito de contagem idêntica porque eu queria garantir que todos os nomes fossem incluídos, e eu estava preocupado que isso priorizasse a necessidade de não ter dois nomes lado a lado em detrimento de manter todos os nomes.

Cerca de 30 segundos depois, eu tinha um novo plugin. Eu o carreguei no servidor e o testei. Funcionou, mas a saída incluía algumas linhas em branco. Então, adicionei esta condição ao meu prompt anterior:

...sem linhas em branco...

Nesse ponto, eu já estava acostumado com o tempo de resposta, que sempre era inferior a um minuto. Mais um upload e teste, e novamente, funcionou.

Também: Como usar o ChatGPT

Eu queria mais uma funcionalidade final, apenas para confirmar quantas linhas foram processadas. Eu queria que o plugin mostrasse uma contagem de linhas para os campos de entrada e saída. Aqui está essa adição de prompt:

...Sob o primeiro campo, exiba o texto dizendo "Linha para randomizar: " com o número de linhas não vazias no campo de origem. Sob o segundo campo, exiba o texto dizendo "Linhas que foram randomizadas: " com o número de linhas não vazias no campo de destino.

Isso funcionou, na maioria das vezes. Antes de executar, o campo de saída mostra uma linha. Mas uma vez concluído o processo de aleatorização, ele mostra o número exato correto de linhas em ambos os campos.

A qualidade do código

No geral, a qualidade do código estava boa. Estou apresentando apenas a resposta original porque, caso contrário, não caberia no artigo. O programa gerou adequadamente o bloco de cabeçalho do WordPress e escreveu a interface do usuário do painel de controle para o plugin, bem como a lógica de processamento do plugin.

Ele colocou minhas linhas de resumo acima dos campos, mesmo que eu tenha especificado abaixo, mas isso não é uma grande reclamação. É o mesmo tipo de erro que um cliente pode receber de um contratante humano e, em seguida, exigir um pouco de retrabalho para corrigir.

Também: Será que o assistente de escrita Notion AI pode escrever este artigo?

A codificação funcionou, mas não incorporou todas as melhores práticas para a programação do WordPress. Por exemplo, não fez a sanitização da entrada do usuário. A comunidade do WordPress é rigorosa quanto à sanitização da entrada para que hackers não possam preencher campos com dados que possam corromper um site - e esse código não tinha nada disso.

Como teste posterior, instruí o Ai a sanitizar a entrada, e ele fez... até certo ponto. Ele sanitizou a entrada dentro da função PHP, mas não sanitizou a entrada ao chamar o PHP dentro do HTML. Isso certamente teria deixado uma brecha para hackers.

Também colocou o item de menu do plugin em Configurações. Provavelmente eu teria colocado em Ferramentas ou dado ao recurso seu próprio item de menu. Como não especifiquei de onde deveria ser invocado, acredito que o ChatGPT tomou uma decisão funcional ao colocar o item de menu onde o fez.

Adicionei um requisito final à minha solicitação, pedindo ao AI para dar um nome ao plugin:

Escreva um plugin do WordPress compatível com o PHP 8 chamado "Robo Randomizer" que...

Curiosamente, a IA me deu um plugin completamente diferente, gerando um plugin que fornece um shortcode em vez de uma interface de painel. Vou explicar isso para usuários não WordPress, porque é interessante.

Ao escrever algo assim, você pode disponibilizá-lo no site para os visitantes (chamado de frontend) ou para aqueles que fazem login no painel do site para manter o lado (o backend). No meu conjunto original de informações, eu não especifiquei frontend ou backend, mas a IA escreveu o que eu queria, que era uma interface de backend, painel de controle para a ferramenta.

Também: A OpenAI está contratando desenvolvedores para melhorar a capacidade do ChatGPT em programação

Mas desta vez, decidiu escrever o plugin como uma ferramenta de frontend, fazendo com que ele execute através de um shortcode. No WordPress, é possível incorporar um shortcode (algo como [randomize lines]) em um post e ele executará o código de um plugin. A última versão produzida pelo AI me deu um shortcode assim, que teria permitido que a função de randomizar linhas fosse apresentada aos visitantes do site.

Depois disso, o ChatGPT acabou meio confuso. Não consegui adicionar recursos adicionais ao plugin original e o ChatGPT acabou principalmente repetindo a geração da versão do shortcode. Claramente, a manutenção de código não é uma das principais habilidades do ChatGPT.

Implicações

Obviamente, este é um plugin simples. É aproximadamente do tamanho das atribuições que dei aos meus alunos de programação do primeiro ano quando lecionei na UC Berkeley. Ele não se compara à complexidade dos plugins do WordPress de código aberto muito, muito maiores que mantenho para mais de 50.000 usuários.

Também: Com chatbots de IA, estamos buscando respostas nos lugares errados?

Na semana passada, quando usei o ChatGPT pela primeira vez para criar o plugin quickie para minha esposa e publiquei um tweet sobre isso, os correspondentes nas minhas redes sociais expressaram suas preocupações. Aqui estão algumas delas:

É maléfico? Uma pessoa estava preocupada que a IA pudesse inserir informações maliciosas (ou pelo menos promocionais) no plugin e um usuário não programador jamais saberia. Mas a verdade é que, se você não é um programador e não consegue ler código, mesmo contratando outra pessoa, você realmente não sabe o que há dentro. Tudo se resume em confiar na reputação ou pedir para alguém em quem você confia analisar o código. No caso do código produzido no meu experimento, ele estava limpo.

Está no seu melhor mesmo? Mais uma vez, as pessoas estavam avaliando o código do AI com um padrão diferente até mesmo do dos programadores humanos. Eu sou um bom programador, mas o meu código tem bugs. Não está no seu melhor... pelo menos não inicialmente. Mas com os humanos, o código melhora com o tempo. Não tenho certeza se uma IA pode pegar um código existente, melhorá-lo, debugá-lo e aprimorá-lo. No entanto, às vezes as coisas só precisam ser funcionais. Nem sempre importa se são os melhores dos melhores. Bom o suficiente muitas vezes é bom o suficiente. E ele gerou um código que era bom o suficiente.

Vai reduzir a quantidade de trabalhos de programação para humanos? Quase sem dúvida. Eu detesto ver uma máquina tomar o emprego de qualquer pessoa (especialmente se for um emprego que eu possa querer). A inteligência artificial é definitivamente uma opção para projetos rápidos e fáceis, seja para escrever ou programar. Os salários das pessoas serão impactados, sem dúvida alguma.

Tenho estudado IA por décadas. Fiz uma tese sobre IA. Mas mesmo com toda essa bagagem, esse aumento em IA generativa de alta qualidade tem sido surpreendente para mim. Dito isso, o que estamos vendo agora é o nível "suficientemente bom" de produtividade. Infelizmente, é isso que muitos clientes exigem.

Mas -- pelo menos por enquanto -- ChatGPT e seus amigos não conseguem escrever artigos super aprofundados de análise como este, pois eles refletem opiniões, anedotas e anos de experiência. E embora eles possam provavelmente escrever sub-rotinas e funções para projetos de programação maiores, eles simplesmente não são capazes de escrever projetos de programação complexos.

Também: A demonstração do concorrente do ChatGPT do Google dá errado

Por exemplo, precisei ter de 20 a 30 reuniões ao longo do último ano com um importante provedor de API para integrar seu serviço ao meu. A maioria dessas reuniões misturou questões de negócios com requisitos técnicos e políticas de licenciamento. Desafio qualquer IA a lidar com, entender as nuances e atender aos requisitos do parceiro nesse tipo de situação burocrática, e ainda ser capaz de produzir módulos de código com os quais todos possam concordar.

Então, sim, estou um pouco assustado com o quão bom o plugin foi que eu "criei" para a minha esposa. Mas a inteligência artificial tem um longo caminho a percorrer antes de começar a substituir o trabalho de desenvolvedores e escritores experientes - desde que os clientes queiram o tipo de trabalho que desenvolvedores e escritores experientes produzem. E isso, meus amigos, é algo com o qual eu me preocupo.

Artigos Relacionados

Ver mais >>

Desbloqueie o poder da IA com HIX.AI!