当前位置:首页>php>PHP + AI几十行代码实现智能问答php空间站

PHP + AI几十行代码实现智能问答php空间站

  • 2026-09-09 04:30:41
PHP + AI几十行代码实现智能问答php空间站

每隔一段时间,就能够看到有人在问:

PHP 是不是已经过时了?

特别是 AI 爆发以后,大家讨论最多的是 Python、JavaScript,PHP 好像越来越没有存在感。

但真实情况是:PHP 依然运行着大量网站、商城、管理后台和业务系统。

PHP 不需要自己训练大模型。

它只需要通过 API 接入 AI,就能让原有系统快速拥有:

  • 智能客服
  • 内容生成
  • 文章摘要
  • 商品描述优化
  • SQL 生成
  • 代码解释
  • 知识库问答
  • 工单自动分类

今天,我们就用 PHP 写一个简单的 AI 问答接口。

一、项目准备

本次任务需要:

  • PHP 8.1 或更高版本
  • PHP cURL 扩展
  • 一个兼容 OpenAI 接口格式的 AI 服务
  • 对应的 API Key

建议不要把 API Key 直接写进代码。

可以先配置环境变量:

export AI_API_KEY=”你的API密钥”

然后创建一个 ai.php 文件。

二、编写 PHP AI 客户端

<?phpclassAiClient{ public function__construct( private readonly string $apiKey, private readonly string $baseUrl, private readonly string $model ) { } public functionchat(string$question): string { $payload = [ 'model' => $this->model, 'messages' => [ [ 'role' => 'system', 'content' => '你是一名专业的 PHP 编程助手,请用简洁、准确的中文回答。', ], [ 'role' => 'user', 'content' => $question, ], ], 'temperature' => 0.7, ]; $curl = curl_init($this->baseUrl . '/chat/completions'); curl_setopt_array($curl, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $this->apiKey, 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode( $payload, JSON_UNESCAPED_UNICODE ), CURLOPT_TIMEOUT => 60, ]); $response = curl_exec($curl); if($response === false) { throw new RuntimeException( '请求失败:' . curl_error($curl) ); } $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); $result = json_decode($response, true); if($statusCode >= 400) { $message = $result['error']['message'] ?? '未知错误'; throw new RuntimeException('AI 接口错误:' . $message); } return $result['choices'][0]['message']['content'] ?? 'AI 暂时没有返回内容'; }}

这段代码完成了三个核心工作:

    三、调用 AI 接口

    继续在文件底部加入:

    $apiKey = getenv('AI_API_KEY');if(!$apiKey) { exit('请先配置 AI_API_KEY 环境变量');}$client = new AiClient( apiKey: $apiKey, baseUrl: 'https://你的接口地址/v1', model: '你的模型名称');try { $answer = $client->chat( '请解释 PHP 中 interface 和 abstract class 的区别' ); echo $answer;} catch(Throwable $exception) { echo '程序运行失败:' . $exception->getMessage();}

    运行:

    php ai.php

    如果配置正确,AI 就会返回关于 PHP 接口和抽象类的解释。

    至此,我们已经用 PHP 完成了一个最基础的 AI 问答程序。

    四、它为什么值得做?

    你可能会觉得:

    “这不就是调用了一个接口吗?”

    没错。

    但真正有价值的地方,恰恰不是调用接口本身,而是把 AI 接入已有业务。

    假设你已经有一个 PHP 商城,可以让 AI:

    • 根据商品参数自动生成介绍;
    • 根据用户评价提炼商品优缺点;
    • 自动回复常见售后问题。

    假设你维护的是企业管理系统,可以让 AI:

    • 总结会议记录;
    • 分析客户需求;
    • 对工单进行分类;
    • 将自然语言转换成查询条件。

    假设你运营的是内容网站,还可以让 AI:

    • 生成文章摘要;
    • 提取关键词;
    • 检查错别字;
    • 推荐相关文章。

    AI 负责理解和生成,PHP 负责用户、权限、数据与业务流程。

    两者并不冲突,反而非常适合组合使用。

    五、正式项目还需要注意什么?

    演示代码距离生产环境还有一段距离。

    真正上线时,至少要考虑下面几个问题。

    1. 保护 API Key

    不要把密钥写进代码,更不要提交到 Git 仓库。

    建议使用:

    • 环境变量
    • .env 配置文件
    • 云平台密钥管理服务

    2. 设置超时与异常处理

    AI 接口可能超时、限流或者临时不可用。

    程序必须设置连接超时和请求超时,并准备友好的错误提示。

    3. 控制调用成本

    不要让用户无限制调用。

    可以根据登录用户设置:

    • 每分钟调用次数
    • 每日额度
    • 最大输入长度
    • 最大输出长度

    4. 保存必要日志

    建议记录:

    • 请求时间
    • 用户编号
    • 模型名称
    • Token 消耗
    • 响应耗时
    • 错误信息

    但要注意:日志中不要保存密码、密钥和敏感隐私数据。

    5. 防止提示词攻击

    如果 AI 可以读取数据库、操作文件或者调用业务工具,就不能直接执行模型生成的内容。

    所有高风险操作都必须经过:

    • 参数验证
    • 权限检查
    • 白名单限制
    • 人工确认

    AI 可以提出建议,但最终权限仍然应该掌握在业务系统手中。

    六、PHP 还有机会吗?

    我的答案是:

    PHP 当然还有机会,但只会写传统增删改查,可能不够了。

    接下来的 PHP 开发者,不一定要研究如何训练大模型,却应该学会:

    • 调用 AI 接口
    • 编写和管理提示词
    • 实现流式输出
    • 搭建知识库问答
    • 使用向量数据库
    • 设计安全的 AI 工具调用
    • 将 AI 融入真实业务

    语言只是工具。能够解决问题、创造价值,才是开发者真正的竞争力。

    我们下一站见。


    最新文章

    随机文章