有没有办法通过代码跳到Watson中的对话框节点?

时间:2019-02-13 07:55:30

标签: python ibm-cloud ibm-watson watson-conversation

在Watson对话中,我要做的第一件事是询问用户ID。我在python中收到该消息,并在一个简单的db中检查是否存在id(这是一个非常简单的逻辑)。

现在,如果用户不存在于我的数据库中,我想跳到节点1。所以我一直在寻找 python 来执行此操作,因为Watson无法检查我的数据库。

我一直在查看一些信息。 this是最有用的,但是我搜索了more

寻找插槽和处理程序对我来说也很有趣,但是同样,它们无法检入我的简单数据库。

我期待这样的事情:

  • 节点1:询问ID
  • 如果id存在,则:
  • 节点2:嗨,$ name!等等等等
  • 但是如果id不存在,请跳到节点1。

我做了一个简单的功能,以便了解我想做什么:

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访问此参数,但是我没有发现任何与此相关的信息。

source of that

先谢谢了。如果您认为可以编辑该问题以加以改进,请对其进行评论,我会尽力做到这一点。

1 个答案:

答案 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进入预期的处理过程。