PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明

PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明

AI 现在火得不行,ChatGPT 这些工具让我们开发者能很轻松地给应用加上智能功能。如果你在用 PHP,想让自己的项目也能"聊天"、"思考",这篇文章就手把手教你怎么通过 OpenAI 的 API 把 ChatGPT 接入 PHP 应用。

原文链接- PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明

为什么 PHP 也要上 AI?

PHP 跑着全世界一大半的网站,从小博客到大公司的系统都在用。现在给 PHP 加上 ChatGPT,你的应用马上就能有这些酷炫功能:

  • 能聊天的客服机器人
  • 自动写文案、生成内容
  • 智能搜索和推荐
  • 引导用户操作
  • AI 帮你填表单、写代码

不管你做的是公司内部工具还是对外的产品,ChatGPT 都能让你的应用瞬间智能化。

开始之前需要准备什么

撸代码之前,先检查一下你有没有这些东西:

  • PHP 7.4 或更新版本
  • 开启了 cURL 扩展(基本都有)
  • OpenAI 账号和 API 访问权限:platform.openai.com

注册登录 OpenAI 后,去拿个 API key。后面 PHP 调用接口都要用这个 key 来认证。

第一个 PHP 调用 ChatGPT 的例子

咱们先来个最简单的例子,看看 PHP 怎么给 ChatGPT 发消息并拿到回复。

php 复制代码
<?php

$apiKey = 'YOUR_OPENAI_API_KEY';

$data = [
    "model" => "gpt-4", // 或 "gpt-3.5-turbo"
    "messages" => [
        ["role" => "system", "content" => "你是一个有用的助手。"],
        ["role" => "user", "content" => "法国的首都是什么?"]
    ]
];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.openai.com/v1/chat/completions");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer $apiKey"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
echo $result['choices'][0]['message']['content'];
?>

这段代码做了什么:

  • 把用户的问题发给 ChatGPT
  • 把 AI 的回答显示出来
  • 想问什么都可以,随便改

实际项目中怎么用

说了这么多理论,现在看看实际项目里能怎么玩:

做个智能客服

用途:用户有问题直接问,AI 秒回答,不用真人客服天天回复重复问题。

代码示例

php 复制代码
<?php

$userMessage = $_POST['message'];

$data = [
  "model" => "gpt-4",
  "messages" => [
    ["role" => "system", "content" => "你是在线电子产品商店的客服代表。请简洁而有用地回答问题。"],
    ["role" => "user", "content" => $userMessage]
  ]
];

前端配合:网页上弄个聊天窗口(HTML + JS),用户发消息就 POST 到这个 PHP 文件。

自动写文案

用途:让 AI 帮你写营销文案、博客大纲、产品介绍,再也不用抓破脑袋想文案。

代码示例

php 复制代码
<?php

$productName = "EcoSmart可重复使用水瓶";
$descriptionGoal = "生成SEO友好的产品描述。";

$data = [
  "model" => "gpt-4",
  "messages" => [
    ["role" => "system", "content" => "你是一位撰写引人注目的电商产品描述的内容营销专家。"],
    ["role" => "user", "content" => "为以下产品写一个100字的描述:$productName"]
  ]
];

智能表单助手

用途:用户说个大概,AI 帮忙写详细的简历、求职信什么的,省事儿。

代码示例

php 复制代码
<?php

$userInput = "拥有5年React和Vue.js经验的前端开发工程师";

$data = [
  "model" => "gpt-4",
  "messages" => [
    ["role" => "system", "content" => "你是一位职业顾问,帮助用户撰写专业简历。"],
    ["role" => "user", "content" => "基于这个总结,创建一个2句话的个人简介:$userInput"]
  ]
];

效果:生成的内容直接用 JS 填到表单里,用户一键搞定。

智能搜索

用途:用户用大白话问问题,AI 从你的文档库里找答案,比关键词搜索聪明多了。

怎么搞

  1. 用 OpenAI 的 Embeddings API 把你的文档都转成向量
  2. 存到向量数据库里(Pinecone、Weaviate、PostgreSQL + pgvector 都行)
  3. 用户问问题时,PHP 把问题也转成向量,找最相似的文档,然后连同问题一起发给 ChatGPT

消息示例

php 复制代码
<?php

// 用户询问:"如何重置我的密码?"
$context = "文档:要重置密码,请转到设置页面并点击'忘记密码'。";
$userQuestion = "如何重置我的密码?";

$data = [
  "model" => "gpt-4",
  "messages" => [
    ["role" => "system", "content" => "你根据公司文档回答问题。"],
    ["role" => "user", "content" => "文档:$context \n\n问题:$userQuestion"]
  ]
];

代码助手

用途:看不懂代码?有 bug?想要 AI 帮你写代码?直接问就行。

代码示例

php 复制代码
<?php

$userCode = "function add(a, b) { return a + b; }";

$data = [
  "model" => "gpt-4",
  "messages" => [
    ["role" => "system", "content" => "你是一位用简单术语解释代码的专业软件工程师。"],
    ["role" => "user", "content" => "解释这个JavaScript函数的作用:\n$userCode"]
  ]
];

还能这样玩

  • 加上代码高亮让回答更好看
  • role: assistant让 AI 提供代码优化建议

写在最后

PHP 接入 ChatGPT 其实没想象中那么复杂,几行代码就能让你的应用变聪明。用户体验立马上一个台阶,工作效率也能提升不少。

现在 AI 这么火,不用就亏了。PHP + OpenAI 这个组合,绝对是未来 Web 开发的趋势。

相关推荐
李慕婉学姐20 分钟前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_7400437328 分钟前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
招风的黑耳2 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
Miss_Chenzr2 小时前
Springboot优卖电商系统s7zmj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
期待のcode2 小时前
Springboot核心构建插件
java·spring boot·后端
2501_921649492 小时前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融
serendipity_hky2 小时前
【SpringCloud | 第5篇】Seata分布式事务
分布式·后端·spring·spring cloud·seata·openfeign
五阿哥永琪3 小时前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python
Victor3563 小时前
Netty(16)Netty的零拷贝机制是什么?它如何提高性能?
后端
Victor3563 小时前
Netty(15)Netty的线程模型是什么?它有哪些线程池类型?
后端