首页站内杂志技术文摘
文章内容页

PHP 开发:百度、阿里、深度求索与豆包 API 对接教程全解析

  • 作者:雨祺
  • 来源: 电脑原创
  • 发表于2025-02-21 19:22:18
  • 被阅读0
  •   在当今科技飞速发展的时代,人工智能(AI)已经成为各个领域的热门话题,其应用范围广泛且具有巨大的潜力。许多开发者都希望借助各大平台的 AI 能力来丰富自己的项目。今天,我们就来详细讲解如何使用 PHP 进行百度、阿里、深度求索以及豆包的 API 对接。

      首先,对于百度 API,需要获取相应的 API Key 和 Secret Key,通过这两个密钥获取访问令牌,然后使用令牌与百度 AI 的服务进行通信。在 PHP 中,可以利用 CURL 函数发送 HTTP 请求,将所需的数据以特定格式传递给百度 API,并接收处理后的结果。

      阿里 API 对接也有类似的步骤,要先在阿里云平台注册账号并开通相关服务,拿到对应的访问凭证。之后使用 PHP 代码将请求参数进行编码,发送请求到阿里的 API 接口。

      深度求索和豆包的 API 对接同样要先获取访问权限,再按照它们各自的文档要求,构建合适的请求参数,通过 PHP 代码实现数据的交互。

      掌握这些 API 的对接方法,能让开发者在 PHP 项目中轻松集成强大的 AI 功能。下面开始上代码了哈:

    1. //构建AI对话上下文 
    2. function chataicontext($context, $message) { 
    3. $postData = []; 
    4. if (!empty($context)) { 
    5. $context = array_slice($context, -2); 
    6. foreach ($context as $messageItem) { 
    7. $userContent = str_replace("\n""\\n", $messageItem[0]); 
    8. if (!empty($userContent)) { 
    9. $postData['messages'][] = ['role' => 'user''content' => $userContent]; 
    10. $systemContent = str_replace("\n""\\n", $messageItem[1]); 
    11. if (!empty($systemContent)) { 
    12. $postData['messages'][] = ['role' => 'system''content' => $systemContent]; 
    13. $userMessage = RepPostStr($message); 
    14. if (!empty($userMessage)) { 
    15. $postData['messages'][] = ['role' => 'user''content' => $userMessage]; 
    16. return $postData; 
    1. //curl封装(post与get) 
    2. function CurlRequest($postData = null, $method = 'POST', $appkey = null, $url = null) { 
    3. $ch = curl_init(); 
    4. $headers = array(); 
    5. $headers[] = "Content-Type: application/json"
    6. if (isset($appkey)) { 
    7. $headers[] = "X-DashScope-SSE: disable";         
    8. $headers[] = "Authorization: Bearer " . $appkey; 
    9. if ($method === 'GET') { 
    10. if ($postData) { 
    11. $queryString = http_build_query($postData); 
    12. $url = $url . (strpos($url, '?') === false ? '?' : '&') . $queryString; 
    13. curl_setopt($ch, CURLOPT_HTTPGET, true); 
    14. }elseif ($method === 'POST') { 
    15. curl_setopt($ch, CURLOPT_POST, 1); 
    16. curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 
    17. else { 
    18. return array('error' => '不支持的请求方法: ' . $method); 
    19. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    20. curl_setopt($ch, CURLOPT_URL, $url); 
    21. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    22. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    23. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    24. $response = curl_exec($ch); 
    25. if (curl_errno($ch)) { 
    26. $error = curl_error($ch); 
    27. curl_close($ch); 
    28. return array('error' => $error); 
    29. curl_close($ch); 
    30. return $response; 
    1. $message=RepPostStr($_POST['message']); 
    2. $context = isset($_SESSION['context']) ? $_SESSION['context'] : []; 
    3. switch ($_GET['enews']) { 
    4.     case 'baidu'
    5.         // 百度 
    6.         $post_tokendata = [ 
    7.             'grant_type' => 'client_credentials'
    8.             'client_id' => 'hC6gfhtgyhyaQeXZ6pNL0'
    9.             'client_secret' => 'kGZcwuWgfhyrthytp5ArcZ5GwOSEqQ' 
    10.         ]; 
    11.         $query_str = http_build_query($post_tokendata); 
    12.         $tokendata = CurlRequest($query_str, 'POST''''https://aip.baidubce.com/oauth/2.0/token'); 
    13.         $tokendata = json_decode($tokendata, true); 
    14.         $baiduapiurl = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=".$tokendata['access_token']; 
    15.         $postData = ["top_p" => 0.9, "temperature" => 0.9]; 
    16.         $postData = array_merge($postData, chataicontext($context, $message)); 
    17.         // 百度角色调整也是个奇葩非不跟大家保持一致 
    18.         foreach ($postData['messages'] as &$msg) { 
    19.             if ($msg['role'] ==='system') { 
    20.                 $msg['role'] = 'assistant'
    21.             } 
    22.         } 
    23.         unset($msg); 
    24.         $postData = json_encode($postData); 
    25.         $response = CurlRequest($postData, 'POST''', $baiduapiurl); 
    26.         $response = json_decode($response, true); 
    27.         if (isset($response['error_msg'])) { 
    28.             $aierrormsg = $response['error_msg']; 
    29.         } else { 
    30.             $text = $response['result']; 
    31.         } 
    32.         break
    33.     case 'aliyun'
    34.         // 阿里云 
    35.         $postData = ["model" => 'qwen-turbo'"enable_search" => true]; 
    36.         $postData = array_merge($postData, chataicontext($context, $message)); 
    37.         $postData = json_encode($postData); 
    38.         $response = CurlRequest($postData, 'POST''sk-97648484845d4d4793b974f091e0dbb746''https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions'); 
    39.         $response = json_decode($response, true); 
    40.         if (isset($response['error']['message'])) { 
    41.             $aierrormsg = $response['error']['message']; 
    42.         } else { 
    43.             $text = $response['choices'][0]['message']['content']; 
    44.         } 
    45.         break
    46.     case 'deepseek'
    47.         // 深度求索 
    48.         $postData = ["model" => 'deepseek-chat'"enable_search" => true]; 
    49.         $postData = array_merge($postData, chataicontext($context, $message)); 
    50.         $postData = json_encode($postData); 
    51.         $response = CurlRequest($postData, 'POST''sk-ea9gffyufyuu1b0cb8b97c9956ead''https://api.deepseek.com/v1/chat/completions'); 
    52.         $response = json_decode($response, true); 
    53.         if (isset($response['error']['message'])) { 
    54.             $aierrormsg = $response['error']['message']; 
    55.         } else { 
    56.             $text = $response['choices'][0]['message']['content']; 
    57.         } 
    58.         break
    59.     default
    60.         // 豆包 
    61.         $postData = ["model" => 'ep-20241215230414-l9zv8'"enable_search" => true]; 
    62.         $postData = array_merge($postData, chataicontext($context, $message)); 
    63.         $postData = json_encode($postData); 
    64.         $response = CurlRequest($postData, 'POST''3668adyhjggka6d-09634418b9a3''https://ark.cn-beijing.volces.com/api/v1/chat/completions'); 
    65.         $response = json_decode($response, true); 
    66.         if (isset($response['error']['message'])) { 
    67.             $aierrormsg = $response['error']['message']; 
    68.         } else { 
    69.             $text = $response['choices'][0]['message']['content']; 
    70.         } 
    71.         break
    get请求参数字段仍然是enews。仅供参考。注意前端AJAX请求的时候哈 我这个是已经支持返回的txt文本了 不是JSON。
    【审核人:站长】

        标题:PHP 开发:百度、阿里、深度求索与豆包 API 对接教程全解析

        本文链接:https://www.wenyunfang.com/zazhi/zhongwangjiaocheng/1254.html

        赞一下

        深度阅读

        • 您也可以注册成为文韵坊的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注文韵坊