当前位置: 首页 > news >正文

Spring Boot + Spring AI快捷体验

Spring AI快速体验

1 什么是Spring AI

Spring AI是Spring的一个子项目,是Spring专门面向于AI的应用框架。
在这里插入图片描述

Spring AI 项目旨在简化整合人工智能功能的应用程序开发,避免不必要的复杂性。
汲取了著名的 Python 项目 LangChain 和 LlamaIndex 的灵感,但 Spring AI 并不是这些项目的直接移植。该项目的成立的信念:下一波生成式人工智能应用程序不仅将面向Python开发人员,而且将在许多编程语言中无处不在。

主要功能

● 跨 AI 供应商的便携式 API:支持聊天、文生图、嵌入模型;支持同步和流式API选项;访问特定模型功能。
● 支持几乎所有的ai模型提供商:如如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama,包括国内的千帆、智谱AI等
● 结构化输出:将AI模型输出映射为POJO;
● 支持所有主要向量数据库。
● 功能调用(Tools/Function Calling):工具/功能调用-允许模型请求执行客户端工具和功能,从而根据需要访问必要的实时信息。
● 可观测
● springboot自动装配
● 支持聊天对话记忆和检索增强生成(RAG)

2 快速开始

2.1 版本说明

工具

版本

jdk

17

Spring Boot

3.2.x、3.3.x

Spring AI

1.0.0-SNAPSHOT

2.2 配置文件

配置文件
注意:使用官方直连的api-key、url;或者使用基于转发的api-key、url。主要区别是官方的价格较贵,需要在程序中设置代理连接;转发类的国内可直接使用,价格便宜,适合学习使用。

2.3 pom依赖

2.3.1 spring maven仓库
spring-milestonesSpring Milestoneshttps://repo.spring.io/milestonefalsespring-snapshotsSpring Snapshotshttps://repo.spring.io/snapshotfalse
2.3.2 核心依赖

org.springframework.aispring-ai-openai-spring-boot-starter
org.springframework.aispring-ai-bom1.0.0-SNAPSHOTpomimport

2.4 定义ChatClient

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
class Config {@BeanChatClient chatClient(ChatClient.Builder builder) {return builder.build();}
}

2.5 启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringAiDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringAiDemoApplication.class, args);}
}

2.6 测试

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api")
public class ChatController {@Autowiredprivate ChatClient chatClient;@GetMapping("/chat")public String chat(@RequestParam(value = "message", defaultValue = "Hi") String message) {return chatClient.prompt().user(message).call().content();}
}

文本返回:
chat
流式返回(打字机效果):

@GetMapping(value = "/chat/flux", produces = MediaType.TEXT_HTML_VALUE + ";charset=UTF-8")
public Flux chatFlux(@RequestParam(value = "message", defaultValue = "Hi") String message) {Flux output = chatClient.prompt().user(message).stream().content();return output;
}

流式返回图片
完整代码可参考:https://github.com/xgxizz/spring-ai-demo

3 参考链接

https://docs.spring.io/spring-ai/reference/

http://www.jsqmd.com/news/88518/

相关文章:

  • 2025年效率提升:基于DeepSeek优化的品牌推荐榜,GEO优化AI搜索/GEO优化服务/短视频矩阵deepseek优化品牌怎么选择 - 品牌推荐师
  • vscode 无法启动conda
  • IDE透明视频播放插件:提升编程体验的多媒体解决方案
  • 5、字符串、正则表达式与文件系统操作实践
  • 32、虚拟机器管理与使用指南
  • 常规创建测试用例,禅道新增用例,借助AI创建测试用例的步骤
  • JoyAgent-JDGenie系统流程图
  • 柯街镇黑温泉 联系方式: 体验前准备与信息验证要点 - 品牌推荐
  • 53、STREAMS 流处理机制深度解析
  • 2、数学问题编程解决方案
  • 2025年年终呼叫中心系统服务商推荐:整合百个企业用户真实反馈与行业报告,2025年值得关注的5家服务商盘点 - 品牌推荐
  • 54、深入解析STREAMS机制:从流头操作到终端控制
  • 2025年年终呼叫中心系统服务商推荐:不同规模企业预算下的性价比分析与5款适配方案盘点 - 品牌推荐
  • 6、日期时间与算法数据结构相关问题及解决方案
  • Python property魔法:让属性访问变得智能又安全
  • Java---小球移动案例(附代码)
  • 7、算法与数据结构:多种问题的解决方案
  • 分享一个夸克网盘不限速的下载方法-在线免费工具
  • Windows系统文件wimgapi.dll丢失损坏问题 下载修复
  • 8、C++算法与数据结构实用案例解析
  • 不需要下载夸克直链网盘下载-在线免费工具
  • Windows系统文件Windows.ApplicationModel.Store.dll缺失损坏问题 下载修复
  • 南昌航空大学-23207201-lyy
  • 设备预测性维护技术拆解与落地实战
  • Windows系统win32k.sys文件 缺少下载文件
  • 爬虫遇到AST加密怎么办?AST逆向入门到精通
  • 65、文件管理子系统与网络协议通信概述
  • 当差分进化遇上自适应:手把手拆解CEC2005优化实战
  • openpnp - Smoothieware - MKS SGEN_L V1.0 + JLink-edu-mini 连接测试
  • AWR1843毫米波雷达Python数据采集与可视化完整指南