必须先获取accesskey id和secret并确保网络可达,php≥7.2且启用curl;调用时设bearer认证头(注意空格),传model、messages等json参数;支持流式响应解析;需捕获400/401/429/500等状态码及code字段错误,对限流和服务器错误实施指数退避重试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在PHP项目中调用千问AI的API,必须先获取有效的API密钥(AccessKey ID和Secret),并确保网络能访问阿里云百炼平台的API端点,否则请求会直接返回401或Connection refused。
准备认证凭据与环境
登录阿里云控制台→进入DashScope控制台→左侧菜单点击「API密钥管理」→创建新的AccessKey,记下AccessKey ID和AccessKey Secret。这一步不能跳过,【没有AccessKey就无法通过身份校验,所有请求都会被拒绝】。
确认PHP版本 ≥ 7.2,安装cURL扩展(大多数Linux发行版默认启用,Windows需检查php.ini中是否启用了extension=curl)。
发送基础文本生成请求
使用cURL发起POST请求,目标URL为https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation。
构造请求头:设置Authorization: Bearer YOUR_API_KEY,Content-Type为application/json;注意Bearer后要留一个空格,【少这个空格会导致401错误且无明确提示】。
组装JSON载荷,至少包含model(如"qwen-max")、input.messages数组(含role和content字段)、parameters.temperature(可选,默认1.0)。
执行curl_exec(),检查返回状态码是否为200,再json_decode()解析响应体中的output.text字段。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
处理流式响应(SSE)
方法一:启用stream=true参数并手动解析Server-Sent Events格式
在parameters中加入"stream": true,请求头保持Accept: text/event-stream;收到响应后逐行读取,跳过以data:开头的行,剥离前缀提取JSON片段,每次decode后立即处理output.text增量内容。
方法二:用Guzzle HTTP Client自动处理SSE
安装guzzlehttp/guzzle(composer require guzzlehttp/guzzle),创建Client实例时启用stream选项,用Promise+onHeaders回调监听event流,配合JsonDecoder解析每帧数据。
捕获常见错误并重试
第一步:检查HTTP状态码——400说明请求体格式错误(比如messages为空数组),401是密钥无效或过期,429表示QPS超限,500系服务端临时异常。
第二步:解析响应body中的code字段——"InvalidParameter"对应参数缺失,"Throttling"需退避重试,"ResourceNotFound"代表模型名拼写错误(如写成qwen-plus而非qwen-plus)。
第三步:对429和5xx错误实施指数退避,首次延迟100ms,每次翻倍,最多重试3次;重试前清空cURL句柄并重建,避免复用旧连接导致header残留。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










