Pedi ao ChatGPT para escrever um plugin do WordPress que eu precisava. Ele o fez em menos de 5 minutos

gettyimages-1246766124.jpg

Não quero ser demasiado direto, mas estou bastante assustado. Como experiência, pedi ao ChatGPT para escrever um plugin que pudesse poupar algum tempo à minha esposa ao gerir o seu website. Escrevi uma breve descrição e o ChatGPT escreveu tudo: interface de utilizador, 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 abordar isso daqui a alguns minutos. Primeiro, deixe-me levá-lo através da experiência e do que aconteceu.

A necessidade

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

A minha esposa é a proprietária de um site de comércio eletrónico baseado em WordPress, focado num hobby popular. Ela também é a administradora de um grupo bastante ativo no Facebook para os clientes do seu site. Todos os meses ela cria uma lista de nomes aleatória e faz uma animação com um rodízio virtual, utilizando essa lista, para o grupo do Facebook. Ela tem utilizado um site na internet que faz um bom trabalho na aleatorização das linhas, mas cobra mais do que vale a pena pelo exportar da lista.

Também: Será que os detetores de IA conseguem nos proteger do ChatGPT? Experimentei 3 ferramentas online para descobrir

Enquanto a observava lutar para obter os nomes aleatórios de volta, pensei que poderia ser útil se eu escrevesse um plugin rápido do WordPress que pudéssemos instalar em seu site. Ela está no painel todos os dias, então ter isso como uma ferramenta seria útil.

Mas mesmo um plugin simples demoraria alguns dias para ser desenvolvido, considerando os elementos de interface do usuário e o código lógico, e eu estou bem ocupado com projetos no momento.

E então eu pensei no ChatGPT. Houve alguma discussão sobre o ChatGPT como uma ferramenta de programação na mídia, então decidi experimentar.

O prompt

A chave para fazer com que o ChatGPT gere qualquer coisa é uma prompt cuidadosamente escrita. No caso de programação, pense nisso como ser um gerente ou cliente. Você deve descrever claramente o que precisa para obter o que deseja. Comecei com uma prompt muito básica, apenas para ver se funcionaria. Aqui está a prompt que usei:

código.jpg

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

Dentro de um minuto, gerou o código que vê à direita. Copiei o código gerado para um ficheiro .php, coloquei-o numa pasta com o mesmo nome raiz do ficheiro .php, comprimi-o e carreguei-o para o servidor dela. Funcionou.

Também: Hackers russos estão tentando invadir o ChatGPT, diz a 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 um novo recurso: certifique-se de que nomes duplicados não fiquem lado a lado.

Para a sua aplicação, às vezes ela precisará incluir o nome de alguém numa lista várias vezes. Mas ela não queria que essas duplicatas se agrupassem.

Modifiquei a minha pergunta 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 idênticos um ao outro.

Incluí a frase "a menos que não haja outra opção" e o requisito de contagem idêntica porque queria garantir que todos os nomes fossem incluídos e estava preocupado que priorizasse a necessidade de nenhum nome estar lado a lado em vez de manter todos os nomes.

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

...sem linhas em branco...

Já me tinha habituado ao tempo de resposta, que era sempre inferior a um minuto. Mais um envio e teste e, novamente, funcionou.

Também: Como utilizar o ChatGPT

Eu queria um recurso 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 que diz "Linha a ser randomizada: " com o número de linhas não vazias no campo de origem. Sob o segundo campo, exiba o texto que diz "Linhas que foram randomizadas: " com o número de linhas não vazias no campo de destino.

Isto funcionou, na sua maioria. Antes de ser executado, o campo de saída mostra uma linha. Mas assim que o processo de aleatorização estiver completo, mostra o número exato de linhas em ambos os campos.

A qualidade do código

No geral, a qualidade do código estava limpa. Apenas estou apresentando 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 para o plugin, bem como a lógica de processamento do plugin.

Colocou as minhas linhas de resumo acima dos campos, mesmo que tenha especificado abaixo, mas isso não é uma grande queixa. É 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: O assistente de escrita do Notion AI pode escrever este artigo?

O código funcionou, mas não incorporou todas as melhores práticas de programação do WordPress. Por exemplo, não sanitizou a entrada do usuário. A comunidade do WordPress é rigorosa sobre a sanitização de entrada para que hackers não possam inserir dados que possam corromper um site - e esse código não possui nada disso.

Como teste posterior, instruí a IA a sanitizar a entrada e ela o fez... até certo ponto. Ela sanitizou a entrada dentro da função PHP, mas não sanitizou a entrada ao chamar o PHP dentro do HTML. Isso teria, com certeza, deixado uma possível brecha para os hackers.

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

Adicionei um requisito final à minha solicitação, pedindo ao AI que dê um nome ao plug-in:

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

Estranhamente, 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 que não estão familiarizados com 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 prompts, eu não especifiquei frontend ou backend, mas a IA escreveu o que eu queria, que era uma interface de painel de controle backend para a ferramenta.

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

Mas desta vez, decidiu escrever o plugin como uma ferramenta de frontend, fazendo com que seja executado através de um shortcode. No WordPress, pode incorporar um shortcode (algo como [linhas aleatórias]) num post e ele irá executar código num plugin. A última versão que a IA produziu deu-me um shortcode, o que teria permitido que a funcionalidade de linhas aleatórias fosse apresentada aos visitantes do site.

Depois disso, o ChatGPT meio que perdeu o fio da meada. Não consegui adicionar recursos adicionais ao plugin original e o ChatGPT basicamente apenas repetia a geração da versão em 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 tarefas que eu dei aos meus estudantes de programação do primeiro ano, quando ensinei na UC Berkeley. Não chega nem perto da complexidade dos plugins do WordPress de código aberto muito, muito maiores que eu mantenho para mais de 50.000 usuários.

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

Na semana passada, quando usei o ChatGPT pela primeira vez para criar o plugin rápido para minha mulher e publiquei um tweet sobre isso, os correspondentes das minhas redes sociais reagiram negativamente. Aqui estão algumas das suas preocupações:

É malévolo? Uma pessoa estava preocupada que a IA incorporasse informações maliciosas (ou pelo menos promocionais) no plugin e um usuário não programador nunca saberia. Mas a verdade é que, se você não é um programador e não consegue ler código, mesmo que contrate outro ser humano, você realmente não sabe o que está dentro. Tudo se resume a confiar na reputação ou fazer com que alguém em quem você confia revise o código. No caso do código produzido no meu experimento, estava limpo.

É o melhor que pode ser? Aqui novamente, as pessoas estavam comparando o código de IA com um padrão diferente até mesmo dos programadores humanos. Sou um bom programador, mas meu código tem bugs. Não é o melhor que pode ser... pelo menos não inicialmente. Mas com humanos, o código melhora ao longo do tempo. Não tenho certeza se uma IA pode pegar um código existente, melhorá-lo, depurá-lo e aprimorá-lo. No entanto, às vezes, as coisas só precisam ser funcionais. Não importa sempre se são os melhores dos melhores. Bom o suficiente muitas vezes é suficiente. E ele gerou um código que era suficientemente bom.

Reduzirá o número de trabalhos de programação para humanos? Quase com certeza. Eu detesto ver uma máquina tomar o emprego de qualquer pessoa (especialmente se for um emprego que eu possa querer). A IA é definitivamente uma opção para projetos rápidos e fáceis, seja na escrita ou na programação. Os salários das pessoas serão impactados, sem dúvida.

Já estudo IA há décadas. Fiz uma tese sobre IA. Mas mesmo com toda essa experiência, esse avanço na 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 agora -- o ChatGPT e seus amigos não são capazes de escrever artigos de análise super detalhados como este, porque eles refletem opiniões, anedotas e anos de experiência. E embora possam provavelmente escrever sub-rotinas e funções para projetos de programação maiores, eles simplesmente não têm capacidade para escrever grandes projetos de programação.

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

Por exemplo, tive que ter 20-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 comerciais 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 em seguida, 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 era o plugin que "criei" para a minha esposa. Mas a inteligência artificial ainda tem um longo caminho a percorrer antes de roubar o trabalho de desenvolvedores e escritores experientes - desde que os clientes desejem o tipo de trabalho que desenvolvedores e escritores experientes produzem. E isso, meus amigos, é algo que me preocupo.

Artigos Relacionados

Ver Mais >>

Desbloqueie o poder da IA com HIX.AI!