在不到一个月的时间,对
Spring AI
框架整体进行了学习,并分析其实现的原理,本篇文章对Spring AI框架进行一个总结。 专栏:Spring AI 框架原理与实战
Spring AI 框架是什么?
一句话总结:Spring AI
框架是一个各大模型的接入框架,对各模型的接入进行抽象封装,屏蔽底层细节,快速完成对大模型的集成,其本身并不是AI
。
Spring AI 都提供了什么?
一张图说明Spring AI
框架的能力,借助官网说明文档;
Spring AI
提供的核心能力就在Spring AI API
目录下,每一项的作用解释;
- Chat Client API:
聊天大模型交互的统一接口,流式编程模式,提供了同步和响应式两种方式,内部维护一个
ChatModel
,在使用上更为方便,返回值获取、返回值格式化上都相当方便。
- Chat Model API:
截止2024/06/27 Spring AI支持13种ChatModel API。每个大模型的聊天请求API,比如,OpenAI有OpenAIChatModel、Ollama有OllamaChatModel,通过ChatModel都可以创建Chat Client进行使用。
- Embedding Model API:
截止2024/06/27 Spring AI支持12种Embedding Model API。主要完成文档嵌入,将文字转换为向量,如在构建RAG应用时,必不可少。
- Image Model API:
截止2024/06/27 Spring AI支持5种Image Model API。主要完成文生图功能
- Audio Model API:
截止2024/06/27 Spring AI支持2种Audio Model API。主要完成文字转语音,语音转文字,翻译等功能。
- Vector Databases:
向量数据库的集成,目前支持17种向量数据库集成,比如像我们比较熟悉的Redis、Neo4j、ElasticSearch等。如在构建RAG应用,必不可少
- Function Calling:
函数调用。并不是所有模型都支持函数调用的。
- Multimodality:
多模态,并不是所有模型都支持多模态。
- Prompts:
提示词,主要功能可以根据提示词模板生成提示词,在开发中使用很频繁。
- Structured Output:
结构化输出,可以按照Bean、List、Map等方式输出,根据需求可以自行选择
- ETL Pipline:
数据抽取、转换、加载,如在实现RAG应用时,需要将外部的文档、PDF、PPT、DOC、图片作为大模型回答上下文时,如构建一个知识问答系统、客服系统等,都需要该技术
- Evaluation Testing:
评估测试,评估大模型生成结果是否符合要求,有没有产生幻觉。比如在对大模型进行微调之后,需要对微调效果进行评估等
- Generic Model API:
通用API
Spring AI 的发展
Spring AI 目前处于快速迭代开发的阶段,在架构设计上基本成型,但是在API设计上可能还处于不稳定的状态,如在0.8.1版本与1.0.0.M1版本在Structured Output模块上xxxParser
更名为xxxxConverter
在ChatClient模块,ChatClient
的功能迁移到ChatModel
,ChatClient提供了新的使用方式等变更。
建议:使用最新版本的 Spring AI。 如果使用了低版本的,可以参考upgrade-notes 进行相应的修改。
Spring AI 框架也逐步对国内大模型的集成变得越来越友好了,逐步支持了智普大模型、月之暗面大模型以及千帆大模型,在开始写Spring AI 专栏刚开始还仅仅只支持智普大模型的接入,相信Spring AI
会越来越全面。
阿里巴巴在集成大模型上也没有落后,也出了Spring Cloud Alibaba AI,目前基于Spring AI 0.8.1版本基础上开发的。很好支持阿里自己的千问大模型的集成,同时可以很好的与阿里的 Spring Cloud Alibaba 各组件很好的融合。大家也可以选择使用使用。
Spring AI框架相比于LangChain框架来说 其能力还有一定的差距!比如在工具调用、对ReAct提示技术的支持等等。
Spring AI 专栏内容
本专栏一共提供18篇文章,从Spring AI
框架的基本介绍、源码分析到代码示例。详细分析了每个模块的使用,目前来说应该是对Spring AI框架讲解比较透彻的专栏啦。
这些文章是对Spring AI框架集成大模型的基本使用,通过对Spring AI框架的学习也不断的了解到了大模型相关的技术。对于Java开发者来说,先了解框架是必要的,它是开发智能应用的一个基础。掌握基础后在不断的深入大模型底层原理更好的去落地一个智能应用。
对于落地一个智能应用单纯的掌握Spring AI还相差甚远,我们还需要不断的学习,比如:
- 提示词工程,如何激发大模型的潜力。
- RAG,如何补充大模型的不足,“幻觉”及“领域知识不足”问题
- 模型微调,如何提升模型的性能等等
真正的想做好一个智能应用,并不是那么容易,需要很多架构上的设计、技术难点的解决等等。但是选择一个好的场景并使用AI赋能据了解更是难上难。期待AI应用的发展和落地!!!
Github 示例代码
如果在文章中或者示例代码有与您理解不一致的地方,希望大家提出,多多讨论,共同进步。至此 Spring AI框架的专栏就完结了!
后续
随着Spring AI
框架不断发展,会有一些新特性、框架上的升级,我也会持续关注,并提供给大家。