Cotogoto::Noby APIを使ってみる

Cotogoto::Noby APIを使ってみる

ハッカソンなどに参加していると会話系のAPIを使用する機会も増えてきます。以前紹介したDoCoMoさんの対話雑談APIも良いのですが 個人的にはもう少し個性のある会話エンジンのほうが楽しいと思っています。

そこで選択肢になるエンジンとしてはライフログであるコトゴトの機能の一部であるCotogoto::Noby APIが選択肢になることも多いようです(この表現であっているのだろうか)。特に名古屋近辺ではNobyの神様にあえるので、詳しく話を聞くこともできます。

Noby APIとは?

主な特徴としては

www.cotogoto.ai

サイト内の解説がかなり詳細なので、検索するよりメインサイトを確認するのが開発の近道になると思います。

PowershellCLIから使用してみる

f:id:ueponx:20161115041907j:plain

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

f:id:ueponx:20161115042418j:plain

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

f:id:ueponx:20161115043016j:plain

今回、自分はWindowsPCを使用しているため純粋なcurlがつかえないので、Powershellで同じことを行ってみます。(PowerShellで使用するcurlInvoke-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に比べてムードやネガポジ判定がある点が面白いです。

詳しくはこちらを御覧ください。

www.cotogoto.ai

RaspberryPiでの使用に続く。

/* -----codeの行番号----- */