当前位置: 首页 > 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.gsyq.cn/news/98833.html

相关文章:

  • IDE透明视频播放插件:提升编程体验的多媒体解决方案
  • 5、字符串、正则表达式与文件系统操作实践
  • JoyAgent-JDGenie系统流程图
  • 2025年市面上口碑好的被动式窗供应商口碑推荐,高端定制门窗/智能门窗/极简门窗/全屋门窗/被动式窗生产厂家推荐榜单 - 品牌推荐师
  • 57、操作系统中的流与进程间通信技术详解
  • 如何选择最适合的呼叫中心系统?2025年年终最新技术趋势解读与5家实力服务商推荐! - 品牌推荐
  • Java---小球移动案例(附代码)
  • 7、算法与数据结构:多种问题的解决方案
  • 8、C++算法与数据结构实用案例解析
  • 不需要下载夸克直链网盘下载-在线免费工具
  • 设备预测性维护技术拆解与落地实战
  • 51、STREAMS 调度与流头操作详解
  • Windows系统win32k.sys文件 缺少下载文件
  • 65、文件管理子系统与网络协议通信概述
  • openpnp - Smoothieware - MKS SGEN_L V1.0 + JLink-edu-mini 连接测试
  • Proceed 英文单词学习
  • 【30天从零学Python】重要补充四、检测有向环 - Kahn算法
  • 7层深度的招商引资,进入财情共创时代:价值倍增的新质生产力,实现高质量发展
  • 贪心算法简介
  • 2025年回弹仪十大品牌实力盘点,谁主沉浮?裂缝测宽仪/一体式楼板测厚仪/填土密实度检测仪/钢筋位置测定仪/高强回弹仪回弹仪品牌哪家好 - 品牌推荐师
  • 基于Java Swing的打砖块小游戏(1)
  • 蓝桥杯Python-语法基础-2
  • JSP如何整合第三方控件支持大文件上传?
  • C++树形数据结构————树状数组、线段树中“逆序对”的问题
  • Windows11系统文件verifier.dll丢失或损坏问题 下载修复
  • Flutter性能优化实战:从卡顿排查到极致体验的落地指南
  • 毕业设计项目 基于机器视觉的目标跟踪算法
  • 中高端路由器选购指南:Wi-Fi 7与硬件配置全解析
  • mustache.js实战精通:从入门到高级应用的完整指南
  • Nginx核心架构设计