使用Spring BootSpring AI快速构建AI应用程序

embedded/2025/1/15 9:59:35/

Spring AI 是基于 Spring Boot3.x 框架构建,Spring Boot官方提供了非常便捷的工具Spring Initializr帮助开发者快速的搭建Spring Boot应用程序,IDEA也集成了此工具。本文使用的开发工具IDEA+Spring Boot 3.4+Spring AI 1.0.0-SNAPSHOT+Maven

1.创建Spring Boot项目

使用IDEA Spring Boot模版创建项目,选择Maven+JDK17,因为Spring AI支持的Spring Boot版本从Spring Boot3.2.x开始,最低JDK版本是17

在这里插入图片描述

2.添加 Spring Snapshot Repositories和BOM

目前Spring AI最新快照版本是1.0.0-SNAPSHOT没有发布到maven中央仓库,所以需要手动添加Spring Snapshot Repositories

<repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository>
</repositories>

Spring AI BOM 声明了特定版本的 Spring AI依赖项的推荐版本。后续添加Spring AI相关模块无需指定具体的版本。

<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

3.添加Spring AI依赖

本文使用的是智谱AI大模型(特殊原因没使用OpenAI),如果要使用其它支持的大模型只需要把下面的依赖替换成对应大模型的spring boot starter即可。

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

4.pom.xml完整配置

<properties><java.version>17</java.version><spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version>
</properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId></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>
<repositories><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository>
</repositories>

5.申请AI大模型API keys

从智普AI官网https://bigmodel.cn/ 注册申请API keys

在这里插入图片描述

application.propertiesapplication.yml文件中配置 AI 模型相关参数。以 智谱AI为例,在application.properties中配置 API 密钥:

spring.ai.zhipuai.api-key=XXXXXXX

6.使用Spring AI ChatClient访问AI大模型

ChatClient 提供了一种Fluent API 用于与人工智能模型进行通信。它同时支持同步和流式(Reactive)编程模型。ChatClient是使用ChatClient.Builder对象创建的。可以使用Spring Boot 自动装配机制自动注入ChatClient.Builder Bean

/*** Spring AI supports Spring Boot 3.2.x and 3.3.x* JDK 17* zhipuai*/
@RestController
public class AiController {private final ChatClient chatClient;public AiController(ChatClient.Builder chatClientBuilder) {//自动注入ChatClient.Builder对象,并创建ChatClient对象。this.chatClient = chatClientBuilder.build();}@GetMapping("/ai")String generation(String message) {//用户输入的信息提交给大模型,使用的是ChatClient与大模型交互。return this.chatClient.prompt().user(message).call().content();}
}

在这个例子中,用户输入内容call()方法向人工智能模型发送请求,content()方法以字符串的形式返回人工智能模型的响应。

Prompt(提示词)是引导 AI 模型生成特定输出的输入。这些提示的设计和措辞直接影响模型的响应,后面有专门的Prompt章节来详细介绍。

7.接口测试

➜ ~ curl http://localhost:8080/ai?message=你好
你好👋!我是人工智能助手智谱清言(ChatGLM),很高兴见到你,欢迎问我任何问题。

8.总结

本文为主要介绍了从开发环境搭建、依赖配置、API 密钥获取到利用 ChatClient 与大模型交互并测试验证的详细过程,助力快速上手基于 Spring AI 与特定大模型构建应用程序。

Ben技术站关注Java技术,LLM,计算机科学等内容。
在这里插入图片描述


http://www.ppmy.cn/embedded/154074.html

相关文章

springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)

线上预览: 移动端 http://8.146.211.120:8081/ 管理端 http://8.146.211.120:8088/ 小红书凭借优秀的产品体验 和超高人气 目前成为笔记类产品佼佼者 此项目将详细介绍如何使用Vue.js和Spring Boot 集合uniapp 开发一个仿小红书应用&#xff0c;凭借uniapp 可以在h5 小程序 app…

学技术学英语:ELK是什么

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#xff1a; 先看关键单词&#xff0c;再看英文&#xff0c;最后看中文总结&#xff0c;再回头看一遍英文原文&#xff0c;效果更佳&#xff01;&#xff01; 关键词 aggregate 聚合 /ˈɡrɪɡeɪt/ analytics 分析学 /ˌnəˈl…

使用 Python 实现自动化办公(邮件、Excel)

目录 一、Python 自动化办公的准备工作 1.1 安装必要的库 1.2 设置邮件服务 二、邮件自动化处理 2.1 发送邮件 示例代码 注意事项 2.2 接收和读取邮件 示例代码 三、Excel 自动化处理 3.1 读取和写入 Excel 文件 示例代码 3.2 数据处理和分析 示例代码 四、综合…

数据预测2025年AI面试市场增幅超500%!

近年来&#xff0c;随着人工智能技术的迅猛发展&#xff0c;AI在各行各业的应用逐渐广泛&#xff0c;其中企业招聘领域也不例外。最新的数据显示&#xff0c;2025年AI面试市场将迎来前所未有的增长&#xff0c;预计增幅将超过500%。这一预测不仅揭示了AI技术在招聘领域的应用潜…

【2】WLC的接口有哪些?

1.简介 在传统的网络中,很多时候接口和端口是混用的概念,在这里,我们的接口和端口则需要区分来对待了,WLC上的端口有其自身的含义,而接口区分了很多的种类。 AireOS WLC的接口有AP管理接口(ap manager interface)、动态接口(dynamic interface)、虚拟接口(virtual …

unity 播放 序列帧图片 动画

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、方法一&#xff1a;代码控制播放序列帧1、设置图片属性2、创建Image组件3、简单的代码控制4、挂载代码并赋值 二、方法二&#xff1a;直接使用1.Image上添加…

机器学习顶会NeurIPS: AGILE: A Novel Reinforcement Learning Framework of LLM Agents

&#x1f31f; 研究背景 &#x1f31f; 随着大型语言模型&#xff08;LLMs&#xff09;在指令遵循、推理和零样本学习等方面展现出卓越的能力&#xff0c;基于LLMs的自主代理&#xff08;LLM Agents&#xff09;的研究逐渐兴起。然而&#xff0c;如何将规划、反思、工具使用等…

aws(学习笔记第二十四课) 使用sam开发step functions

aws(学习笔记第二十四课) 使用sam开发step functions 学习内容&#xff1a; 生成sam的step functions实例程序什么是SAM amazon Serverless Application ModelSAM程序结构SAM执行程序 1. 生成sam的step functions实例程序 参照文档 这里参照AWS的官方文档SAM amazon Serverl…