php 8.3需通过dashscope api调用通义千问生成摘要,使用curl发送含api key、结构化prompt及原文的https请求,解析返回json获取摘要结果,并注意输入过滤、错误处理与隐私安全。

PHP 8.3 本身不内置 AI 摘要能力,通义千问(Qwen)是阿里云的闭源大模型,无法直接在 PHP 中本地调用。生成文章摘要需通过其开放 API(如 DashScope SDK 或 HTTP 接口),由 PHP 发起网络请求,将文本发送至 Qwen 服务端,再解析返回结果。
确认使用官方 API 通道
通义千问当前不提供 PHP 原生 SDK,但支持标准 RESTful API 调用(需 DashScope 平台密钥)。PHP 8.3 可用 curl 或 file_get_contents(配合 stream context)发起 HTTPS 请求。务必注册阿里云账号、开通 DashScope 服务、获取 API Key,并在控制台申请 Qwen 系列模型(如 qwen-max 或 qwen-turbo)的调用权限。
构造简洁有效的提示词(Prompt)
摘要质量高度依赖输入指令。避免笼统说“请总结”,应明确格式、长度和重点:
- 指定输出语言,例如:“用中文输出,不超过150字”
- 强调核心要素:“提取主旨、关键事实和结论,忽略例子和修饰语”
- 结构化要求(可选):“分三点列出:背景、方法、结果”
- 示例 prompt:“你是一名专业编辑,请为以下技术文章生成简明摘要:用中文,严格控制在120字以内,只保留研究目的、采用的核心方法和最终结论,不添加解释或评价。”
PHP 8.3 示例代码(使用 curl)
以下为最小可用调用片段,已适配 PHP 8.3 的严格类型与错误处理习惯:
<?php $apiKey = 'sk-xxx'; // 替换为你的 DashScope API Key
$content = "人工智能正在改变内容生产方式……"; // 待摘要原文
<p>$url = '<a href="https://www.php.cn/link/9b1f23ecfde1eb9042bc8b734ea70042">https://www.php.cn/link/9b1f23ecfde1eb9042bc8b734ea70042</a>';
$headers = [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
];<p>$data = [
'model' => 'qwen-turbo',
'input' => [
'messages' => [
['role' => 'system', 'content' => '你是一名专业编辑,请为以下技术文章生成简明摘要:用中文,严格控制在120字以内,只保留研究目的、采用的核心方法和最终结论,不添加解释或评价。'],
['role' => 'user', 'content' => $content]
]
],
'parameters' => ['temperature' => 0.1, 'max_tokens' => 200]
];</p><p>$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);</p><p>$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);</p><p>if ($httpCode === 200) {
$result = json_decode($response, true);
$summary = $result['output']['text'] ?? '摘要生成失败';
echo $summary;
} else {
error_log("API Error: $httpCode - $response");
echo "服务暂时不可用,请稍后重试";
}
?></p>
注意安全与稳定性
生产环境需额外处理:
- 对用户输入做基础过滤(如 trim、strlen 限制),防止过长文本触发 API 截断或超时
- 使用 try-catch 包裹 curl 操作,并检查
curl_error() - 敏感内容(如用户隐私、未授权文章)不应直接发往第三方 API,需先脱敏或获得授权
- 考虑加缓存(如 Redis)避免重复请求相同内容,降低延迟与成本
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











