这篇文章介绍一下如何结合代理服务器使用腾讯AI开放平台提供的文本翻译API。

目录

  • 事前准备
  • 请求参数
  • 返回格式
  • 示例代码
  • 使用示例
  • 常见问题
  • 结果确认
  • 总结
  • 参考内容

事前准备

实现需要申请申请账号,获得如下接入凭证:

  • AppID:应用ID
  • AppKey:应用密钥

目前免费账号可创建一百个应用,每个应用有不同的AppID和AppKey,详细操作可参看:

  • https://liumiaocn.blog.csdn.net/article/details/108374404

代理服务器的设定可参看:

  • macOS版squid:https://liumiaocn.blog.csdn.net/article/details/108629944
  • Linux版squid:https://blog.csdn.net/liumiaocn/article/details/80586879

请求参数

文本翻译的功能目前是通过腾讯翻译君提供的,请求的参数信息如下所示:

返回格式

返回格式就简单的多,状态/翻译内容/翻译后内容,非常容易理解:


示例代码

腾讯官方给了一个简单的PHP的示例,这个例子中只需要修改AppID、AppKey以及翻译内容就可以进行功能验证了,这里将其稍整理整理为如下php文件,使用格式为:

使用格式:php translate_through_api.ph -u $APP_ID -p $APP_KEY -s “带翻译的内容”

  • 代码内容
liumiaocn:php liumiao$ cat translate_through_api.php
<?php
// getReqSign :根据 接口请求参数 和 应用密钥 计算 请求签名
// 参数说明
//   - $params:接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
//   - $appkey:应用密钥
// 返回数据
//   - 签名结果
function getReqSign($params /* 关联数组 */, $appkey /* 字符串*/)
{// 1. 字典升序排序ksort($params);// 2. 拼按URL键值对$str = '';foreach ($params as $key => $value){if ($value !== ''){$str .= $key . '=' . urlencode($value) . '&';}}// 3. 拼接app_key$str .= 'app_key=' . $appkey;// 4. MD5运算+转换大写,得到请求签名$sign = strtoupper(md5($str));return $sign;
}// doHttpPost :执行POST请求,并取回响应结果
// 参数说明
//   - $url   :接口请求地址
//   - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
// 返回数据
//   - 返回false表示失败,否则表示API成功返回的HTTP BODY部分
function doHttpPost($url, $params)
{$curl = curl_init();$response = false;do{// 1. 设置HTTP URL (API地址)curl_setopt($curl, CURLOPT_URL, $url);// 2. 设置HTTP HEADER (表单POST)$head = array('Content-Type: application/x-www-form-urlencoded');curl_setopt($curl, CURLOPT_HTTPHEADER, $head);// 3. 设置HTTP BODY (URL键值对)$body = http_build_query($params);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $body);// 4. 调用API,获取响应结果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);curl_setopt($curl, CURLOPT_PROXY, $proxy_host);curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port);$response = curl_exec($curl);if ($response === false){$response = false;break;}$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);if ($code != 200){$response = false;break;}} while (0);curl_close($curl);return $response;
}$options = "u:p:s:";
$opts = getopt ( $options );// 获得环境变量
$proxy_host = getenv('PROXY_HOSTNAME');
$proxy_port = getenv('PROXY_PORT');// 设置请求数据
$appid  = $opts['u'];
$appkey = $opts['p'];
$transcontent = $opts['s'];
$params = array('app_id'     => "$appid",'source'     => 'zh','target'     => 'en','text'       => "$transcontent",'time_stamp' => strval(time()),'nonce_str'  => strval(rand()),'sign'       => '',
);
$params['sign'] = getReqSign($params, $appkey);// 执行API调用
$url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate';
$response = doHttpPost($url, $params);
echo $response;
?>
liumiaocn:php liumiao$

使用示例

现在所有东西都已就绪,让我们来期待一下,注意事前要做如下准备

  • export APP_ID=所使用的AppID值
  • export APP_KEY=所使用的AppKey值
  • export PROXY_HOSTNAME=192.168.31.242
  • export PROXY_PORT=3128

常见问题

如果出现如下问题提示:

PHP Notice:  curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in

对应方法可根据其提示的那样,将示例代码中的true设定为2即可,也可以设定为false进行关闭。

  • 设定代理服务器的方式:在代码中添加如下内容即可
curl_setopt($curl, CURLOPT_PROXY, "代理IP");
curl_setopt($curl, CURLOPT_PROXYPORT, "代理端口");
curl_setopt($curl, CURLOPT_PROXYUSERPWD, "代理用户:代理密码");

结果确认

liumiaocn:php liumiao$ php translate_through_api.php -u $APP_ID -p $APP_KEY -s "黄沙百战穿金甲"
{"ret": 0,"msg": "ok","data": {"source_text": "黄沙百战穿金甲","target_text": "Serbia has worn his helmets and armour through a hundred wars."}
}
liumiaocn:php liumiao$

总结

使用php的curl模块可以很容易地设定代理服务器,这样即使服务在内网也可以通过代理进行穿透了。

参考内容

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

腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式相关推荐

  1. 腾讯AI开放平台使用尝试:账号开通/应用创建/能力开通

    这篇文章记录一下使用腾讯AI开放平台的使用:如何进行账号开通.应用创建和能力开通. 目录 文档中心地址 注册成为开发者 步骤1:点击控制台 步骤2: 通过QQ账号关联 创建应用并开通能力 步骤1: 创 ...

  2. python3调用腾讯AI开放平台

    CSDN上偶遇一文说明如何调用腾讯AI开放平台API,因为喜欢python3,所以用python3实现了下. 用qq登录获取自己的id和key. 参考点击打开链接. 首先获取请求参数.新建了个文件md ...

  3. 腾讯AI开放平台的接口调用指南

    最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的.只需要用QQ号登录即可.这么好的东西,作为一个程序员,当然要试试了! 从上图可以看出腾讯AI开放平台提供的人工智能服务主 ...

  4. 腾讯ai开放平台 手册_创建手册以实现大规模开放

    腾讯ai开放平台 手册 "是的,但是你实际上是怎么做到的呢?" 在Opensource.com以及无数的会议和研讨会上,这是我们社区领域最常见的问题. 人们倾向于理解为什么在工作场 ...

  5. 腾讯AI开放平台的使用

    一.腾讯AI开放平台 https://ai.qq.com/ 二.腾讯AI平台支持的功能 三.签名机制 1.计算步骤 用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤.1.将< ...

  6. 腾讯开发平台php,腾讯AI开放平台 Tencent AI open platform

    腾讯AI开放平台 SDK Tencent AI open platform sdk Special thanks to the generous sponsorship by: Requirement ...

  7. 腾讯AI开放平台 SDK

    腾讯AI开放平台 SDK Tencent AI open platform sdk Special thanks to the generous sponsorship by: Requirement ...

  8. php图像识别api,使用腾讯AI开放平台api进行图片OCR文字识别

    重要:本文最后更新于2019-05-20 08:46:46,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 其实图片的文字识别其实还算简单,一般是根据特定字体制作出字码文件,然后分割 ...

  9. 腾讯AI开放平台的签名算法(Python)

    最近接到一个任务,要求使用python进行语音合成,实现班级点名的功能.后来使用了pyttsx库,发现这个库合成的语音听起来不清晰,于是果断抛弃.然后就想起了使用腾讯的语音合成api,发现腾讯优图的语 ...

最新文章

  1. UT2416 wince 6.0 调试LCD35 触摸驱动参考
  2. PPP协议详细图解实验
  3. hdu4763 KMP
  4. 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )
  5. 详解OS X和iOS图像处理框架Core Image
  6. View的Measure流程总结
  7. linux的文件权限前面的东西,linux 文件权限解析
  8. PHP使用MySQL数据库
  9. (PDF格式论文加书签)Tampermonkey + 知网下载助手 + FreePic2Pdf
  10. jks签名文件转pk8
  11. 2020-11-18
  12. 【理财】富爸爸穷爸爸
  13. SQL语法创建及管理数据表结构
  14. oRbIt 的专栏 用天文方法计算二十四节气(下)
  15. ImageView组件的应用:图片浏览器
  16. 物联网开发笔记(52)- 使用Micropython开发ESP32开发板之W5500以太网网络模块有线网络通信
  17. Python的一些读书笔记
  18. RouteOS开局初始配置整理 V1.1
  19. 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(二)------Basic Concepts
  20. JavaSSM学习总结一

热门文章

  1. itextsharp 获取文本_利用iTextSharp提取PDF文件中的文本内容
  2. 部署Apache Doris
  3. 直击本质:聊聊小程序的前世今生
  4. c++ vector二维数组初始化与vector切片
  5. 线性代数(七) : 子空间的基与维数
  6. java 判断是否回文
  7. 关于Java的char类型,字符集,字符编码三者的关系
  8. 电子元器件行业采购管理平台数字化采购,助力企业降本增效
  9. 华为硬件笔试 通用器件知识2_汽车智能化的起点-车规级元器件
  10. P4086 [USACO17DEC]My Cow Ate My Homework S(静态数据预处理:后缀和、后缀最小值)