10分钟上手!Java开发者也能轻松调用AI,Spring AI Alibaba手把手教你构建智能体!
介绍还在羡慕Python开发者能轻松调用AISpring AI Alibaba让Java也能10分钟构建一个能“思考”和“行动”的智能体这次手把手教系统Windows jdk版本17 maven3.8 模型API Key阿里云百炼平台步骤一环境准备查看jdk版本java -version查看Maven版本mvn -version获取API Key阿里云百炼平台https://bailian.console.aliyun.com/步骤二创建项目并添加依赖在pom.xml中添加以下依赖dependencies !-- Spring AI Alibaba Agent框架核心 -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-agent-framework/artifactId version1.1.2.0/version /dependency !-- DashScope模型支持通义千问 -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-starter-dashscope/artifactId version1.1.2.0/version /dependency /dependencies刷新Maven依赖等待下载完成步骤三配置API Keyapplication.ymlspring: ai: dashscope: api-key: ${AI_DASHSCOPE_API_KEY}步骤四入门级Agent创建一个Java类 WeatherAgentDemo复制以下代码import com.alibaba.cloud.ai.dashscope.api.DashScopeApi; import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel; import com.alibaba.cloud.ai.graph.agent.ReactAgent; import org.springframework.ai.chat.model.ChatModel; public class WeatherAgentDemo { public static void main(String[] args) { // 1. 创建模型实例 DashScopeApi dashScopeApi DashScopeApi.builder() .apiKey(System.getenv(AI_DASHSCOPE_API_KEY)) .build(); ChatModel chatModel DashScopeChatModel.builder() .dashScopeApi(dashScopeApi) .build(); // 2. 创建Agent ReactAgent agent ReactAgent.builder() .name(weather_agent) .model(chatModel) .instruction(你是一个有帮助的天气助手) .build(); // 3. 运行Agent String response agent.call(杭州今天天气怎么样); System.out.println(response); } }步骤五构建一个真实的智能体入门级Agent只能回答问题现在我们给它加上工具调用和对话记忆让它变得更聪明。[1]定义系统提示词可根据需求修改String SYSTEM_PROMPT 你是一个智能的天气预报专家。 你有两个工具可用 - get_weather_for_location查询指定城市的天气 - get_user_location获取用户所在位置 当用户询问天气时确保你知道地点。 如果你能从问题中推断出是指用户当前位置 就使用 get_user_location 工具来获取位置。 ;[2]创建工具让Agent能调用import org.springframework.ai.tool.ToolCallback; import org.springframework.ai.tool.function.FunctionToolCallback; import java.util.function.BiFunction; // 天气查询工具 public class WeatherTool implements BiFunctionString, ToolContext, String { Override public String apply(String city, ToolContext context) { return city 今天阳光明媚适合讲个‘sunny’笑话; } } // 用户位置工具从上下文获取用户ID public class UserLocationTool implements BiFunctionString, ToolContext, String { Override public String apply(String query, ToolContext context) { // 实际可从数据库或请求头获取 return 杭州; } } // 包装成ToolCallback ToolCallback weatherTool FunctionToolCallback.builder(get_weather, new WeatherTool()) .description(查询指定城市的天气) .inputType(String.class) .build(); ToolCallback locationTool FunctionToolCallback.builder(get_user_location, new UserLocationTool()) .description(获取用户所在位置) .inputType(String.class) .build();[3]配置模型参数并添加记忆import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions; import com.alibaba.cloud.ai.graph.agent.ReactAgent; import com.alibaba.cloud.ai.graph.checkpoint.MemorySaver; ChatModel chatModel DashScopeChatModel.builder() .dashScopeApi(dashScopeApi) .defaultOptions(DashScopeChatOptions.builder() .withModel(DashScopeChatModel.DEFAULT_MODEL_NAME) .withTemperature(0.7) // 让回复更生动 .withMaxToken(500) .build()) .build(); ReactAgent agent ReactAgent.builder() .name(weather_pun_agent) .model(chatModel) .systemPrompt(SYSTEM_PROMPT) .tools(weatherTool, locationTool) .saver(new MemorySaver()) // 关键开启记忆 .build();[4]运行并测试import com.alibaba.cloud.ai.graph.RunnableConfig; // 使用同一个threadId保持对话记忆 String threadId user_001; RunnableConfig config RunnableConfig.builder() .threadId(threadId) .build(); // 第一次提问 String response1 agent.call(今天天气怎么样, config); System.out.println(response1); // 输出杭州今天阳光明媚是个‘sunny’的好日子... // 第二次提问无需重复地点 String response2 agent.call(那明天呢, config); System.out.println(response2); // 输出明天嘛杭州依旧‘shine’个不停记得带太阳镜步骤六进阶配置与调试[1]限制最大迭代次数防止死循环import com.alibaba.cloud.ai.graph.agent.hook.modelcalllimit.ModelCallLimitHook; ModelCallLimitHook hook ModelCallLimitHook.builder() .runLimit(5) // 最多调用5次模型 .exitBehavior(ModelCallLimitHook.ExitBehavior.ERROR) .build(); ReactAgent agent ReactAgent.builder() // ... 其他配置 .hooks(hook) .build();[2]查看完整运行状态import com.alibaba.cloud.ai.graph.OverAllState; import java.util.Optional; OptionalOverAllState state agent.invoke(讲个笑话, config); if (state.isPresent()) { // 获取所有消息历史 ListMessage messages state.get().value(messages, new ArrayList()); System.out.println(对话轮数 messages.size()); }常见问题Q提示API Key无效 A请检查环境变量是否正确或直接在代码中设置测试Q模型调用超时 A检查网络是否能访问 dashscope.aliyuncs.comQ如何切换成OpenAI模型 A更换依赖为 spring-ai-starter-model-openai并修改模型配置至此使用Spring AI Alibaba搭建Agent基础教程结束啦~AI行业迎来前所未有的爆发式增长从DeepSeek百万年薪招聘AI研究员到百度、阿里、腾讯等大厂疯狂布局AI Agent再到国家政策大力扶持数字经济和AI人才培养所有信号都在告诉我们AI的黄金十年真的来了在行业火爆之下AI人才争夺战也日趋白热化其就业前景一片蓝海我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取人才缺口巨大人力资源社会保障部有关报告显示据测算当前****我国人工智能人才缺口超过500万****供求比例达1∶10。脉脉最新数据也显示AI新发岗位量较去年初暴增29倍超1000家AI企业释放7.2万岗位……单拿今年的秋招来说各互联网大厂释放出来的招聘信息中我们就能感受到AI浪潮比如百度90%的技术岗都与AI相关就业薪资超高在旺盛的市场需求下AI岗位不仅招聘量大薪资待遇更是“一骑绝尘”。企业为抢AI核心人才薪资给的非常慷慨过去一年懂AI的人才普遍涨薪40%脉脉高聘发布的《2025年度人才迁徙报告》显示在2025年1月-10月的高薪岗位Top20排行中AI相关岗位占了绝大多数并且平均薪资月薪都超过6w在去年的秋招中小红书给算法相关岗位的薪资为50k起字节开出228万元的超高年薪据《2025年秋季校园招聘白皮书》AI算法类平均年薪达36.9万遥遥领先其他行业总结来说当前人工智能岗位需求多薪资高前景好。在职场里选对赛道就能赢在起跑线。抓住AI风口轻松实现高薪就业但现实却是仍有很多同学不知道如何抓住AI机遇会遇到很多就业难题比如❌ 技术过时只会CRUD的开发者在AI浪潮中沦为“职场裸奔者”❌ 薪资停滞初级岗位内卷到白菜价传统开发3年经验薪资涨幅不足15%❌ 转型无门想学AI却找不到系统路径83%自学党中途放弃。他们的就业难题解决问题的关键在于不仅要选对赛道更要跟对老师我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2453916.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!