ZStackAI平台不提供PHP SDK,需用cURL手动调用HTTP接口;关键三步是确认服务地址、路径与认证信息,设置Content-Type: application/json,检查响应头Content-Type;常见错误包括SSL证书问题、空响应、422错误及连接失败。
ZStackAI 是面向企业私有云场景的 AI 基础设施平台,其容器化模型服务(如部署 Llama3、Qwen 等)默认暴露的是标准 HTTP 接口(通常是 /v1/chat/completions 或自定义路径),而非专为 PHP 封装的客户端。PHP 本身没有官方支持 ZStackAI 的库,必须手动构造请求。
前提是:你已在 ZStackAI 控制台完成模型部署,并拿到服务地址(如 http://192.168.10.50:8080)、路由路径(如 /v1/chat/completions)、以及必要认证信息(如 X-API-Key 或 Bearer Token)。
Content-Type: application/json,否则 json_decode() 会失败Content-Type: application/json 请求头,否则 ZStackAI 模型网关可能返回 400 或空响应 'qwen2-7b',
'messages' => [['role' => 'user', 'content' => '你好']],
'temperature' => 0.7,
];
$options = [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $token,
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
];
$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code === 200) {
$result = json_decode($response, true);
echo $result['choices'][0]['message']['content'] ?? '无响应内容';
} else {
echo "HTTP 错误: {$http_code}, 响应: {$response}";
}
?>
ZStackAI 容器服务在 PHP 调用中高频出错位置集中在网络层与协议层,而非业务逻辑。
SSL certificate problem: unable to get local issuer certificate:本地 PHP cURL 缺少 CA 证书,临时加 CURLOPT_SSL_VERIFYPEER => false(仅测试),生产环境应配置 CURLOPT_CAINFO
null:大概率是 Content-Type 没设对,或 json_encode() 输入含非 UTF-8 字符(如 GBK 中文)422 Unprocessable Entity:ZStackAI 模型网关校验失败,检查 model 名称是否与部署时完全一致(区分大小写、中划线),messages 格式是否为数组套关联数组
虽然部分 ZStackAI 版本启用了 OpenAI API 兼容模式,但字段行为常有差异:
max_tokens 可能被忽略,实际由平台侧限流策略控制stream: true 在 PHP 同步请求中无法消费流式响应,需改用 curl_setopt($ch, CURLOPT_WRITEFUNCTION, ...) 自定义写入回调{"error": {"message": "...", "type": "invalid_request_error"}},而 ZStackAI 可能返回纯文本或不同结构 JSON最稳妥的方式是先用 curl -X POST 命令在 ZStackAI 服务器本地验证通路,再移植到 PHP —— 很多问题根本不在 PHP 代码里,而在模型服务没真正就绪或网络未打通。