为什么PHP开发者需要ChatGPT?
\n\n想象一下:您正在用PHP编写一个网站,突然发现您的用户缺少一个“智能”助手。不是一个只有预设答案的简单聊天,而是一个真正的人工智能,能够编写代码、翻译文本、生成创意,或者只是进行有意义的对话。听起来像科幻小说?其实不然。
\n\n如今,集成ChatGPT API到PHP并不是什么高深技术,而是任何熟悉该语言基础的开发者都能掌握的常规任务。我将向您证明这一点。
\n\n在本文中,我们不仅仅是复制文档中的几行代码。我们将深入探讨如何正确发送请求、处理响应、管理对话上下文,并且不让服务器“崩溃”。我们开始吧!
\n\n开始之前我们需要什么?
\n\n在编写代码之前,让我们确保您已具备所有必要条件:
\n\n- \n
- PHP 8.0+ — 在较旧版本上,cURL和JSON可能会出现问题。 \n
- cURL扩展 — 在php.ini中启用(通常默认已启用)。 \n
- OpenAI API密钥 — 在platform.openai.com注册,进入API keys部分并创建一个新的密钥。 \n
- 一点点耐心 — 有时API不会立即响应,尤其是在处理复杂请求时。 \n
重要提示:请安全保管您的API密钥。切勿将其直接插入可能进入公共仓库的代码中。请使用.env文件或服务器环境变量。
用PHP编写第一个ChatGPT请求
\n\n我们从最简单的开始:发送一条消息并获取回复。这是所有后续API工作的基础。
\n\n<?php\n// 配置\n$apiKey = 'sk-您的超级密钥';\n$url = 'https://api.openai.com/v1/chat/completions';\n\n// 请求数据\n$data = [\n 'model' => 'gpt-3.5-turbo', // 如果有权限,可以使用gpt-4\n 'messages' => [\n [\n 'role' => 'user',\n 'content' => '用中文讲一个关于程序员的笑话'\n ]\n ],\n 'temperature' => 0.7, // 值越高,回答越有创意\n 'max_tokens' => 500 // 回答的最大长度\n];\n\n// 初始化cURL\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n 'Content-Type: application/json',\n 'Authorization: Bearer ' . $apiKey\n]);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\n\n// 发送请求\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\n// 处理响应\nif ($httpCode === 200) {\n $result = json_decode($response, true);\n $reply = $result['choices'][0]['message']['content'];\n echo "ChatGPT说: " . $reply;\n} else {\n echo "错误!HTTP代码: " . $httpCode . "<br>";\n echo "服务器响应: " . $response;\n}\n?>\n\n运行了吗?恭喜您,您刚刚完成了第一次ChatGPT API到PHP的集成!如果一切正确,您将看到神经网络讲的一个有趣笑话。
\n\n逐行分析代码
\n\n让我们看看这里发生了什么,以便您可以轻松地将此代码适应到自己的任务中。
\n\n请求结构
\n\nOpenAI API期望我们提供一个包含几个必填字段的JSON:
\n\n- \n
model— 哪个模型将回答。gpt-3.5-turbo是大多数任务的最佳选择:快速且便宜。gpt-4更智能,但更贵且更慢。 \n messages— 消息数组。每条消息都有role(system, user, assistant)和content(文本)。 \n temp