如何让api.ai代理动态学习内容?

时间:2016-02-08 23:01:14

标签: android json nlp artificial-intelligence dialogflow

我目前正在使用api.ai,创建代理来执行特定任务,但我无法回答的一个问题是,我可以让它在聊天时学到一些东西,意思是我说话我的名字是'John Cena',她应该存储它,然后每当我再问她时,机器人应该回答我。我知道有一种方法可以通过登录 api.ai web并手动添加条目来实现,但它无济于事,是否有任何编程或自动的工作?我一直用来练习的文件在github中给出。这是工作DEMO

2 个答案:

答案 0 :(得分:4)

你基本上需要你的机器人“学习”事实。有许多不同的方法可以实现这一点,但最近最常见的方法是将知识安排到语义“三元组”中并将知识存储到Graph存储库(如Neo4j,Titan,Spark Graph等)中。在你的例子中,“我的名字是约翰塞纳”将翻译成三个像(“anubava”,“名字”,“约翰塞纳”)。这样,下次你以anubhava登录并询问“我的名字是什么?”时,它会转换为图形搜索,返回“John Cena”。需要注意的是,实现这一目标并非易事,需要进行大量的微调。有关详情,请查看herehere

最后,大多数完整的解决方案(我所知道的)都是服务器端解决方案。如果您希望整个知识库驻留在您的移动设备中,您可以使用那里的资源作为灵感,并使用嵌入式数据库构建您自己的Linked Data存储库。

希望这会有所帮助。祝你好运。

答案 1 :(得分:1)

要存储和调用用户名,您需要设置具有一些基本数据持久性功能的webhook。任何数据库或键值存储都可以正常工作。

以下是细分:

  1. 实现捕获用户名称的意图的webhook实现。 webhook应该存储名称以及您应该在sessionId中从前端提供的唯一ID标识,或者作为/query调用中的上下文参数。
  2. 实现读取用户名称的意图的webhook实现。 webhook应该按ID查找名称并返回一个响应,告诉用户他们的名字。
  3. 编写履行webhook的高级文档在这里:

    https://docs.api.ai/docs/webhook