[!NOTE]

在当今的人工智能时代,大语言模型为开发者提供了强大的自然语言处理能力。讯飞星火和阿里百炼作为两款优秀的大语言模型,受到了广泛关注。本文将详细介绍如何使用 PHP 语言分别调用这两个模型的 API,实现与模型的交互。

一、讯飞星火调用

1. 前期准备

  • 注册账号:前往讯飞星火开放平台(https://xinghuo.xfyun.cn/)注册账号,并创建应用,获取 API Key 和 API Secret。
  • 了解 API 文档:仔细阅读讯飞星火的 API 文档,熟悉接口的请求参数、返回格式等信息。

2. PHP 代码示例

<?php
header("Access-Control-Allow-Origin: *");
// 允许的请求方法
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
// 允许的请求头
header("Access-Control-Allow-Headers: Content-Type");
// API 请求的 URL
$apiUrl = 'https://spark-api-open.xf-yun.com/v1/chat/completions';

// 请求头信息,将 '123456' 替换为实际的授权令牌
$headers = [
    'Authorization: Bearer 123456',
    'Content-Type: application/json'
];

$question = "生成一段随机话语不超过100字";
$requestData = [
    "model" => "lite",//你的模型
    "messages" => [
        [
            "role" => "user",
            "content" => $question
        ]
    ],
    "stream" => false 
];

$jsonData = json_encode($requestData);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// 执行 cURL 请求
$response = curl_exec($ch);

// 检查是否有 cURL 错误
if (curl_errno($ch)) {
    echo 'Curl 错误: '. curl_error($ch);
} else {
    // 获取 HTTP 响应状态码
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($httpCode >= 200 && $httpCode < 300) {
        $responseData = json_decode($response, true);
        if (isset($responseData['choices'][0]['message']['content'])) {
            echo trim($responseData['choices'][0]['message']['content']);
        } else {
            echo "未能从响应中提取到有效内容。";
        }
    } else {
        echo "请求失败,HTTP 状态码: $httpCode\n";
        echo $response;
    }
}

// 关闭 cURL 会话
curl_close($ch);
?>

二、阿里百炼调用

1. 前期准备

  • 注册账号:访问阿里百炼开放平台(具体网址根据实际情况)注册账号,创建应用并获取 Access Key ID 和 Access Key Secret。
  • 了解 API 文档:熟悉阿里百炼的 API 文档,掌握接口的使用方法。

2. PHP 代码示例

<?php
// 设置 DASHSCOPE_API_KEY
$DASHSCOPE_API_KEY = '123456';

// 从 URL 参数获取问题内容
$question = isset($_GET['question']) ? urldecode($_GET['question']) : null;

// 输入验证
if (empty($question)) {
    die('请通过 URL 参数提供问题');
}

if (mb_strlen($question) > 200) {
    die('问题内容过长(限制200字)');
}

// 请求配置
$url = 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions';
$headers = [
    'Authorization: Bearer ' . $DASHSCOPE_API_KEY,
    'Content-Type: application/json'
];
$payload = [
    "model" => "deepseek-r1",
    "messages" => [["role" => "user", "content" => $question]],
    "temperature" => 0.7,
    "max_tokens" => 512
];

// 发送请求
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 30
]);

$response = curl_exec($ch);
curl_close($ch);

// 解析并输出中文内容
try {
    $data = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
    if (isset($data['choices'][0]['message']['content'])) {
        echo $data['choices'][0]['message']['content'];
    } else {
        throw new Exception('未找到有效回答内容');
    }
} catch (JsonException $e) {
    echo 'JSON 解析错误: ' . $e->getMessage();
} catch (Exception $e) {
    echo '处理错误: ' . $e->getMessage();
}
?>

三、注意事项

  • 安全问题:API Key、API Secret、Access Key ID 和 Access Key Secret 等敏感信息要妥善保管,避免泄露。
  • 请求频率限制:不同的 API 有不同的请求频率限制,要注意控制请求次数,避免触发限制。
  • 错误处理:在实际开发中,要对 API 的返回结果进行详细的错误处理,确保程序的稳定性。

通过以上步骤,你可以使用 PHP 语言方便地调用讯飞星火和阿里百炼的 API,实现与大语言模型的交互。希望本文对你有所帮助!

四、结束

在这个充满可能性的时代门槛,PHP 与大模型的结合不仅是技术的突破,更是一场关于未来的对话。当代码与智能相遇,我们编写的不仅是程序,更是人类对未知领域的探索勇气。愿每一次 API 调用,都成为推动文明进步的微小涟漪。

官方api:https://api.xiaolu.icu

[!CAUTION]

本文内容仅用于技术交流与学习,不构成任何商业承诺或担保。读者需自行验证代码可行性,因使用本文内容引发的系统故障、数据损失等后果,作者及平台不承担法律责任。禁止利用文中技术实施网络攻击、数据滥用等违法行为,违者需自行承担全部法律后果。文中涉及的技术方案、代码示例等知识产权归原作者所有,未经授权不得用于商业用途。