zoukankan      html  css  js  c++  java
  • 腾讯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代码的主要逻辑。

    $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['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

    最后发送请求,得到结果:

    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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9819803.html
Copyright © 2011-2022 走看看