“AI太难了,那是Python的事?”  —— 错!作为Java老炮,你只需要一个下午,就能用熟悉的Spring Boot给项目接入“大脑”。

现在的Java后端开发,如果只会写Controller和Mapper,确实容易焦虑。看着满屏的AI资讯,是不是觉得大模型(LLM)离我们很远?其实不然。

作为一个刚在电商项目里落地了智能客服的Java开发者,我想告诉你:AI集成并没有想象中那么神秘。  只要你会发HTTP请求,你就离AI只差一个依赖的距离。

这篇文章不讲复杂的Transformer原理,也不推销Python。我们将基于Spring Boot生态,利用阿里云通义千问,手把手教你写一个能对话、能查商品、甚至能记住你喜好的客服机器人。

目标:  打开IDEA,敲下不到30行核心代码,10分钟内跑通一个具备真实业务能力的AI接口。


一、 为什么Java也能玩转AI?(选对工具是关键)

在开始之前,你可能有顾虑:

  1. 网络问题:  OpenAI在国内访问不稳定。
  2. 语言壁垒:  大家都在推Python,Java怎么办?
  3. 开发成本:  难道要自己拼JSON、做流式处理?

解决方案:Spring AI Alibaba

这是阿里云推出的一套Spring Boot Starter,专门为Java开发者量身定制:

  • 中文原生友好:  底层对接通义千问(Qwen),中文理解能力极强,无需担心“翻译腔”。
  • 零学习成本:  它遵循Spring的编程模型,不用学Python,不用懂Agent复杂概念,依赖注入(DI)和自动配置那一套完全不变。
  • 免费额度:  阿里云百炼平台提供100万Token免费额度,足够你开发测试半年,零成本验证AI能力。

二、 准备工作:三步搞定“入场券”

为了让你少走弯路,我把环境准备压缩到了最简。

1. 环境清单
  • JDK:  17+(推荐JDK 21,Spring Boot 3.x对低版本支持不好)
  • IDE:  IntelliJ IDEA
  • 构建工具:  Maven 或 Gradle
2. 获取API Key(最关键的一步)

这是连接阿里云大模型的“钥匙”,请按顺序操作:

  1. 去阿里云官网搜索  “DashScope” (灵积模型服务)。

  2. 进入控制台,找到左侧菜单  “API-KEY管理”

  3. 点击“创建API Key”,复制生成的字符串(格式为 sk-xxxx)。

    • 注意:  这个Key只显示一次,务必保存好!不要硬编码在代码里,建议配置在IDEA的运行环境变量中:
    DASHSCOPE_API_KEY=sk-你的密钥
    
3. Maven依赖(直接CV)

在 pom.xml 中加入核心依赖(版本号可能会更新,请参考官方文档):

<dependencies>
    <!-- Web基础包 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring AI Alibaba 核心包 -->
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>
        <artifactId>spring-ai-alibaba-starter</artifactId>
        <version>1.1.2.0</version>
    </dependency>
</dependencies>

三、 核心实战:30行代码,让JVM“开口说话”

我们将构建一个简单的电商客服,它能回答通用问题,还能根据商品库推荐产品。

1. 配置文件(application.yml)

告诉Spring你的API Key在哪里(如果环境变量配置了,这里可以省略):

spring:
  ai:
    dashscope:
      api-key: ${DASHSCOPE_API_KEY} # 读取环境变量
2. 编写AI服务层(Service)

这是最核心的部分。我们利用 ChatClient 来构建对话逻辑。

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.stereotype.Service;

@Service
public class AiAssistantService {

    private final ChatClient chatClient;

    // 构造器注入ChatClient.Builder
    public AiAssistantService(ChatClient.Builder builder) {
        this.chatClient = builder
                // 1. 定义系统角色:设定AI的人设
                .defaultSystem("""
                    你是一个专业的电商客服助手,名字叫小服。
                    回答要简洁、专业、态度友好。
                    """)
                .build();
    }

    // 2. 定义对话方法
    public String chat(String userInput) {
        return chatClient.prompt()
                .user(userInput) // 用户输入
                .call()
                .content();   // 获取模型回复
    }
}
3. 编写控制层(Controller)

暴露一个HTTP接口给前端调用:

@RestController
@RequestMapping("/api/ai")
public class AiController {

    private final AiAssistantService assistantService;

    public AiController(AiAssistantService assistantService) {
        this.assistantService = assistantService;
    }

    @PostMapping("/chat")
    public String chat(@RequestBody String message) {
        return assistantService.chat(message);
    }
}

四、 进阶实战:从“闲聊”到“带货”

光会说“你好”肯定不行,真实的业务场景需要AI结合数据。

需求:  用户问“我想买个拍照好的手机”,AI需要从数据库(这里用代码模拟)里推荐商品。

改造Service:  只需要修改提示词(Prompt),把商品信息“喂”给AI。

@Service
public class AiProductService {

    private final ChatClient chatClient;

    public AiProductService(ChatClient.Builder builder) {
        this.chatClient = builder
                .defaultSystem("""
                    你是一个资深的数码导购。
                    请根据以下商品库信息回答用户问题,不要胡编乱造:
                    
                    【商品库】
                    1. 华为Mate60 Pro: 6999元,12GB+512GB,麒麟9000S,卫星通话
                    2. 小米14 Pro: 4999元,16GB+512GB,徕卡光学镜头,光影猎人900
                    3. iPhone 15 Pro: 7999元,A17芯片,钛金属边框
                    
                    规则:如果用户预算不足,要委婉告知并推荐替代品。
                    """)
                .build();
    }

    public String recommend(String userNeed) {
        return chatClient.prompt().user(userNeed).call().content();
    }
}

测试一下:
输入:“我想买个拍照好,带长焦镜头的手机,预算5000左右。”
AI回复:  “推荐您考虑小米14 Pro。它搭载了徕卡光学镜头,拍照效果出色,且价格(4999元)符合您的预算。”

原理:  这就是所谓的RAG(检索增强生成) ,你不需要训练模型,只需要把上下文信息通过Prompt告诉模型,它就能基于这些信息进行推理。


五、 避坑指南:生产环境怎么选?

在实际项目中,你可能会纠结用哪个模型。阿里云DashScope提供了几个版本,建议按以下策略选择:

模型版本 特点 推荐场景 配置参数
Qwen-Turbo 速度最快,成本最低 高并发的简单问答、闲聊 qwen-turbo
Qwen-Plus 性价比之王,能力均衡 大部分业务场景(推荐新手) qwen-plus
Qwen-Max 能力最强,推理最严谨 复杂的售后协商、数据分析 qwen-max

切换方法:  只需要在 application.yml 中加一行配置,无需改动Java代码!

spring:
  ai:
    dashscope:
      chat:
        options:
          model: qwen-plus # 默认是turbo,改为plus

六、 写在最后

当你跑通这个Demo,你会发现:AI并不是什么玄学,它本质上就是一种更高级的API调用。

作为Java开发者,我们的优势在于强大的工程化能力和对业务逻辑的深刻理解。未来一年, “Java + AI”  将是后端开发的标配。

这篇文章只是一个引子,帮你跨过那道心理门槛。接下来,你可以尝试:

  1. 接入真正的数据库,让AI读取实时库存。
  2. 加入流式输出(SSE),让回复像打字机一样逐字出现。
  3. 结合Spring Security,做一个带权限的智能后台。

别再只看视频了,动手敲下那行 curl 命令,让代码替你“思考”吧!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐