天天看點

騰訊AI開放平台的接口調用指南

最近無意發現騰訊AI開放平台上提供了大量好玩的人工智能雲服務,而且是完全免費的。隻需要用QQ号登入即可。這麼好的東西,作為一個程式員,當然要試試了!

從上圖可以看出騰訊AI開放平台提供的人工智能服務主要有自然語言處理,計算機視覺和智能語音三大類。我當然是從最簡單的自然語言處理開始學習。

這是騰訊AI開放平台的自然語言處理的API說明:

https://ai.qq.com/doc/nlpbase.shtml

其實也就是我們熟悉的Restful API調用:

建立一個PHP檔案,把下面這個連結的源代碼粘貼進去:

https://github.com/i042416/wechat/blob/master/tencent/newfile.php

然後在Eclipse裡Run As->PHP CLI Application,

即可看到下列輸出:“騰訊AI開放平台”這個句子,已經被騰訊人工智能成功分詞成了:騰訊,AI,開放,平台。

下面就來解釋下PHP代碼的主要邏輯。

騰訊AI開放平台的接口調用指南

第一行和第四行分别為我在騰訊AI平台上建立的測試應用的key和ID。第五行是發起請求的時間戳,第六行用rand()生成了一個随機數,第七行為希望使用騰訊AI人工智能分詞的輸入句子,第8行sign是一個需要動态計算出的簽名值。

這個簽名值在下列PHP函數調用裡計算:

params[′sign′]=getReqSign(params[′sign′]=getReqSign(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

最後發送請求,得到結果:

騰訊AI開放平台的接口調用指南

繼續閱讀