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,这就意味着不只是文本模型交互,同样可以使用语音合成模型,以及语音识别模型等其他模型。

media组合了assistantmessage,assistantmessage继承自mediacontent。

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