A3RT の Talk API を PHP で使ってみた

プログラム
スポンサーリンク

リクルートテクノロジーズが公開している A3RT(アート)は、機械学習や人工知能を手軽に使うことができる API群です。A3RT の各種 API はメールアドレスの登録だけで無償で使うことができます。そこで今回は、Chatbot を簡単に作成することができる Talk API を PHP で使ってみました。

API キーの発行

まずはじめに Talk API のページで 、API キーを発行します。

Talk API のページ

PHP スクリプトの作成

Talk API に POST リクエストを送信する PHP スクリプトを作成します。(エラー処理などは割愛してます)
 

<?php

// Talk API の URL
$url = 'https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk';

// 発行した API キー
$api_key = '*****';

// 第一引数を入力テキストにする
$query = $argv[1];

// リクエスト作成
$request = array(
    'apikey' => $api_key,
    'query'  => $query
);

// ストリームコンテキストの作成
$opts['http'] = array(
    'method'    => 'POST',
    'header'    => 'Content-type: application/x-www-form-urlencoded;charset=UTF-8',
    'content'   => http_build_query($request, '', '&', PHP_QUERY_RFC3986)
);
$context = stream_context_create($opts);

// リクエスト実行
$response_json = file_get_contents($url, false, $context);

// JSON を 配列に変換
$response_arr = json_decode($response_json, true);

// 表示処理
var_dump($response_arr);

実行すると下のようなレスポンスが返ってきます。perplexit が予測性能でこの値が小さいほど、正しく応答できているようです。

$ php talk_api.php いい天気ですね
 
array(3) {
["status"]=>
int(0)
["message"]=>
string(2) "ok"
["results"]=>
array(1) {
[0]=>
array(2) {
["perplexity"]=>
float(0.12975786883239)
["reply"]=>
string(27) "晴れてよかったです"
}
}
}
$ php talk_api.php 相対性理論について教えてください
 
array(3) {
["status"]=>
int(0)
["message"]=>
string(2) "ok"
["results"]=>
array(1) {
[0]=>
array(2) {
["perplexity"]=>
float(1.2677515295122)
["reply"]=>
string(18) "分かりません"
}
}
}

おわりに

A3RT には、ほかにも画像を合成するAPIや、肉の写真に点数をつける(?)APIなど、面白そうなAPIが色々あるようです。ぜひ試してみたいと思います。

コメント

タイトルとURLをコピーしました