概述 Spring AI是Spring生态中应用于人工智能领域的应用框架,它的目标是将Spring 生态系统的设计原则(如可移植性、模块化设计)应用于AI领域,并在AI领域中推广使用POJO(Plain Old Java Objects)作为应用的构建模块。**Spring AI能做什么?支持目前主流大语言模型平台,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface; 支持阻塞与流式的文本对话; 支持图像生成(当前仅限OpenAI的dall-e-*模型和SD); 支持嵌入模型; 支持LLM生成的内容转为POJO; 支持主流的向量数据库或平台:Azure Vector Search, Chroma, Milvus, Neo4j, PostgreSQL/PGVector, PineCone, Qdrant, Redis 和 Weaviate 支持函数调用 支持自动装配和启动器(与Spring Boot完美集成); 提供用于数据处理工程的ETL框架;快速搭建一个SpringAI项目1.创建项目点击新建一个项目
按照箭头指示创建,jdk要求最低17,项目名和路径自定义
继续按照箭头指示创建
我这里演示的是openAI的接口所以这里要选择openAI
点击create,进入
修改pom.xml文件引入相关依赖 <?xml version="1.0" encoding="UTF-8"?> 4.0.0 org.springframework.boot spring-boot-starter-parent 3.2.5 com.mobai spring-ai-demo 0.0.1-SNAPSHOT spring-ai-demo spring-ai-demo <java.version>17</java.version> <spring-ai.version>0.8.1</spring-ai.version> org.springframework.boot spring-boot-starter-web org.springframework.ai spring-ai-openai-spring-boot-starter org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test cn.hutool hutool-json 5.8.27 org.springframework.ai spring-ai-bom ${spring-ai.version} pom import org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok spring-milestones Spring Milestones https://repo.spring.io/milestone false 这里有个小坑,openai的依赖在阿里云远程仓库是没有的会导致远程仓库是阿里云的同学下载依赖失败,这里我们需要将远程仓库换回来,修改maven安装路径下的conf下的setting.xml文件
接着我们需要修改application.yaml文件,如果没有需自行创建,加入以下配置,配置我们的api-key,需自行去某宝购买
编写启动类命名任意,注意启动类的路径
创建一个web文件夹用于接收请求在这里,我们选择阻塞式调用接口进行演示。创建一个ChatController类,将ChatClient注入进来,并编写一个简单的接口进行测试:
package com.mobai.springaidemo.web; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.Generation; import org.springframework.ai.chat.prompt.ChatOptions; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; / * @author Mobai * @version 1.0 * @date 2024/5/28 01:24 */ @RestController public class ChatController { private final ChatClient chatClient; public ChatController(ChatClient chatClient) { this.chatClient = chatClient; } @GetMapping("/chat1") public String demo(String msg){ String response = chatClient.call(msg); return response; } }点击启动
在浏览器输入:http://127.0.0.1:8080/chat1prompt=你的问题运行结果如下:在上面的测试接口中,核心代码`String response = chatClient.call(msg)。其中,msg是我们输入到ChatGPT的文本(一般是问题),response则是ChatGPT针对msg生成出的文本,即响应。Spring AI将底层的请求、参数配置等进行了封装,AI模型默认GPT-3.5-Turbo`。因此我们只需这简简单单的一行代码就能对接ChatGPT。
【SpringAI入门】初识SpringAI
2601_962203512026-09-02 21:59
相关推荐
weixin_4614085837 分钟前
Mybatis-flex小记2601_962177131 小时前
【MySQL篇】聚合查询,联合查询それども1 小时前
IDEA接入Claude完整流程小鹿的周先生2 小时前
Spring-AI-第2篇-ChatClient 实战:使用 DeepSeek 完成第一次 AI 对话悲且狂2 小时前
SpringBoot项目改造注意事项(旧项目框架复用)花间相见3 小时前
【LangChain组件03】—— LangChain Agents 执行与状态:工作流程与状态管理实战敲代码的嘎仔3 小时前
28届后端开发-海康威视日常实习一面(已OC)程序员黎剑4 小时前
Spring-Bean生命周期-构造器访问Autowired字段为null古法安卓4 小时前
Android-重启流程源码解析