Python

[python]NOBY APIで人工知能と会話してみた

スポンサーリンク
Python
この記事は約3分で読めます。

CotoGotoが開発した人工知能、NOBYとNOBY APIを経由して会話してみました。
https://www.cotogoto.ai/webapi.do
ソースコードはこんな感じです。
githubはこちら

import urllib.request,urllib.parse
import json
import os
params = {
    "appkey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "text": "IPアドレスを調べてみたんだけど、本当はMACアドレスを知りたいんだよねー。",
    "persona": "0",
    "study": "1",
    }
p = urllib.parse.urlencode(params)
url = "https://www.cotogoto.ai/webapi/noby.json?" + p
# print(url)
with urllib.request.urlopen(url) as res:
    html = res.read().decode("utf-8")
    # print(html)
    data = json.loads(html)
    print(data["text"])
    print(data["commandId"])
if data["commandId"] == "ipconfig_exe":
    cmd = "ipconfig /all > C:/Users/hogehoge/Desktop\ipconfig.txt"
    os.system(cmd)

返ってくるのが↓です。

IPアドレスですか!
ipconfig_exe

「IPアドレスですか!」というのが、AIが返してきた言葉です。
「ipconfig_exe」がコマンドIDです。
このようにNOBY APIでは、登録したテキストに応じて、コマンドIDを返してくれます。
これを利用して、何かしらのアクションをプログラム上で起こせるのは魅力的ですね。
ちなみに、登録してあるコマンドは以下の通りです。

コマンドID コマンド名 単語 優先度 関連番号
ipconfig_exe ipconfig実行 IPアドレス 90 1
ipconfig_exe ipconfig実行 知りたい 90 2

コマンドIDとコマンド名を共通にして、関連番号をユニークにすると、AND条件での判定になるようですね。
ただ残念なのが、投げている言葉が「IPアドレスをね。調べてみたんだけど、本当はMACアドレスを知りたいのよ。」なので、IPアドレスを調べるためのコマンドを実行する必要がないにも関わらず、それを判断出来ていない事。
形態素解析と言語認識が搭載されているっぽいので、文脈からの判断までできるのかと期待していたのですが、そう甘くは無さそうですね。
とは言え、インターフェースとしての役割を担う事はできそうなので、割と個人的には期待できるのかなーとも思っています。
ちなみに、実際に実行した画面は↓です。

もう一段階かしこいチャットボットが欲しい!

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