不能。PHP 无内置 AI 推理能力,仅能通过 HTTP 调用外部大模型服务;其角色是编排者,负责构造严格 JSON 格式 prompt、安全处理输入输出、校验响应字段。
不能。PHP 本身没有内置 AI 推理能力,file_get_contents 或 curl_exec 只能发起 HTTP 请求,真正的模型推理必须由外部服务(如 OpenAI API、Ollama 本地部署、或自建 vLLM 服务)完成。PHP 的角色是「编排者」:收集表单上下文、构造 prompt、发送请求、解析响应、安全写入字段值。
关键不是让模型“猜”,而是强制它输出严格 JSON。常见错误是只给自然语言指令,导致返回 HTML、Markdown 或自由文本,PHP 解析时直接抛 json_decode() returns null。
{"format": "json", "strict": true, "no_explanation": true}
name、email、phone 等键)"job_title": "字符串,不超过 50 字,不包含公司名"
"" 比 null 更易被 PHP 表单逻辑处理)用户输入的原始文本(如粘贴的简历)可能含换行、双引号、控制字符,直接拼进 prompt 会破坏 JSON 格式,甚至触发模型注入(比如诱导返回额外字段或执行指令)。
json_encode($raw_input, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),确保字符串安全嵌入 promptjson_decode($response, true) 解析,并立即校验键名是否在白名单内(如 ['name', 'email', 'company']),忽略任何未知字段eval()、create_function() 或 json_decode(..., false) 后直接赋值对象属性——这等于把攻击面交给模型CURLOPT_TIMEOUT_MS => 8000)和最大响应长度(CURLOPT_MAXREDIRS => 0 防重定向滥用)Scout 和 Algolia 是搜索增强工具,适用于“从已有数据库中找相似记录并回填”,不是“从非结构化文本中抽取新字段”。如果你的场景是:用户上传 PDF 简历 → 提取姓名/邮箱/技能 → 填入注册表单,那它们完全不适用。真正需要的是 NLP 提取流水线,而 PHP 只负责胶水层。
立即学习“PHP免费学习笔记(深入)”;
复杂点在于字段语义对齐:同一个“张三”,模型可能输出 "name": "张三",也可能输出 "full_name": "张三",你得在 prompt 里锁定键名,且在 PHP 层做映射配置,而不是依赖模型“自觉”。这点容易被忽略——模型越强,越容易自由发挥,反而需要更严格的 schema 约束。