PHP e IA: ChatGPT como seu novo colega programador

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Quando o PHP encontra a IA: por que isso funciona

\n\n

Imagine: você está escrevendo código em PHP e, de repente, ganha um colega que nunca dorme, não pede salário e consegue gerar em segundos a descrição de mil produtos, escrever um e-mail para o cliente ou até ajudar a depurar uma consulta SQL complexa. Parece ficção científica? Pois é realidade com a integração do ChatGPT em projetos PHP.

\n\n

O PHP sempre foi o "cavalo de batalha" da web, mas com a chegada da IA, ele ganhou um novo fôlego. Não é mais preciso escrever toneladas de código repetitivo manualmente — a rede neural cuida da rotina, enquanto você foca na arquitetura. Neste artigo, vamos mostrar como conectar o ChatGPT à sua aplicação PHP, de forma prática e direta.

\n\n

O que você precisa para começar?

\n\n

Antes de mergulhar no código, verifique se você tem:

\n\n
    \n
  • PHP 8.0+ — para usar recursos modernos (tipagem, atributos).
  • \n
  • cURL — para enviar requisições à API da OpenAI.
  • \n
  • Chave de API da OpenAI — cadastre-se em platform.openai.com e crie uma chave.
  • \n
  • Composer — para gerenciar dependências (embora seja possível sem ele).
  • \n
\n\n

Pronto? Vamos nessa.

\n\n

Conexão básica: enviando a primeira requisição ao ChatGPT

\n\n

Vamos começar pelo mais simples — enviar uma mensagem ao ChatGPT e receber a resposta. A OpenAI usa uma API REST, então precisamos apenas de uma requisição HTTP. Veja a classe mínima para funcionar:

\n\n
<?php\n\nclass ChatGPTClient {\n    private string $apiKey;\n    private string $apiUrl = 'https://api.openai.com/v1/chat/completions';\n\n    public function __construct(string $apiKey) {\n        $this->apiKey = $apiKey;\n    }\n\n    public function ask(string $message): string {\n        $data = [\n            'model' => 'gpt-3.5-turbo',\n            'messages' => [\n                ['role' => 'user', 'content' => $message]\n            ],\n            'temperature' => 0.7\n        ];\n\n        $ch = curl_init($this->apiUrl);\n        curl_setopt_array($ch, [\n            CURLOPT_RETURNTRANSFER => true,\n            CURLOPT_POST => true,\n            CURLOPT_HTTPHEADER => [\n                'Content-Type: application/json',\n                'Authorization: Bearer ' . $this->apiKey\n            ],\n            CURLOPT_POSTFIELDS => json_encode($data)\n        ]);\n\n        $response = curl_exec($ch);\n        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n        curl_close($ch);\n\n        if ($httpCode !== 200) {\n            throw new \\RuntimeException("Erro na API: $httpCode - $response");\n        }\n\n        $result = json_decode($response, true);\n        return $result['choices'][0]['message']['content'] ?? '';\n    }\n}\n\n// Uso\n$client = new ChatGPTClient('sua-chave-de-api-aqui');\necho $client->ask('Escreva uma saudação curta para um site em PHP');
\n\n

Este código é a base. Observe que usamos gpt-3.5-turbo — é barato e rápido. Para tarefas mais complexas, você pode trocar para gpt-4, mas o custo é maior.

\n\n

Tratamento de erros e limites

\n\n

Projetos reais exigem um tratamento mais robusto. Adicione retentativas para o erro 429 (muitas requisições) e logging:

\n\n
public function askWithRetry(string $message, int $maxRetries = 3): string {\n    for ($attempt = 1; $attempt <= $maxRetries; $attempt++) {\n        try {\n            return $this->ask($message);\n        } catch (\\RuntimeException $e) {\n            if (str_contains($e->getMessage(), '429') && $attempt < $maxRetries) {\n                sleep(pow(2, $attempt)); // espera exponencial\n                continue;\n            }\n            throw $e;\n        }\n    }\n}
\n\n

Cenários avançados: da geração de conteúdo à análise de dados

\n\n

Agora que a base está pronta, vamos ver como o Cha

Blogs

Book Recommendations