spring-ai 1.0.0 (2)提示词,消息构建和移植能力
之前在做小芊的时候有一个问题,就是百炼额度用完后切换本地模型提示词就不适用了,这里的消息模板系统从外部引入配置的提示词就很好,下面先参考官网说明提示 :: Spring AI Reference
解释一下:
首先是messagetype,它抽象了system,user,assistant,tool四个消息类型
同时又依赖于abstractmessage
abstractmessage泛化了message,message和mediacontent同时泛化了content顶层接口
最终abstractmessage抽象了toolresponsemessage,systemmessage,usermesage,assistantmessage四个类型的message,
其中usermessage组合了media,这就意味着不只是文本模型交互,同样可以使用语音合成模型,以及语音识别模型。
Resource imageResource = new ClassPathResource("image.jpg");
Media imageMedia = new Media(MimeTypeUtils.IMAGE_JPEG, imageResource);UserMessage multimodalMessage = new UserMessage("What do you see in this image?", List.of(imageMedia)
);
下面说下消息模板渲染 :Prompt and Message System | spring-projects/spring-ai | DeepWiki
TemplateRenderer顶层接口组合了StTemplateRenderer,NoOpTemplateRenderer
TemplateRenderer又依赖于PromptTemplate
PromptTemplate接着抽象了PromptTemplateActions,PromptTemplateMessageActions
其中PromptTemplateStringActions泛化了PromptTemplateActions
消息模板渲染主要作用就是构建不同类型的消息,通常可能配合后面的advice顾问再次增强和优化消息
下面是propmt和message的关系它组合了Message,:
Prompt and Message System | spring-projects/spring-ai | DeepWiki
基本用法:提示和消息系统 |spring-projects/spring-ai 的 |深度维基
消息模板渲染:
也可以自己继承PromptTemplateStringActions,PromptTemplateMessageActions,PromptTemplateActions实现自定义消息模板
最后聊天客户端:
ChatClient组合了promt:ChatClient API | spring-projects/spring-ai | DeepWiki
使用ChatClient构建消息:
还有就是他的输出转换能力,调用模型跟调用方法一样直接返回dto:ChatClient API | spring-projects/spring-ai | DeepWiki