对话模型接口描述
Spring AI基于Spring Cloud的架构体系,定义了一系列可扩展的API接口,支持对接不同类型的AI大模型的核心功能,这些API接口支持同步编程模式或者异步编程模式:
接口Model
Model是同步编程模式接口,其参数支持同步请求与响应:
接口Model的模型类型的继承实现的抽象具体关系:
接口StreamingModel
StreamingModel是异步编程模式接口,其参数支持异步流式请求与响应:
接口StreamingModel的模型类型的继承实现的抽象具体关系:
接口ChatModel
ChatModel是对话模型的扩展接口,不同AI模型的厂商独立实现该接口,在Maven项目中,需要独立引入对应AI模型厂商的依赖库:
接口ChatModel继承了同步编程接口Model以及异步编程接口StreamingChatModel,该接口既支持同步编程模式,也支持异步编程模式:
在Maven项目中,引入了AI模型厂商DeepSeek的依赖库,接口ChatModel的模型类型的继承实现的抽象具体关系:
Prompt提示词接口描述
接口ModelRequest
对话模型的请求信息接口ModelRequest,所有对话模型的请求信息都实现该接口,包括提示词:
请求信息接口ModelRequest的继承实现的抽象具体关系:
接口ModelResponse
对话模型的响应信息接口ModelResponse,所有对话模型的响应信息都实现该接口:
响应信息接口ModelResponse的继承实现的抽象具体关系:
提示词类Prompt
提示词类Prompt的继承实现的抽象具体关系,其中,接口Message用于封装消息内容:
Spring AI消息内容接口
Spring AI消息内容接口的继承实现的抽象具体关系:
接口Content
消息内容顶层接口Content,所有内容消息类型都实现该接口:
消息内容顶层接口Content的继承实现的抽象具体关系:
接口Message
消息内容接口Message,所有消息内容类型都实现该接口:
消息内容接口Message的继承实现的抽象具体关系:
接口MediaContent
多媒体内容接口MediaContent:
多媒体内容接口MediaContent的继承实现的抽象具体关系:
抽象类AbstractMessage
消息内容的抽象类AbstractMessage,所有消息内容类型都实现该类:
消息内容的抽象类AbstractMessage的继承实现的抽象具体关系:
接口MessageType
消息内容的消息类型,其中,包括user类型,该类型的消息来自客户端用户,assistant类型,该类型的消息来自AI模型的响应,system类型,该类型的消息来自系统级别的指示,tool类型,该类型的消息来自工具调用中的功能需求:
消息内容为user类型的类:
消息内容为assistant类型的类:
消息内容为system类型的类:
消息内容为tool类型的类:
Spring AI应用与AI模型的业务流程
Spring AI应用获取客户端输入的提示词Prompt,Spring AI应用处理输入的Prompt,向AI模型发起请求,AI模型处理业务,AI模型响应Spring AI应用的请求,Spring AI应用处理输出,响应客户端的请求:
工具调用流程
Spring AI支持的AI模型工具调用的业务流程:
1.Spring AI应用接受客户端的请求,向AI模型发起对话的请求,请求信息包括工具调用的元数据信息,名称、描述以及输入数据
2.AI模型向Spring AI应用发起工具调用的请求,Spring AI应用向第三方的开放接口转发AI模型的请求
3.Spring AI应用调用第三方的开放接口
4.第三方的开放接口响应Spring AI应用的请求
5.Spring AI应用响应AI模型的请求
6.AI模型响应Spring AI应用的请求,Spring AI应用响应客户端的请求
数据标准化流程
Spring AI提供开发框架支持数据标准化的业务流程,读取数据源输入的文档文本,对文档文本执行标准化处理,输出文档文本到存储中保存:
DeepSeek对话模型应用开发
搭建开发环境
Spring AI支持很多AI模型的集成开发,其中,包括DeepSeek大模型,注册登录DeepSeek官方网站,获取开放平台提供的API接口调用的API-keys,在Spring Boot Maven项目的属性配置文件中设置spring.ai.deepseek.api-key,在Maven配置文件中引入deepseek-ai开发依赖库以及webflux开发框架依赖库:
开发AI应用服务
定义Spring AI 应用的web服务接口,初始化DeepSeek的AI模型对话客户端:
定义Spring AI 应用的同步编程模式的web服务接口,Spring AI应用向AI模型发送对话请求,Spring AI应用向客户端响应AI模型的对话请求:
定义Spring AI 应用的异步编程模式的web服务接口,Spring AI应用向AI模型发送对话请求,Spring AI应用向客户端异步流式响应AI模型的对话请求: