Spring AI教程(二十):依赖管理与Spring AI BOM | Spring AI教程(二十一):添加特定组件的依赖与模型支持
BOM(Bill of Materials)声明了给定Spring AI版本使用的所有依赖项的推荐版本。通过在项目中使用BOM,可以避免手动指定和维护依赖项版本。BOM版本决定了项目中使用的依赖项版本,并确保默认情况下使用支持和测试过的依赖项版本,除非你选择覆盖它们。
Spring AI教程(二十):依赖管理与Spring AI BOM
在前面的文章中,我们介绍了如何使用Spring CLI和Spring Initializr创建和管理Spring AI项目。本篇文章将进一步探讨如何使用Spring AI的依赖管理功能,以及如何利用Spring AI Bill of Materials(BOM)来简化项目的依赖管理。
依赖管理
依赖管理是确保项目使用正确版本的库和依赖的关键步骤。Spring AI提供了一种简化依赖管理的方法,即通过使用Spring AI BOM。
什么是BOM?
BOM(Bill of Materials)声明了给定Spring AI版本使用的所有依赖项的推荐版本。通过在项目中使用BOM,可以避免手动指定和维护依赖项版本。BOM版本决定了项目中使用的依赖项版本,并确保默认情况下使用支持和测试过的依赖项版本,除非你选择覆盖它们。
使用Maven进行依赖管理
对于Maven用户,可以通过在pom.xml
文件中添加以下内容来使用BOM:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后,你可以添加版本号由BOM管理的具体依赖项:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>spring-ai-openai</artifactId>
</dependency>
<!-- 添加其他依赖项 -->
</dependencies>
使用Gradle进行依赖管理
对于Gradle用户,可以利用Gradle(5.0+)对声明依赖约束的Maven BOM的原生支持。在Gradle构建脚本的dependencies
部分中添加platform
依赖处理方法:
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
// 使用BOM管理的具体模块的Starter依赖项
implementation "com.example:spring-ai-openai"
// 添加其他依赖项
}
添加Milestone和Snapshot仓库
要使用Milestone和Snapshot版本,需要在构建文件中添加对Spring Milestone和/或Snapshot仓库的引用。
对于Maven项目,添加以下仓库定义:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
对于Gradle项目,添加以下仓库定义:
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
结论
通过使用Spring AI的BOM,你可以简化项目的依赖管理,确保使用正确版本的依赖项。无论是Maven还是Gradle,Spring AI都提供了便捷的方法来管理依赖项版本,从而提高开发效率和项目的稳定性。
希望这篇文章能帮助你在实际项目中应用这些技术,并激发你更多的创意。下一篇文章中,我们将继续探讨更多实际应用场景和高级功能,帮助你进一步掌握这一强大的工具。
Spring AI教程(二十一):添加特定组件的依赖与模型支持
在前面的文章中,我们介绍了如何使用Spring CLI和Spring Initializr创建和管理Spring AI项目,并讨论了Spring AI的依赖管理方法。这篇文章将详细介绍如何为特定组件添加依赖,以及如何使用Spring AI支持的各种模型。
添加特定组件的依赖
根据你的需求,Spring AI文档提供了不同组件的依赖项,你可以将它们添加到项目的构建系统中。
嵌入模型依赖
以下是一些常见的嵌入模型及其依赖项:
-
OpenAI Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-openai-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
Azure OpenAI Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-azure-openai-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
Ollama Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-ollama-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
ONNX Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-onnx-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
PostgresML Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-postgresml-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
Bedrock Cohere Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-bedrock-cohere-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
Bedrock Titan Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-bedrock-titan-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
VertexAI Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-vertexai-embeddings</artifactId> <version>1.0.0</version> </dependency>
-
MistralAI Embeddings
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-mistralai-embeddings</artifactId> <version>1.0.0</version> </dependency>
聊天模型依赖
以下是一些常见的聊天模型及其依赖项:
-
OpenAI Chat Completion
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-openai-chat</artifactId> <version>1.0.0</version> </dependency>
-
Microsoft Azure Open AI Chat Completion
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-azure-openai-chat</artifactId> <version>1.0.0</version> </dependency>
-
Ollama Chat Completion
<dependency> <groupId>com.example</groupId> <artifactId>spring-ai-ollama-chat</artifactId> <version>1.0.0</version> </dependency>
使用Spring AI支持的模型
Spring AI支持多种嵌入模型和聊天模型,下面是一些使用示例:
嵌入模型使用示例
以下是一个使用OpenAI嵌入模型的示例:
-
创建服务类
import org.springframework.stereotype.Service; import com.example.springai.OpenAiEmbeddingService; @Service public class EmbeddingService { private final OpenAiEmbeddingService embeddingService; public EmbeddingService(OpenAiEmbeddingService embeddingService) { this.embeddingService = embeddingService; } public List<Float> generateEmbedding(String text) { return embeddingService.embed(text); } }
-
创建控制器
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class EmbeddingController { @Autowired private EmbeddingService embeddingService; @GetMapping("/generate-embedding") public List<Float> generateEmbedding(@RequestParam String text) { return embeddingService.generateEmbedding(text); } }
聊天模型使用示例
以下是一个使用OpenAI聊天模型的示例:
-
创建服务类
import org.springframework.stereotype.Service; import com.example.springai.OpenAiChatService; @Service public class ChatService { private final OpenAiChatService chatService; public ChatService(OpenAiChatService chatService) { this.chatService = chatService; } public String chat(String prompt) { return chatService.chat(prompt); } }
-
创建控制器
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class ChatController { @Autowired private ChatService chatService; @GetMapping("/chat") public String chat(@RequestParam String prompt) { return chatService.chat(prompt); } }
结论
通过为特定组件添加依赖,你可以充分利用Spring AI支持的各种嵌入模型和聊天模型。这些示例展示了如何在实际项目中使用这些模型,提高应用程序的智能化水平。希望这篇文章能帮助你在实际项目中应用这些技术,并激发你更多的创意。
下一篇文章中,我们将继续探讨更多实际应用场景和高级功能,帮助你进一步掌握这一强大的工具。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)