在Watson对话中,我要做的第一件事是询问用户ID。我在python中收到该消息,并在一个简单的db中检查是否存在id(这是一个非常简单的逻辑)。
现在,如果用户不存在于我的数据库中,我想跳到节点1。所以我一直在寻找 python 来执行此操作,因为Watson无法检查我的数据库。
我一直在查看一些信息。 this是最有用的,但是我搜索了more。
寻找插槽和处理程序对我来说也很有趣,但是同样,它们无法检入我的简单数据库。
我期待这样的事情:
我做了一个简单的功能,以便了解我想做什么:
def checkingId(bot, update):
message=update.message.text #let's suppose it is already parsed, to make it simpler
result=cursor.execute("select name from users where id=message")
if(result!=None): #so if the id exists in the table
#no problem here, keep it going like normal watson would do
whatever()
else:
jumpToNode1InWatson (???)
我还看到json(?)中可能存在此参数dialog_node": "node1 or whatever it is"
,因此我可以通过python访问此参数,但是我没有发现任何与此相关的信息。
先谢谢了。如果您认为可以编辑该问题以加以改进,请对其进行评论,我会尽力做到这一点。
答案 0 :(得分:2)
此IBM Cloud solution tutorial for a database-driven chatbot具有与Watson Assistant中的数据库交互的代码。相关的GitHub回购针对Db2和PostgreSQL显示了它。这是通过IBM Cloud Functions操作完成的。另一种选择是使用client-side dialog action。
现在,一旦检查了ID,就将设置一个变量。然后,在对话框树中,您可能会具有以下条件:存在ID或ID具有特定值,以处理对话框节点或切换到对话框树的该分支。因此,您将迫使Watson Assistant进入预期的处理过程。