跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

PHP AI接口怎么对接_PHP调用大模型API实现智能对话功能【智能】

PHP调用大模型API失败主因是鉴权头、请求体结构或响应字段解析错误;需严格设置Authorization和Content-Type头,用json_encode()传索引数组,按平台要求填动态model ID,并优先检查响应体error字段而非仅HTTP状态码。 PHP 调用 大模型 API 不是配个 URL 和 key 就能跑通的事,绝大多数失败都卡在鉴权头、请求体结构或响应字段解析这三处。国产模型尤其容易栽在签名计算、服务 ID 动态性、以及
messages
位置校验上。 curl 发请求时 Authorization 和 Content-Type 缺一不可 OpenAI、豆包、小米 MIXR、通义千问等所有主流接口,都强制要求两个 HTTP 头:
Authorization: Bearer YOUR_TOKEN
—— token 是字符串,不是数组,不能漏掉
Bearer
前缀(注意后面有个空格)
Content-Type: application/json
—— 漏掉这个头,豆包返回
415 Unsupported Media Type
,通义千问直接
400
,不是鉴权错 别用
http_build_query()
拼 body;必须用
json_encode()
,且确保参数是索引数组(如
[['role'=>'user','content'=>'hi']]
),不是关联键名(如
['msg'=>[...]]
)。 model 参数不是通用名,而是动态服务 ID 豆包的
model
必须填控制台生成的
ep-
开头服务 ID(如
ep-20241127160919-2yq8d
);通义千问要填
qwen-max
或
qwen-long
;智谱 GLM 必须是
glm-4
这类固定值。传错会直接
404 Not Found
或
400 Invalid model
,不是 token 无效。 立即进入 “ 豆包AI人工智官网入口 ”; 立即学习 “ 豆包AI人工智能在线问答入口 ”; 常见错误: 文心大模型 百度飞桨-文心大模型 ERNIE 3.0 文本理解与创作 下载 复制别人文档里的
ep-
ID —— 每个账号、每个环境唯一,过期后失效 把飞书登录 Cookie 或网页抓包的临时 token 当作 API Key —— 必须从「字节跳动开放平台 → 我的应用 → 模型服务」里申请 小米 MIXR 的
model
字段根本不存在 —— 它靠 URL path 区分服务,比如
/v1/chat/completions?model=mixr-pro
是错的,实际应走
/v1/mixr/pro/chat
响应体里 error 字段比 HTTP 状态码更关键 很多接口(尤其是豆包、通义千问)即使返回
200 OK
,body 里也可能带
error
字段。只检查
curl_getinfo($ch, CURLINFO_HTTP_CODE)
会漏掉真实失败。 务必先
json_decode($response, true)
,再判断: 是否存在
['error']['message']
—— 豆包常见
"Invalid model"
或
"Rate limit exceeded"
是否存在
['output']['text']
(通义)、
['result']['text']
(讯飞)、
['choices'][0]['message']['content']
(OpenAI)—— 字段路径完全不同,不能硬套 小米 MIXR 响应中
['data']['choices'][0]['delta']['content']
只在
stream=true
时出现,非流式是
['data']['choices'][0]['message']['content']
stream=true 在 PHP Web 场景下基本不可用 豆包、通义、讯飞都支持流式,但 PHP-FPM 默认阻塞等待完整响应。设
stream=true
后不手动处理
CURLOPT_WRITEFUNCTION
,
curl_exec()
会卡死或超时。 真要流式输出,得同时满足: 加
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 30000)
防止长连接拖垮 FPM 进程 写
WRITEFUNCTION
回调,按行解析
data:
前缀,还要处理
event:
、
id:
等 SSE 字段 Nginx 配置
proxy_buffering off
和
chunked_transfer_encoding on
,否则前端收不到分块 多数业务场景没必要强求流式 —— 先关掉
stream
,确保
messages
上下文正确、token 有效、响应字段可稳定提取,才是优先级最高的事。

相关文章