Spring AI 2.0 开发Java Agent智能体 - 新建 HelloWorld 项目

大家好,我是小锋老师,最近更新《2027版本 Spring AI 2.0 开发Java Agent智能体 视频教程》专辑,感谢大家支持。

本课程主要介绍和讲解Spring AI 2.0简介,Spring AI 2.0 HelloWorld搭建,Advisors --- 拦截器模式增强AI能力,对话与提示词工程(Prompt),工具调用(Function Calling / Tools) ,RAG(检索增强生成),MCP(模型上下文协议)和多模态支持。

等这个Spring AI2.0基础课程录制完成,接下来要发布2个 企业级Java AI实战课程,RAG企业知识库系统和AI智能客服系统。大家可以点点关注,后面更精彩。

视频教程+课件+源码打包下载:

链接:https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd=1234

提取码:0000

Spring AI 2.0 开发Java Agent智能体 - 新建 HelloWorld 项目

我们新建一个Spring AI的HelloWorld项目,IDEA里点新建项目,选择Spring Initializr,Type选Maven,JDK用17,Packaging选Jar,然后点Next

SpringBoot我们选4.0.5,依赖我们先选Spring Web和OpenAI,后面不够再加。

因为阿里百炼平台支持OpenAI规范,所以试用OpenAI接口直接可以调用阿里百炼云平台的大模型。

首先第一步,配置application.yml,配置上api-key(读取系统环境变量),以及base_url,和模型

复制代码
spring:
  application:
    name: helloWorld
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      base-url: https://dashscope.aliyuncs.com/compatible-mode
      chat:
        options:
          model: qwen3.6-plus

第二步,新建AiConfiguration配置类,配置ChatClient聊天客户端

复制代码
package com.java1234.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AiConfiguration {

    /**
     * 创建一个 ChatClient 对象,用于处理聊天请求。
     *
     * @param model OpenAiChatModel 对象,用于处理聊天请求。
     * @return ChatClient 对象,用于处理聊天请求。
     */
    @Bean
    public ChatClient chatClient(OpenAiChatModel  model){
        return ChatClient
                .builder(model) // 创建 ChatClient 对象,并设置模型为 model
                .build(); // 构建 ChatClient 对象
    }
}

第三步,新建MyAiChatController控制器,接受前端用户提问,构建提示器,发送请求给大模型,以及接收大模型返回的结果,返回给前端。

复制代码
package com.java1234.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyAiChatController {

    @Autowired
    private ChatClient chatClient ;

    @RequestMapping("/ai")
    public String ai(String question) {
        return chatClient.prompt() // 创建一个 Prompt 对象,用于构建聊天请求。
                .user( question) // 设置用户输入的文本。
                .call() // 调用 ChatClient 对象的 call() 方法,发送聊天请求给大模型并获取响应。
                .content(); // 获取响应的文本内容。
    }
}

然后我们启动项目,测试,浏览器输入:

复制代码
http://localhost:8080/ai?question=你是谁?

大模型返回结果:

相关推荐
bro_Java666几秒前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法
无所畏俱的老尹4 分钟前
Agent 落地为什么需要影子对照:同输入只读双跑、写动作变提案、差异报警,比直接切全量更安全
人工智能·机器学习·云计算·aigc·devops
神鹰手哥_起飞版1 小时前
深度研判任务里,开思考、换更强的模型、套方法论,哪个更有用?
人工智能
ObserverX211 小时前
我是如何用 13KB 纯 Python,发现本地 RAG 的“隐式递归记忆”的
人工智能
Jason_gao9991 小时前
Github Copilot 新手极速上手指南
人工智能·github·copilot
用户360055579001 小时前
Kestrel_VLLM - 35 · 把 m 循环搬进内核:一次「先量发射、再合并发射」的完整回合
人工智能
Linye1 小时前
为什么让 AI 修个小 Bug 却把底层全重写了?聊聊 Coding Agent 的最小修改边界
人工智能·架构
深度开源1 小时前
我扫了自己电脑里的 402 个 AI 技能,光目录就吃掉 4.5 万 token
人工智能
skywalk81631 小时前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive
王中阳Go1 小时前
你那条三跳链路的单跳超时,是按压测的 p95 定的,还是拍出来的?
人工智能·后端·架构