Cotogoto::Noby APIを使ってみる
ハッカソンなどに参加していると会話系のAPIを使用する機会も増えてきます。以前紹介したDoCoMoさんの対話雑談APIも良いのですが 個人的にはもう少し個性のある会話エンジンのほうが楽しいと思っています。
そこで選択肢になるエンジンとしてはライフログであるコトゴトの機能の一部であるCotogoto::Noby APIが選択肢になることも多いようです(この表現であっているのだろうか)。特に名古屋近辺ではNobyの神様にあえるので、詳しく話を聞くこともできます。
Noby APIとは?
主な特徴としては
サイト内の解説がかなり詳細なので、検索するよりメインサイトを確認するのが開発の近道になると思います。
PowershellのCLIから使用してみる

ログインして【登録はこちら(無料)】(緑色)のボタンを押すとConsumer Key(App Key)が取得できます。以下の画面上はみえないようにしています。

これをメモっておきます。更に画面を下にスクロールさせるとCLIを使ったCode snipetがあるのでそれを使って実験をすることになります。

今回、自分はWindowsPCを使用しているため純粋なcurlがつかえないので、Powershellで同じことを行ってみます。(PowerShellで使用するcurlはInvoke-WebRequestのAliasになっています。)例えば、Code snipet#1と同じコードは以下のようになります。
PS C:\> curl -Uri "https://www.cotogoto.ai/webapi/noby.json?text=おはようございます&app_key=【取得したキー】" -Method GET
StatusCode : 200
StatusDescription : OK
Content : {"art":null,"commandId":null,"commandName":null,"dat":"おはようございます","loc":null,"mood":0.0,"n
egaposi":0.0,"negaposiList":[{"score":0.0,"word":"ござい"}],"org":null,"psn":null,"text":"おはよー
ございます","tim":null,"...
RawContent : HTTP/1.1 200 OK
Pragma: no-cache
Transfer-Encoding: chunked
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
Date: Mon, 14 Nov 2016 20:35:16 GMT
Expires: Tue, 29 Feb 2000 12:...
Forms : {}
Headers : {[Pragma, no-cache], [Transfer-Encoding, chunked], [Cache-Control, no-cache], [Content-Type, applic
ation/json;charset=UTF-8]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 390
このようになっていますがレスポンスのJSONデータをみると(先程の結果とは少し違っていますが^^;)
{
"art": null,
"commandId": null,
"commandName": null,
"dat": "おはようございます",
"loc": null,
"mood": 0,
"negaposi": 0,
"negaposiList": [
{
"score": 0,
"word": "ござい"
}
],
"org": null,
"psn": null,
"text": "おはっよー",
"tim": null,
"type": "Greet",
"wordList": [
{
"feature": "名詞,一般,*,*,*,*,おはようございます,*,*,",
"start": "0",
"surface": "おはようございます"
}
]
}
textに格納されたデータがNobyAPIから返された会話データになります。Docomoの雑談対話APIに比べてムードやネガポジ判定がある点が面白いです。
詳しくはこちらを御覧ください。
RaspberryPiでの使用に続く。