PHP与AI:ChatGPT作为您的新程序员同事

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

当PHP遇见AI:为什么这行得通

\n\n

想象一下:您正在用PHP编写代码,突然出现了一位同事,他从不睡觉,不要求薪水,并且可以在几秒钟内为上千种商品生成描述、撰写客户邮件,甚至帮助调试复杂的SQL查询。听起来像科幻小说?其实不然。这就是将ChatGPT集成到PHP项目中的现实。

\n\n

PHP长期以来一直是Web领域的“工作马”,但随着AI的到来,它获得了新的生命力。不再需要手动编写大量模板代码——神经网络接管了日常琐事,而您可以专注于架构。在本文中,我们将探讨如何将ChatGPT连接到您的PHP应用程序,并以最实用的方式实现。

\n\n

开始前需要准备什么?

\n\n

在深入代码之前,请确保您具备以下条件:

\n\n
    \n
  • PHP 8.0+ — 用于使用现代特性(类型化、属性)。
  • \n
  • cURL — 用于向OpenAI API发送请求。
  • \n
  • OpenAI API密钥 — 在platform.openai.com注册并创建密钥。
  • \n
  • Composer — 用于方便管理依赖项(也可以不使用)。
  • \n
\n\n

准备好了吗?开始吧。

\n\n

基本连接:向ChatGPT发送第一个请求

\n\n

我们从最简单的开始——向ChatGPT发送消息并获取响应。OpenAI使用REST API,因此我们需要一个普通的HTTP请求。以下是一个最小的工作类:

\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("API error: $httpCode - $response");\n        }\n\n        $result = json_decode($response, true);\n        return $result['choices'][0]['message']['content'] ?? '';\n    }\n}\n\n// 使用示例\n$client = new ChatGPTClient('your-api-key-here');\necho $client->ask('为PHP网站写一个简短的问候语');
\n\n

这段代码是基础。请注意:我们使用gpt-3.5-turbo——它便宜且快速。对于复杂任务,可以切换到gpt-4,但成本更高。

\n\n

错误处理和限制

\n\n

实际项目需要更可靠的处理。在遇到429错误(请求过多)时添加重试和日志记录:

\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)); // 指数延迟\n                continue;\n            }\n            throw $e;\n        }\n    }\n}
\n\n

高级场景:从内容生成到数据分析

\n\n

现在基础已经就绪,让我们看看Cha

博客

书籍推荐