雑談対話用の Python クライアント作った
リフレッシュ休暇中で、出かけようと思ったけど天気悪いし、寒いし、雪降るし…なので docomo が提供している API の Python クライアントを作った。
元ネタ。
docomoが提供している雑談対話APIを利用し、docomoruというライブラリを使いながらBOTと雑談する方法について説明します。
DocomoruでBOTと雑に会話する - Qiita
DoCoMo が雑談対話APIというのを出していたのでサクッっとlingr botを書いてみた。
Big Sky :: golang で vimgirl bot を書いた。
現状雑談対話 API のライブラリだけ。
気が向けば他のも作るかも。
GitHub - heavenshell/py-doco: Client library for docomo API written in Python.
使い方
>>> from doco.client import Client >>> c = Client(apikey='YOUR_API_KEY') >>> res = c.send(utt='hello', apiname='Dialogue') >>> print(res) {"utt":"はろー","yomi":"はろー","mode":"dialog","da":"30","context":"7DGIKMpQDE0zrQrYFAMqdw"} >>> print(c.last_response.status_code) 200 >>> print(c.last_response.headers) {'Content-Length': '99', 'Connection': 'keep-alive', 'Content-Type': 'application/json;charset=UTF-8', 'Date': 'Wed, 17 Dec 2014 05:28:28 GMT', 'asyncServiceInvoke': 'false'}
こんな感じで使う。
コンストラクタの引数に | docomo Developer support | NTTドコモ に記載されているリクエストパラメータを付与する事が出来る。
>>> from doco.client import Client >>> user = { 'nickname': 'ふー', 'nickname_y': 'フー', 'bloodtype': 'O', 'birthdateY': 1997, 'birthdateM': 12, 'birthdateD': 31 } >>> c = Client(apikey='YOUR_API_KEY', user=user)
あるいは send に渡す事ができる。
>>> from doco.client import Client >>> user = { 'nickname': 'ふー', 'nickname_y': 'フー', 'bloodtype': 'O', 'birthdateY': 1997, 'birthdateM': 12, 'birthdateD': 31 } >>> c = Client(apikey='YOUR_API_KEY') >>> c.send(utt='こんにちは', apiname='Dialogue', **user)
cli アプリケーション
ついでにサンプルとして、cli アプリケーションとして、インタラクティブシェルなものを作ってみた。
$ python examples/dialogue_cli.py -i Welcome to docomo dialogue cli. ^D to exit. >>> こんにちは はろー >>>
適当に会話してくれる。
キャラ
キャラ設定もできる。
$ python examples/dialogue_cli.py -i -t 30 Welcome to docomo dialogue cli. ^D to exit. >>> げんき? 元気でちゅ >>>
20 が関西弁で、30 が赤ちゃん。
しりとり
雑談対話 API には前の会話を引き継ぐ。
その機能として「しりとり」機能がある。
$ python examples/dialogue_cli.py -i -s Welcome to docomo dialogue cli. ^D to exit. >>> しりとり リング >>> グッズ 頭痛 >>> 海 道のり >>> リンゴ ゴリラ >>> ラッパ パスポート >>>
ちゃんと「しりとり」してくれる。