在学习spring-ai时,有一个底层逻辑模型非常重要,理解后对于学习spring-ai有着事半功倍的效果

那就是围绕着模型调用相关的抽象概念,下面是spring官方给出的图:

为了方便理解,我们在此基础上进一步简化:

Model模型

ModelRequest   -> Moel  -> ModelResponse
|-- T instructions call |-- List<ModelResult>
|-- ChatOptions |-- ResponseMetadata

Model:即我们调用的大模型,提供call方法,输入ModelRequest,输出ModelResponse

ModelRequest:调用大模型时的输入,包含指令instructions和模型参数ChatOptions

ModelResponse:调用大模型时的输出,包含调用结果List<ModelResult>和响应元数据ResponseMetadata

这就是大语言模型调用的底层逻辑模型

其他如聊天模型,嵌入式模型,文生图模型等等都是在此基础上衍生的,各个部分都继承了上面逻辑模型的接口,以聊天模型接口为例:

ChatModel模型

Prompt ChatModel ChatResponse
|-- List<Message> call |-- List<Generation>
|-- ChatOptions stream |-- ChatResponseMetadata

各个部分与Model模型一一对应,分别继承自对应接口,同时实现类结构也类似,以ZhiPuAiChatModel为例:

ZhiPuAiChatModel模型

Prompt ZhiPuAiChatModel ChatResponse
|-- List<Message> call |-- List<Generation>
|-- ZhiPuAiChatOptions stream |-- ChatResponseMetadata

可以看出实现类也是与Model模型同样的组织形式,其他大语言模型的实现也是类似的,所以理解Model模型对我们学习理解spring-ai和阅读源码意义重大。

熟悉了上述模型后,看到诸如Message或者Generation后,可以第一时间理解其定位和大概作用。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐