Spring AI项目旨在简化集成人工智能功能的应用程序开发,避免不必要的复杂性。灵感源自 LangChain 和 LlamaIndex 等知名 Python 项目,但 Spring AI 并非这些项目的直接移植。该项目的初衷在于:下一代生成式 AI 应用将不仅面向 Python 开发者,更将在多种编程语言中实现广泛普及。
一、环境
1.Spring AI 2.0.x 版本支持 Spring Boot 4.0.x 和 4.1.x。
2.jdk需要17及以上
3.IDEA需要2025.3的版本以上
二、代码
1、pom.xml
这里用的是openai,因为我用的模型是阿里百炼的模型,可以兼容openai的api
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>4.1.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.suibibk</groupId><artifactId>spring-ai-test</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-ai-test</name><description>spring-ai-test</description><properties><java.version>17</java.version><spring-ai.version>2.0.1</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-starter-model-openai</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></project>
2、application.yaml
这里配置的模型都是阿里百炼我还有免费额度的,api-key放在的是系统的环境变量里面。要注意一点是ai下面的配置不同的springai版本貌似不一致,最准确的还是直接自己去搜配置类吧,比如这里用IDEA的快捷键(Ctrl+N)然后搜索OpenAiChatAutoConfiguration可以找到chat的配置类OpenAiChatProperties.搜OpenAiEmbeddingAutoConfiguration可以找到OpenAiEmbeddingProperties的配置类,从类里面就可以找到配置的具体key。
spring:application:name: spring-ai-testai:openai:api-key: ${AI_BAILIAN_API_KEY}base-url: https://dashscope.aliyuncs.com/compatible-mode/v1chat:model: qwen3.8-flashtemperature: 0.7embedding:model: qwen3.7-text-embedding-flashdimensions: 2048
3、AIConfigration.java
AI的配置类,这里创建chatClient,放在这里的好处是后面对接不同的模型比如Ollama这些本地模型以及deepseek的一些模型都可以自己创建对应的chatClient
@Configurationpublic class AIConfigration {@Beanpublic ChatClient openaiChatClient(OpenAiChatModel openAiChatModel){return ChatClient.builder(openAiChatModel) //设置模型.build();//创建对象}}
4、TestController.java
@RestControllerpublic class TestController {@Autowiredprivate ChatClient openaiChatClient;@GetMapping("/hello")public String hello(){return "hello";}/*** 直接请求* @param question* @return*/@GetMapping("/ai")public String ai(String question){String content = openaiChatClient.prompt().user(question).call().content();return content;}/*** 流式输出* @param question* @return*/@GetMapping(value = "/aiStream",produces = MediaType.TEXT_HTML_VALUE + ";charset=UTF-8")public Flux<String> aiStream(String question){Flux<String> content = openaiChatClient.prompt().user(question).stream().content();return content;}}
三、补充
1、官方文档
https://docs.spring.io/spring-ai/reference/getting-started.html
用夸克直接翻译贼好用,如果英语不好的话
2、配置项
配置如果有问题,建议直接搜源码或者问AI
