环境准备-工具导入
- HuTool
Hutool 是主流的 Java 工具类库,集合了丰富的工具类,涵盖字符串处理、日期操作、文件处理、加解密、反射、正则匹配等常见功能。它的轻量化和无侵入性让开发者能够专注于业务逻辑而不必编写重复的工具代码。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.38</version>
</dependency>
- Knife4j
Knife4j 是基于 Swagger 接口文档的增强工具,提供了更加友好的 API 文档界面和功能扩展,例如动态参数调试、分组文档等。它适合用于 Spring Boot 项目中,能够通过简单的配置自动生成接口文档,让开发者和前端快速了解和调试接口,提高写作效率。
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
- lombok
Lombok 是一个 Java 库,它通过注解的方式减少 Java 代码中的模板代码,让开发者能够更简洁地编写代码。它的核心思想是通过注解处理器在编译阶段自动生成 getter、setter、构造函数等重复代码,从而提高开发效率并使代码更易维护。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
一、SDK调用
接入方式:SDK调用。
优点:开发便捷性高,只需引入依赖即可像调用本地方法一样调用AI能力;稳定性与可靠性强,官方维护,对网络波动、重试机制等进行了优化;类型安全,有清晰的请求和响应对象;生态支持好,通常有完整文档、示例代码和社区支持。
缺点:项目需要引入额外的SDK依赖;需关注SDK版本更新,可能存在兼容性问题;对最新AI模型或功能的适配可能存在滞后。
适用场景:
大多数业务应用场景,如需要稳定、高效、便捷接入AI能力的场景。
二、HTTP调用
接入方式:HTTP调用。
优点:语言无关性,任何支持HTTP请求的编程语言都可调用,灵活性极高;无需额外依赖,使用语言自带的HTTP客户端库即可;能更快获得最新功能,AI服务提供商通常先发布HTTP API。
缺点:需要手动构建请求URL、设置请求头和请求体,解析响应体,开发成本高;网络延迟可能影响用户体验;数据隐私风险相对较高;定制化程度相对较低;频繁调用成本可能较高。
适用场景:对灵活性要求极高,需要与AI服务进行极低级别交互,或官方SDK不支持最新功能的场景。
三、Spring AI
接入方式:Spring AI
优点:与Spring Boot、Spring Cloud等生态组件无缝衔接,依赖管理方便;提供标准化的API抽象层,降低AI开发技术门槛;具备事务管理、安全认证、监控与追踪等企业级特性。
缺点:主要支持OpenAI等海外模型,对国内模型支持相对较弱;更适合简单问答、provider封装、API集成等场景,对于复杂的多步骤推理等场景支持不如LangChain4j。
适用场景:已采用Spring技术栈的企业进行业务系统智能化改造,如银行核心系统风控模型集成;微服务架构下的AI服务部署;医疗、金融等对数据安全和合规性要求严格的行业应用。
四、LangChain4j
接入方式:LangChain4j
优点:对多种大语言模型兼容,可在运行时动态切换模型;提供丰富的提示构建工具和强大的上下文管理能力;支持与外部工具深度集成,通过FunctionCall机制实现模型与工具协同工作。
缺点:学习成本略高,偏工程化;不是原生集成Spring生态,需要进行集成操作。
适用场景:构建复杂对话系统、知识问答系统、自动化工具机器人等;创新型AI产品快速原型开发;学术研究与定制化模型探索;多语言、多模态交互应用。
浙公网安备 33010602011771号