9

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

4

2 回答 2

4

您基本上需要您的机器人“学习”事实。有很多不同的方法可以实现这一点,但最近最常见的方法是将知识安排到语义“三元组”中,并将知识存储到 Graph 存储库中(如 Neo4j、Titan、Spark Graph 等)。在您的示例中,“我的名字是 John Cena”将翻译成三重像(“anubava”、“Name”、“John Cena”)。这样,下次您以 anubhava 身份登录并询问“我叫什么名字?”时,它会转化为返回“John Cena”的图形搜索。需要注意的是,实现这一点并非易事,需要进行大量微调。有关更多信息,您可以在此处此处查看

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

希望这可以帮助。祝你好运。

于 2016-07-18T15:39:48.380 回答
1

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

这是细分:

  1. 为捕获用户姓名的意图实现 webhook 实现。webhook 应该存储名称以及一个唯一的标识 ID,您应该从前端提供该 ID,sessionId或者作为调用/query.
  2. 为读取用户名的意图实现 webhook 实现。webhook 应该通过 ID 查找名称并返回一个告诉用户他们的名字的响应。

编写实现 webhook 的高级文档在这里:

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

于 2017-06-21T17:50:32.237 回答