这周,我探索并实现了多轮交互,即用户最初给出回答后,智能体根据用户已经回答的内容获取自己想要得到的信息,然后再次询问用户得到一些关键信息,层层深入的方式,给用户提供更全面、个性化的旅行方案推荐。
思考业务逻辑,即逐步获取用户的信息,得到完整的信息最开始我设想将每次输入传入后端,但我后来发现这样其实后端每次只能获取一部分信息,如带孩子,想去大明湖,无法拼成完整的信息,且F12观察输入,发现其实每次生成的结果都来自于最后一次用户的输入,无法得到前面用户输入的信息,即达不到预期效果。
我修改代码,这里我选择在前端首先捕获每次的输入,将输入的信息拼接成一段关键词形成的话语,再发给后端,即层层交互获取信息是在前端实现的,后端只需要最后的输出,这样也极大减轻了后端每次输出的消耗
同时为了达到更好的交互效果,我应该在用户每次回复之后,首先回顾一下用户上次说的内容,再引出更深的问题,提升用户的交互体验。
在回复方面,我考虑到应该着重突出形成的重点,简化一下不必要的叙述,即我通过正则表达式只匹配行程的路径信息。
最后效果如下:
将接收到的输入进行拼接,输给后端
可以看到,行程规划里考虑到了用户想去大明湖,带孩子(推荐了济南野生动物园),极大的提升了推荐的个性化。