騰訊AI開放平臺的介面呼叫指南
最近無意發現騰訊AI開放平臺上提供了大量好玩的人工智慧雲服務,而且是完全免費的。只需要用QQ號登入即可。這麼好的東西,作為一個程式設計師,當然要試試了!
從上圖可以看出騰訊AI開放平臺提供的人工智慧服務主要有自然語言處理,計算機視覺和智慧語音三大類。我當然是從最簡單的自然語言處理開始學習。
這是騰訊AI開放平臺的自然語言處理的API說明:
其實也就是我們熟悉的Restful API呼叫:
新建一個PHP檔案,把下面這個連結的原始碼貼上進去:
然後在Eclipse裡Run As->PHP CLI Application,
即可看到下列輸出:“騰訊AI開放平臺”這個句子,已經被騰訊人工智慧成功分詞成了:騰訊,AI,開放,平臺。
下面就來解釋下PHP程式碼的主要邏輯。
$appkey = 'LHGNH0usjUTRRRSA';
$params = array(
'app_id' => '2107823355',
'time_stamp' => strval(time()),
'nonce_str' => strval(rand()),
'text' => '騰訊AI開放平臺',
'sign' => '',
);
第一行和第四行分別為我在騰訊AI平臺上建立的測試應用的key和ID。第五行是發起請求的時間戳,第六行用rand()生成了一個隨機數,第七行為希望使用騰訊AI人工智慧分詞的輸入句子,第8行sign是一個需要動態計算出的簽名值。
這個簽名值在下列PHP函式呼叫裡計算:
params, $appkey);
現在進入getRegSign內部:
首先執行ksort對PHP的key-value陣列$params按照key進行升序排序,可以比較上圖升序排序前和下圖排序後的順序:
接著把字典裡每個key-value鍵值對用key=value&key=value…這種形式連線起來,注意text值需要用urlencode進行編碼。
最後把連線好的字串用md5函式計算出MD5雜湊值,然後用strtoupper轉成大寫,這就是計算好的簽名值。
最後一步就是呼叫doHttpPost傳送請求。
Post請求的fields仍然是key=value&key=value這種型別的鍵值對,參考下面偵錯程式裡的截圖:
為方便您的參考,我把偵錯程式裡顯示的$body記錄在下面:
app_id=2107823355&time_stamp=1533960023&nonce_str=12169&text=%CC%DA%D1%B6AI%BF%AA%B7%C5%C6%BD%CC%A8&sign=EA9CAC254A17729B20FAF28757E775DD
最後傳送請求,得到結果:
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_NOBODY, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
if ($response === false) {
$response = false;
break;
}
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($code != 200) {
$response = false;
break;
}
要獲取更多Jerry的原創技術文章,請關注公眾號”汪子熙”或者掃描下面二維碼: