今天做了一个fuction calling的demo,想要让SpringAI的智能体能够自己去调用接口进行增删改查,但是一直有一个问题。
以美团智能客服举个例子这样,我骑美团单车,之后由于网络波动或者其他原因,我无法正常通过页面的"关锁"按钮进行关锁,于是我就去美团客服中咨询智能客服,客服会帮我查询最近一笔单车的订单,并且询问我是否关锁,此时我再次确认关锁,之后美团智能客服就会帮我把骑行订单的状态修改为"已完成"并成功关锁。
所以这里涉及到了一个"确认"机制,但是我自己的提示词中
this.chatClient = modelBuilder
.defaultSystem("""
....前文
在关锁之前,必须确保条款允许这样做,且必须在继续之前征得用户同意
...后文
""")
.defaultAdvisors(
new PromptChatMemoryAdvisor(chatMemory),
new QuestionAnswerAdvisor(vectorStore, SearchRequest.builder().build()),
new SimpleLoggerAdvisor()
)
.defaultTools(lockTool)
.build();
我用上述的system提示词创建了一个chatClient,当智能客服到达"当前已查询到单车订单,请您再次确认之后即可关锁"的时候,确实就会停顿一下。
但是没等我输入确认,智能客服就自己去调用接口并关锁并返回最终结果了!!也就是这里system提示词的"在关锁之前,必须确保条款允许这样做,且必须在继续之前征得用户同意"生效了,但是没有完全生效!!!
很困惑,查了资料也没发现为什么,期待解答。
195

被折叠的 条评论
为什么被折叠?



