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

springAI学习 一

一、Spring AI 概述

什么是Spring AI?

  • Spring生态的AI集成框架

  • 统一API访问不同AI服务(OpenAI、Azure OpenAI、Anthropic等)

  • 支持多种AI功能:聊天、文生图、嵌入、向量存储等

Spring AI 是一个用于 AI 工程的应用框架。 其目标是将 Spring 生态系统设计原则应用于 AI 领域,如可移植性和模块化设计,并推广将 POJO 作为应用构建模块到人工智能领域的应用。

二、学习资源

官方资源

  1. 文档:spring.io/projects/spring-ai

  2. 参考文档:Spring AI Reference Documentation

  3. 示例项目:GitHub - spring-ai/spring-ai-samples

实践建议

  1. 从OpenAI开始:先用OpenAI API熟悉基本概念

  2. 尝试本地模型:使用Ollama运行本地LLM

  3. 实现RAG应用:构建文档问答系统

  4. 集成到现有项目:为已有Spring Boot项目添加AI能力

三、核心概念

1.AI Models

  • 聊天模型:ChatClient、ChatModel

  • 嵌入模型:EmbeddingClient、EmbeddingModel

  • 图像模型:ImageClient、ImageModel

  • 语音模型:AudioClient、AudioModel

2.Prompt Engineering

PromptTemplate template = new PromptTemplate("请用{style}风格解释:{topic}"); Prompt prompt = template.create(Map.of("style", "简单易懂", "topic", "机器学习"))

3.输出解析

@Parser(description = "天气预报响应") public class WeatherResponse { private String city; private double temperature; private String condition; }

四、快速开始

1. 添加依赖

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.1</version> </dependency>

2. 基础配置

spring: ai: openai: api-key: ${OPENAI_API_KEY} chat: model: gpt-3.5-turbo # model: gpt-4.1-mini

3. 基本使用示例

@Service public class ChatService { private final ChatClient chatClient; public String chat(String message) { return chatClient.call(message); } // 流式响应 public Flux<String> streamChat(String message) { return chatClient.stream(message) .map(ChatResponse::getOutput); } }

四、核心功能详解

1.聊天功能

// 带上下文对话 List<Message> messages = new ArrayList<>(); messages.add(new UserMessage("你好")); messages.add(new AssistantMessage("你好!有什么可以帮助你?")); messages.add(new UserMessage("Java是什么?")); ChatResponse response = chatClient.call(new Prompt(messages));

2.函数调用(Function Calling)

@Bean public FunctionCallback weatherFunction() { return FunctionCallbackWrapper.builder(new WeatherService()) .withName("getWeather") .withDescription("获取城市天气") .build(); }

3.RAG(检索增强生成)

// 1. 创建向量存储 VectorStore vectorStore = new InMemoryVectorStore(embeddingModel); // 2. 添加文档 vectorStore.add(List.of( new Document("Spring AI是Spring官方AI框架", Map.of("source", "docs")) )); // 3. 检索相关文档 List<Document> docs = vectorStore.similaritySearch(request); // 4. 增强提示 String enhancedPrompt = "基于以下信息:" + docs + "\n问题:" + question;

4.多模态支持

// 图像生成 ImagePrompt prompt = new ImagePrompt("一只可爱的猫"); ImageResponse response = imageClient.call(prompt); // 语音转文字 AudioPrompt audioPrompt = new AudioPrompt(audioFile); AudioTranscription transcription = audioClient.call(audioPrompt);

五、支持的AI服务

主要Provider:

  • OpenAI:GPT、DALL-E

  • Azure OpenAI:Azure上的OpenAI服务

  • Anthropic:Claude模型

  • Google Vertex AI:Gemini模型

  • Hugging Face:开源模型

  • 本地模型:Ollama、LM Studio等




http://www.cnnetsun.cn/news/18235.html

相关文章:

  • PySceneDetect终极指南:零基础实现智能视频场景自动化分割
  • 5分钟搞定Windows应用拦截:效率提升指南
  • 基于VUE的线上签到系统[VUE]-计算机毕业设计源码+LW文档
  • 深度解析vue-slider-component:打造高度定制化的Vue滑块组件
  • Pose-Search终极指南:开启智能人体姿势识别新纪元
  • 基于VUE的文章发布系统[VUE]-计算机毕业设计源码+LW文档
  • BBDown:B站视频下载的终极解决方案
  • Dify企业级实战深度解析 (5)
  • 游戏增强工具YimMenu:从入门到精通的完整指南
  • B站视频下载神器:BiliDownloader完全使用手册
  • 如何快速合并分割APK:开源工具的终极解决方案指南
  • 实时语音转写技术革命:WhisperLiveKit如何重塑语音交互体验
  • 基于海马体突触修剪机制的动态剪枝策略在量化交易系统中的实现
  • 【毕业设计/课程设计】桃树种植环境检测系统系统源码+论文+PPT+数据
  • 模型识别对象
  • ChatBox与Ollama连接故障快速诊断手册
  • 网络安全零基础入门终极指南:一份值得你坚持跟完的详细进阶路径
  • 用AI 5分钟构建Sharding-JDBC原型验证方案
  • 2011—2021年浙江省肺结核发病率预测:基于三体模型和三体预测法附Matlab代码
  • 对比实验:LangChain-ChatChat vs 传统对话开发效率
  • 建议收藏:大模型RAG架构必备的向量数据库选型指南(7大主流方案全面对比)
  • DeepLX vs DeepL官方API:开源免费方案的技术突围之路
  • 15分钟搭建:SVN小乌龟+Jenkins自动化部署原型
  • 深度丨从孤岛到协同:区域医疗供应链的数智化重构
  • VoxCPM-0.5B:真人级语音克隆与实时交互的终极解决方案
  • 电商系统千万级订单的Sharding-JDBC实战
  • 越来越多妈妈选择有机A2β-酪蛋白奶源婴幼儿奶粉?真相在这里!
  • TikTok直播录制终极指南:轻松保存精彩直播的完整方案
  • a2β-酪蛋白奶源和有机奶源哪个更好,揭秘最新排行榜
  • mask xcf 文件