我目前正在使用api.ai,创建代理来执行特定任务,但我无法回答的一个问题是,我可以让它在聊天时学到一些东西,意思是我说话我的名字是'John Cena',她应该存储它,然后每当我再问她时,机器人应该回答我。我知道有一种方法可以通过登录 api.ai web并手动添加条目来实现,但它无济于事,是否有任何编程或自动的工作?我一直用来练习的文件在github中给出。这是工作DEMO
答案 0 :(得分:4)
你基本上需要你的机器人“学习”事实。有许多不同的方法可以实现这一点,但最近最常见的方法是将知识安排到语义“三元组”中并将知识存储到Graph存储库(如Neo4j,Titan,Spark Graph等)中。在你的例子中,“我的名字是约翰塞纳”将翻译成三个像(“anubava”,“名字”,“约翰塞纳”)。这样,下次你以anubhava登录并询问“我的名字是什么?”时,它会转换为图形搜索,返回“John Cena”。需要注意的是,实现这一目标并非易事,需要进行大量的微调。有关详情,请查看here和here。
最后,大多数完整的解决方案(我所知道的)都是服务器端解决方案。如果您希望整个知识库驻留在您的移动设备中,您可以使用那里的资源作为灵感,并使用嵌入式数据库构建您自己的Linked Data存储库。
希望这会有所帮助。祝你好运。
答案 1 :(得分:1)
要存储和调用用户名,您需要设置具有一些基本数据持久性功能的webhook。任何数据库或键值存储都可以正常工作。
以下是细分:
sessionId
中从前端提供的唯一ID标识,或者作为/query
调用中的上下文参数。编写履行webhook的高级文档在这里: