我正在使用Google Dialogflow(以前的API.ai)和一个代理,我希望能够通过一个代理处理许多不同客户的查询。
这背后的原因是由于GCD项目的开销和配额限制,我无法为每个客户创建一个新的GCD项目/代理。
我正在寻找解决这个问题的建议。我担心Dialogflow的算法会混乱并开始混淆意图,如果我添加了太多密切相关的算法。我希望代理只能查看客户的意图列表,而不是整个意图列表。
与此同时,我有共同的Small Talk意图,应该在客户之间共享。这意味着将上下文设置为客户端的ID可能不是一个完全可行的解决方案,因为那时不会使用公共的意图池。
总结一下,有:
在给定此设置的情况下,如何识别我的用户(附加到一个客户端)意图(最好是在单个请求中)?
谢谢。
答案 0 :(得分:1)
你正在做的事情对于简单的代理人来说已经足够了。
对于更复杂的代理,您可能希望在webhook中为第一个Intent(无论如何必须要做)识别客户端,然后为该客户端设置长期上下文。然后,您可以拥有为客户端定制的其他Intent,只有在上下文存在时才会触发。要明确,并引用the documentation:
输入上下文限制仅在设置了某些上下文时才匹配的意图。
如果您的对话组件适用于所有这些组件(小谈,有关使用该服务的常见问题等),那么您可以使这些版本不需要上下文。如果您已满足它们,您仍将获得任何活动的上下文(及其参数),因此您仍可以处理特定于客户的信息。
然而,最后 - 你不应该太担心你有多少个项目。如果接近极限,可以request a higher quota。