ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Spring AI (第一章) 如何接入AI大模型

Spring AI (第一章) 如何接入AI大模型 Spring AI (第一章) 如何接入AI大模型文章目录Spring AI (第一章) 如何接入AI大模型一、Spring AI开发项目的注意事项1.1 Spring Boot版本问题1.2 Spring AI依赖版本问题1.3 模型选择以阿里云百炼为例二、获取API Key三、章节目的四、新建项目四、简单的模型对话4.1 导入依赖4.2 配置文件4.3 构建大模型聊天对象代码4.4 聊天对象测试代码五、相关的资源文档5.1 DashScope(阿里灵积)5.2 Spring AI Alibaba5.3 文档的作用一、Spring AI开发项目的注意事项1.1 Spring Boot版本问题建议使用 Spring Boot 3.4.x最低 3.0。选择稳定小版本避免与 Spring AI 的兼容性问题升级时先看 Spring AI Release Notes/兼容矩阵。1.2 Spring AI依赖版本问题学习/快速接入建议用spring-ai-alibaba对阿里百炼做了易用封装。Spring AI 相关组件版本强相关尽量使用官方推荐的成套版本不要随意“只升一个”。不同小版本 API 可能不兼容升级要做编译/运行双验证关注弃用项与包名迁移。用 BOM 锁版本统一管理依赖树减少冲突遇到冲突优先排除传递依赖而不是硬升。Spring AI框架相关依赖的版本号都是环环相扣、新手最好不要随意改动版本号、按照教程推荐的来1.3 模型选择以阿里云百炼为例选型关注点上下文窗口、价格、延迟、工具调用/函数调用支持、流式输出、对齐策略。阿里百炼大模型广场基本上市面上常见的多模态、图片生成、视频生成、语音生成都支持二、获取API Key后续在代码接入大模型需要配置API Key、平台对每个用户提供了免费的token额度三、章节目的引入模型、简单的对话、调通阿里云大模型API并拿到响应四、新建项目Server Urlhttps://start.spring.io选择Spring Boot 3.0以上的版本项目新建完成Maven仓库、推荐另外新建一个3.8以上的版本四、简单的模型对话4.1 导入依赖基础依赖!-- 提供构建Web应用所需的核心组件包括Spring MVC与内置Tomcat服务器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- 单元测试依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency阿里巴巴 百炼 灵积 大模型!-- 阿里巴巴 百炼 灵积 大模型依赖 2.19.1 --dependencygroupIdcom.alibaba/groupIdartifactIddashscope-sdk-java/artifactId!-- 请将 version 替换为最新版本号https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java --version2.19.1/version/dependency!-- 引入阿里巴巴的 spring-ai-alibaba 依赖更好的兼容spring ai 接入大模型 --dependencygroupIdcom.alibaba.cloud.ai/groupIdartifactIdspring-ai-alibaba-starter/artifactIdversion1.0.0-M6.1/version!-- 排除nacos-config依赖、防止控制台打印警告 --exclusionsexclusionartifactIdlogback-classic/artifactIdgroupIdch.qos.logback/groupId/exclusionexclusiongroupIdcom.alibaba.cloud/groupIdartifactIdspring-alibaba-nacos-config/artifactId/exclusion/exclusions/dependency4.2 配置文件配置文件application.ymlspring:application:name:exi-ai-agentprofiles:active:local# 激活application-local.yml配置文件server:port:8799# 后端应用端口servlet:context-path:/api# 设置API接口前缀配置文件application-local.ymlspring:application:name:exi-ai-agentai:dashscope:api-key:AI_DASHSCOPE_API_KEY# 阿里百炼Keychat:options:model:qwen3-max# qwen-plus、选择百炼支持的模型# 增加超时时间timeout:60000# 60秒connection-timeout:30000# 30秒read-timeout:60000# 60秒4.3 构建大模型聊天对象代码importlombok.extern.slf4j.Slf4j;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.ai.chat.model.ChatModel;importorg.springframework.ai.chat.model.ChatResponse;importorg.springframework.stereotype.Component;/** * 初始化大模型聊天对象 */ComponentSlf4jpublicclassChatApp{/** * ChatClient 是 Spring AI 提供的一个轻量级客户端基于 ChatModel 的上层封装用于构建、发送聊天请求并处理大模型的回复。 * * 核心能力 * 易用封装: 基于 ChatModel 的 builder API减少直接拼 JSON 的负担。 * 消息结构: 支持 system、user、assistant 多角色消息。 * 上下文与记忆: 可接入如 MessageChatMemoryAdvisor 之类的记忆/拦截器。 * 工具/函数调用: 可注册工具以启用函数调用不同模型支持度不同。 * 流式响应: 支持逐 token/段落流式消费。 * 可组合: 通过拦截器/Advisor 叠加安全、重试、日志等能力。 */privatefinalChatClientchatClient;publicChatApp(ChatModeldashscopeChatModel){// 使用阿里的dashscopeChatModel初始化大模型聊天对象chatClientChatClient.builder(dashscopeChatModel).build();}/** * 通过chatClient根据用户参数进行答复 * param message * return */publicStringdoChat(Stringmessage){// 模型返回的所有内容包括回答文本和元信息都会被封装进一个 ChatResponse 对象中。ChatResponsechatResponsechatClient.prompt().user(message)// 用户消息.call()// .call() 阻塞式的响应.chatResponse();// 大模型响应的文本内容StringcontentchatResponse.getResult().getOutput().getText();// token 用量统计varusagechatResponse.getMetadata().getUsage();log.info(【对话请求】用户消息{},message);log.info(【用量统计】tokens {},usage);log.info(【模型响应】内容{},content);returncontent;}}4.4 聊天对象测试代码SpringBootTestclassChatAppTest{/** * Resource 注解的作用是先根据字段名后根据类型 来自动匹配注入对应的 Bean */ResourceprivateChatAppchatApp;TestvoiddoChat(){Stringmessage你好我叫小洲;StringanswerchatApp.doChat(message);}}测试结果五、相关的资源文档5.1 DashScope(阿里灵积)官方文档1、阿里云百炼平台SDK官方文档https://help.aliyun.com/zh/model-studio/install-sdk2、通义千问(DashScope)示例文档https://bailian.console.aliyun.com/?tabapi#/api/?typemodelurl27125765.2 Spring AI Alibaba1、Spring AI Alibaba官方文档支持DashScope更好接入Spring AI框架https://java2ai.com/5.3 文档的作用在调试新功能的过程中遇到问题、可以查阅官方文档、查看每个API的示例代码可以根据应用场景去官方的模型广场选择合适的大模型
返回列表