Python 与 Wit.ai 整合

Python integration with Wit.ai

我是 Wit.ai 的新手,我正在尝试制作一个聊天机器人。这是直接来自快速入门的聊天机器人。我做错了什么?

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

import sys
from wit import Wit

if len(sys.argv) != 2:
    print('usage: python ' + sys.argv[0] + ' <wit-token>')
    exit(1)
access_token = sys.argv[1]

client = Wit(access_token=access_token)
client.interactive()

def set_temperature(temp):
    print('hi')

def get_temperature():
    print('bye')

我想执行函数 set_temperature 和 get_temperature。

python3 wit_test.py IG3OBYOAQJJPDCQFNLPVVXDCM6TS5ZPN
> make the temperature 45                                                       
{'_text': 'make the temperature 45', 'entities': {'intent': [{'confidence': 0.986478544826, 'value': 'set_temperature'}]}, 'WARNING': 'DEPRECATED', 'msg_id': '1CyIOWaEfapF9bbh0'}
> what is the temperature                                                       
{'_text': 'what is the temperature', 'entities': {'intent': [{'confidence': 0.98791564105294, 'value': 'get_temperature'}]}, 'WARNING': 'DEPRECATED', 'msg_id': '1qPNFDlSmECpUN8UG'}

而不是 {'_text': 'make the temperature 45', 'entities': {'intent': [{'confidence': 0.986478544826, 'value': 'set_temperature'}]}, 'WARNING': 'DEPRECATED', 'msg_id': '1CyIOWaEfapF9bbh0'} 我想打印 hi。 谢谢!

如果我理解正确的话:

def interactive(self, handle_message=None, context=None) 我会说你可以在开始与你的 bot 的交互式对话时输入你想要的消息


client.interactive(handle_message = "I will handle the temperature")

如果您想使用某些功能自定义消息,您可以这样做:


def set_temperature(temp, msg):
    return "{0} I am setting the temperature to {1}".format(msg,temp)

client.interactive(handle_message = set_temperature("hi",25))