Spring AI教程(二十):依赖管理与Spring AI BOM | Spring AI教程(二十一):添加特定组件的依赖与模型支持

慈云数据 2024-06-15 技术支持 36 0

Spring AI教程(二十):依赖管理与Spring AI BOM

在前面的文章中,我们介绍了如何使用Spring CLI和Spring Initializr创建和管理Spring AI项目。本篇文章将进一步探讨如何使用Spring AI的依赖管理功能,以及如何利用Spring AI Bill of Materials(BOM)来简化项目的依赖管理。

Spring AI教程(二十):依赖管理与Spring AI BOM | Spring AI教程(二十一):添加特定组件的依赖与模型支持
(图片来源网络,侵删)

依赖管理

依赖管理是确保项目使用正确版本的库和依赖的关键步骤。Spring AI提供了一种简化依赖管理的方法,即通过使用Spring AI BOM。

什么是BOM?

BOM(Bill of Materials)声明了给定Spring AI版本使用的所有依赖项的推荐版本。通过在项目中使用BOM,可以避免手动指定和维护依赖项版本。BOM版本决定了项目中使用的依赖项版本,并确保默认情况下使用支持和测试过的依赖项版本,除非你选择覆盖它们。

Spring AI教程(二十):依赖管理与Spring AI BOM | Spring AI教程(二十一):添加特定组件的依赖与模型支持
(图片来源网络,侵删)
使用Maven进行依赖管理

对于Maven用户,可以通过在pom.xml文件中添加以下内容来使用BOM:

    
        
            org.springframework.ai
            spring-ai-bom
            1.0.0-SNAPSHOT
            pom
            import
        
    

然后,你可以添加版本号由BOM管理的具体依赖项:

    
        com.example
        spring-ai-openai
    
    

使用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项目,添加以下仓库定义:

  
    spring-milestones
    Spring Milestones
    https://repo.spring.io/milestone
    
      false
    
  
  
    spring-snapshots
    Spring Snapshots
    https://repo.spring.io/snapshot
    
      false
    
  

对于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

        com.example
        spring-ai-openai-embeddings
        1.0.0
    
    
  • Azure OpenAI Embeddings

        com.example
        spring-ai-azure-openai-embeddings
        1.0.0
    
    
  • Ollama Embeddings

        com.example
        spring-ai-ollama-embeddings
        1.0.0
    
    
  • ONNX Embeddings

        com.example
        spring-ai-onnx-embeddings
        1.0.0
    
    
  • PostgresML Embeddings

        com.example
        spring-ai-postgresml-embeddings
        1.0.0
    
    
  • Bedrock Cohere Embeddings

        com.example
        spring-ai-bedrock-cohere-embeddings
        1.0.0
    
    
  • Bedrock Titan Embeddings

        com.example
        spring-ai-bedrock-titan-embeddings
        1.0.0
    
    
  • VertexAI Embeddings

        com.example
        spring-ai-vertexai-embeddings
        1.0.0
    
    
  • MistralAI Embeddings

        com.example
        spring-ai-mistralai-embeddings
        1.0.0
    
    
    聊天模型依赖

    以下是一些常见的聊天模型及其依赖项:

    • OpenAI Chat Completion

          com.example
          spring-ai-openai-chat
          1.0.0
      
      
    • Microsoft Azure Open AI Chat Completion

          com.example
          spring-ai-azure-openai-chat
          1.0.0
      
      
    • Ollama Chat Completion

          com.example
          spring-ai-ollama-chat
          1.0.0
      
      

      使用Spring AI支持的模型

      Spring AI支持多种嵌入模型和聊天模型,下面是一些使用示例:

      嵌入模型使用示例

      以下是一个使用OpenAI嵌入模型的示例:

      1. 创建服务类

        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 generateEmbedding(String text) {
                return embeddingService.embed(text);
            }
        }
        
      2. 创建控制器

        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 generateEmbedding(@RequestParam String text) {
                return embeddingService.generateEmbedding(text);
            }
        }
        
      聊天模型使用示例

      以下是一个使用OpenAI聊天模型的示例:

      1. 创建服务类

        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);
            }
        }
        
      2. 创建控制器

        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支持的各种嵌入模型和聊天模型。这些示例展示了如何在实际项目中使用这些模型,提高应用程序智能化水平。希望这篇文章能帮助你在实际项目中应用这些技术,并激发你更多的创意。

      下一篇文章中,我们将继续探讨更多实际应用场景和高级功能,帮助你进一步掌握这一强大的工具。

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon