SpringAI打造自己的AI應用(入門篇)

隨著人工智能技術的快速發(fā)展,越來越多的開發(fā)者希望將 AI 能力集成到自己的應用中,作為java開發(fā)者,開發(fā)AI應用,SpringAI無疑是一個很好的選擇。SpringAI 是一個基于 Spring 生態(tài)的 AI 集成框架,它可以幫助開發(fā)者快速構建 AI 驅動的應用程序。本文將介紹如何使用 SpringAI 打造自己的 AI 應用,并通過實例代碼演示如何集成和使用 AI 功能。

1. SpringAI 簡介

SpringAI 是一個基于 Spring 生態(tài)的 AI 集成框架,它提供了對多種 AI 模型和服務的支持,包括自然語言處理(NLP)、計算機視覺(CV)、語音識別等。通過 SpringAI,開發(fā)者可以輕松地將 AI 能力集成到 Spring 應用中,而無需關心底層的復雜實現(xiàn)。

官方文檔: https://docs.spring.io/spring-ai/reference/

2. 環(huán)境準備

在開始之前,我們需要準備以下環(huán)境:

  • JDK 17 或更高版本
  • Maven 3.6/gradle 或更高版本
  • Spring Boot 3.0 或更高版本
  • SpringAI 依賴

2.1 創(chuàng)建 Spring Boot 項目

首先,使用 Spring Initializr/Maven 創(chuàng)建一個新的 Spring Boot 項目。選擇以下依賴:

  • Spring Web
  • Spring AI

生成項目后,導入到你的 IDE 中。

2.2 添加 SpringAI 依賴

添加 SpringAI 的依賴:(??:本文以當前最新版本:1.0.0-SNAPSHOT為例,實際使用建議到官網(wǎng)文檔獲取最新版本)

1.添加倉庫

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' }
}

2.添加依賴

maven

<dependencyManagement> 
<dependencies> 
<!--springai-->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<type>pom</type> 
<scope>import</scope>
</dependency>
 
<dependency>
<!--springboot-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> 
<version>3.3.2</version> 
<type>pom</type> 
<scope>import</scope>
</dependency>
</dependencies> 

</dependencyManagement>

<!--ollama 這里根據(jù)自己接入的模型倒入依賴-->
<dependencies> 
<groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependencies> 
<!--springboot-web包-->
<dependencies> 
<groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependencies> 

gradle

dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT") 
implementation 'org.springframework.ai:spring-ai-ollama-spring-boot-starter' //以ollama為例
implementation platform("org.springframework.boot:spring-boot-dependencies:3.3.2") 
implementation 'org.springframework.boot:spring-boot-starter-web' //spring web包
}

3. 實例:集成 AI模型

在本實例中,我將使用 Ollama 本地部署模型 qwen:2.5:7b模型,實現(xiàn)一個簡單的文本生成功能,當然了,也可以集成其他模型比如openai或者deepseek等,官方的就配置自己的api-key和模型名稱就可以了。如果不清楚怎么部署的同學,建議先了解ollama部署后再來看本文章,這里就不再贅述了。

ollama官網(wǎng): https://ollama.com/

3.1 項目配置

首先,在 application.yml 中,加入模型配置:

spring:
   ollama:
     chat:
      model: qwen2.5:7b

3.2 創(chuàng)建控制器

最后,我們創(chuàng)建一個控制器,用于處理 HTTP 請求并返回生成的文本:

java

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 TextGenerationController {

    private final OllamaChatModel ollamaChatModel;
    
    public TextGenerationController(OllamaChatModel ollamaChatModel){
      this.ollamaChatModel = ollamaChatModel;
    }

    // 普通輸出
    @GetMapping("/generate")
    public String generate(String prompt) {
        return ollamaChatModel.call(prompt);
    }
    
    //流式輸出
    @GetMapping(value = "/generateStream")  
    public Flux<String> generateStream(String prompt){
        return ollamaChatModel.stream(prompt);
    }
    
    
}

3.3 運行應用

啟動 Spring Boot 應用后,訪問 http://localhost:8080/generate?prompt=你好,你將看到生成的文本。

4. 總結

通過 SpringAI,我們可以輕松地將 AI 能力集成到 Spring 應用中。本文通過一個簡單的實例演示了如何集成本地Ollama 的 qwen2.5:7b 模型,并實現(xiàn)了一個文本生成功能。希望這篇文章能幫助你快速上手 SpringAI,打造自己的 AI 應用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容