AI 服务化是指将原本只能本地运行的 AI 能力转化为可远程调用的接口服务,使更多人能够便捷地访问 AI 能力。通过本节学习,你将掌握如何将 AI 智能体转变为可供他人调用的服务。编程导航教程分享,做您编程学习路上的导航员。
AI 服务化是指将原本只能本地运行的 AI 能力转化为可远程调用的接口服务,使更多人能够便捷地访问 AI 能力。通过本节学习,你将掌握如何将 AI 智能体转变为可供他人调用的服务、利用 AI 生成对应的前端项目,并且将项目的前后端通过 Serverless 部署上线。
具体内容包括:VVLSZX3Cpjji3SpiWQ7k8Q==kVqHXKceggP8ZnjJGQHeBseyUNNXr+64Iv7kJbZzVb4=
在开始之前,先给大家提个醒,Spring AI 版本更新飞快,有些代码的写法随时可能失效,尽量以 官方文档 为准。
我们平时开发的大多数接口都是同步接口,也就是等后端处理完再返回。但是对于 AI 应用,特别是响应时间较长的对话类应用,可能会让用户失去耐心等待,因此推荐使用 SSE(Server-Sent Events)技术实现实时流式输出,类似打字机效果,大幅提升用户体验。
接下来我们会同时提供同步接口(一次性完整返回)和基于 SSE 的流式输出接口。
首先,我们需要为 LoveApp 添加流式调用方法,通过 stream 方法就可以返回 Flux 响应式对象了:
public Flux<String> doChatByStream(String message, String chatId) {
return chatClient
.prompt()
.user(message)
.advisors(spec -> spec.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)
.param(CHAT_MEMORY_RETRIEVE_SIZE_KEY, 10))
.stream()
.content();
}
💡 建议不要直接使用 ChatResponse 作为返回类型,因为这会导致返回内容膨胀,影响传输效率。所以上述代码中我们使用 content 方法,只返回 AI 输出的文本信息。