一起学springAI系列一:初体验

Spring AI是干嘛的

官网最权威,直接粘贴:"Spring AI"项目旨在简化那些包含人工智能功能的应用程序的开发过程,同时避免不必要的复杂性。

AI相关领域的功能对python的支持是最好的,相关供应商在出了啥功能的时候,都会优先支持python。 在java这块儿都是大佬们搞的社区去支持,现在spring官网推出了springAI,让我们java开发者也有了对AI操作的框架可用了。

前期准备

1、springAI在官网上的也是一个project,咱们现在开发项目都是用springboot,springAI对springboot的版本是有要求的,官网最权威:

Spring AI supports Spring Boot 3.4.x. When Spring Boot 3.5.x is released, we will support that as well.

所以得搞个springboot3.4.x以上的版本,这个版本也要求jdk得是17以上的,我是直接搞了个springboot3.5.4 + jdk21的版本。

2、springAI是搞大模型的,所以我们得有个大模型,去硅基流动搞一个免费的。

搜索一个免费的,对话的大模型。

搞个密钥

创建项目

搞java的,IntelliJ IDEA总得有吧,就基于这个去创建了

点击创建后,你就应该得到一个下面的项目了

pom文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.5.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.chat</groupId>
	<artifactId>ai-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>ai-demo</name>
	<description>ai-demo</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>21</java.version>
		<spring-ai.version>1.0.0</spring-ai.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-starter-model-openai</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.ai</groupId>
				<artifactId>spring-ai-bom</artifactId>
				<version>${spring-ai.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

配置大模型

在 application.properties 里面配置一下

写个对话接口

在写之前,有一个巨重要的接口得介绍一下:ChatClient

ChatClient 提供了一套流畅的 API,用于与人工智能模型进行通信。它支持同步和流式两种编程模式,我们今天搞一个最简单的同步方式

创建一个ChatClient

XML 复制代码
package com.chat.aidemo.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: yin79
 * @Date: 2025/7/31
 */
@RestController
@RequestMapping("/ai")
public class HelloAIController {

    private final ChatClient chatClient;
    public HelloAIController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

    @GetMapping("/hi")
    public String sayHi(@RequestParam(required = false, defaultValue = "讲个笑话") String message) {
        return chatClient.prompt()
                .user(message)    // 用户的输入,可以理解为用户提示词
                .call()           // 调用大模型
                .content();       // 获取大模型的回复, string类型的
    }
}

调用:

相关推荐
海边的Kurisu1 天前
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档
java
工藤学编程1 天前
零基础学AI大模型之LangChain智能体之initialize_agent开发实战
人工智能·langchain
king王一帅1 天前
Incremark Solid 版本上线:Vue/React/Svelte/Solid 四大框架,统一体验
前端·javascript·人工智能
泰迪智能科技1 天前
分享|职业技术培训|数字技术应用工程师快问快答
人工智能
C雨后彩虹1 天前
任务最优调度
java·数据结构·算法·华为·面试
heartbeat..1 天前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
Jing_jing_X1 天前
AI分析不同阶层思维 二:Spring 的事务在什么情况下会失效?
java·spring·架构·提升·薪资
Dxy12393102161 天前
如何给AI提问:让机器高效理解你的需求
人工智能
AI智能探索者1 天前
揭秘大数据领域特征工程的核心要点
大数据·ai
少林码僧1 天前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘