gpt4 book ai didi

php - Chatbot - 如何通过单一响应识别和处理多个请求

转载 作者:行者123 更新时间:2023-12-04 17:43:41 25 4
gpt4 key购买 nike

这一定是一个常见问题,但我找不到任何讨论它的资源。相反有很多(对单个请求发送多个响应)。

有一种常见的人对人聊天方式,其中 personA 快速发送第二条消息以添加或更正他们的第一条消息。这也经常被尝试与聊天机器人一起使用,例如:

Bot: Where should we deliver the pizza?
User: 123 main street sprnigfelid
User: springfield
Bot: (response to input #1 )
Bot: (response to input #2 )

现在的问题是机器人是否足够聪明以识别拼写错误或足够开放以从第一个输入中接受它们。 session 将像这样进行:

User: 123 main street sprnigfeld
User: springfield
Bot: OK, 123 Main St., Springfield. What state is that in?
Bot: Got it, I will deliver to 123 Main St., Springfield, Springfield. Is that location correct?

机器人还有很多其他情况和方式可能会弄错这些多个快速输入,而双重响应让用户想知道哪里出了问题,并对他们在对话中所处的位置感到困惑。

那么有人尝试过处理这个吗?

我正在寻找一种方法的一般指导,但如果有人有具体的答案,我在用户和 Lex 机器人之间使用 PHP 代理。在将传入消息传递给 Lex 之前,我使用此代理来验证和解析传入消息。我还存储 session 信息。我尝试过的一件事是存储一个 input_count #,以尝试在发送第一个响应之前检测是否有新输入进来。

但是,似乎 PHP 可能会在第一个输入完成之前对第二个输入进行排队,因此我的 input_count # 永远不会发生变化。因此,即使用户发送了很多快速输入,我的机器人也会对每一个做出响应。

最佳答案

当前的聊天机器人开发系统没有机制(或至少是明确的机制)来处理这些情况(如果我错了请纠正我)。它通常是基于规则的问答。还同意处理对聊天机器人的输入不是一个好的通用解决方案。不过,您可以做的是创建一些包装器来检查这种情况。它可以按如下方式工作:

Bot: Where should we deliver the pizza?  
User: 123 main street sprnigfelid (you send first input to chatbot)
User: springfield (you send second input to chatbot, you make a note that two inputs were sent before first answer)
Bot: (response to input #1 ) (you receive answer, but you know there was a second input, you wait for second answer)
Bot: (response to input #2 ) (you compare the answers from the chatbot - are they the same?)

棘手的一点是比较答案是否“相同”——如果您知道聊天机器人正在使用地址进行响应,您可以比较该地址。您还可以通过比较两个输入消息来检测用户是否正在立即修复拼写错误 - 如果是这种情况,您可以尝试完全跳过对机器人的第二个输入并使用第一个答案中的对话上下文继续对话(这对于大多数聊天机器人工具包都是可能的)。

总的来说,我认为这不是用户与聊天机器人交流时通常遇到的主要问题。在这个特定示例中,聊天机器人给出了两个答案,但我会说用户答对了并且没有混淆 - 我认为这是聊天机器人的主要目标。

关于php - Chatbot - 如何通过单一响应识别和处理多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com