手把手教你 Spring Boot 集成 Ollama 調(diào)用 DeepSeek
在當今數(shù)字化時代,AI 技術(shù)的飛速發(fā)展正不斷改變著我們的生活和工作方式。其中,智能搜索作為一項關(guān)鍵技術(shù),正逐漸成為企業(yè)和開發(fā)者關(guān)注的焦點。而 Spring Boot 作為一種流行的 Java 開發(fā)框架,其簡潔、高效的特點深受廣大開發(fā)者的喜愛。本文將詳細介紹如何在 Spring Boot 中集成 Ollama 并調(diào)用 DeepSeek,開啟 AI 智能搜索的新紀元。
一、環(huán)境準備
1. 安裝 Ollama
訪問 Ollama 官網(wǎng),下載與你操作系統(tǒng)匹配的版本(支持 Windows、macOS 和 Linux)。
https://ollama.com/download/mac
下載完成后,運行安裝程序并按照提示完成安裝。對于 Linux 系統(tǒng)用戶,可以通過以下命令進行安裝:
curl -fsSL https://ollama.com/install.sh | sh
驗證 Ollama 安裝是否成功,打開終端或命令提示符,輸入以下命令:
ollama --version
如果成功安裝,終端會返回 Ollama 的版本號。
2. 下載 DeepSeek-R1
確認 Ollama 安裝無誤后,開始下載 DeepSeek-R1。在終端中運行以下命令:
ollama run deepseek-r1
根據(jù)你的網(wǎng)絡速度,這個過程可能需要一些時間,請耐心等待,直到下載完成。
二、Spring Boot 項目構(gòu)建
1. 創(chuàng)建 Spring Boot 項目
使用 Spring Initializr 創(chuàng)建一個 Spring Boot 項目,并添加 Spring AI 依賴。確保在 pom.xml 中包含以下依賴項:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
2. 配置 Ollama
在 Spring Boot 的 application.properties 文件中,配置 Ollama 的服務地址和要調(diào)用的模型:
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=deepseek-r1:1.5b
三、編寫代碼調(diào)用 DeepSeek-R1 模型
1. 創(chuàng)建服務類
在 Spring Boot 項目中,創(chuàng)建一個服務類,用于調(diào)用 DeepSeek-R1 模型。以下是一個簡單的示例:
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.stereotype.Service;
@Service
public class DeepSeekService {
private final OllamaChatModel ollamaChatModel;
public DeepSeekService(OllamaChatModel ollamaChatModel) {
this.ollamaChatModel = ollamaChatModel;
}
public String search(String prompt) {
return ollamaChatModel.call(prompt);
}
}
在上述代碼中,我們通過 @Service 注解將該類標記為一個服務類,并通過構(gòu)造函數(shù)注入的方式獲取 OllamaChatModel 實例。search 方法接收一個 prompt 參數(shù),將其傳遞給 ollamaChatModel.call 方法,從而調(diào)用 DeepSeek-R1 模型進行搜索。
2. 創(chuàng)建控制器類
創(chuàng)建一個控制器類,用于接收客戶端的請求并調(diào)用服務類中的方法。以下是一個示例:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DeepSeekController {
private final DeepSeekService deepSeekService;
public DeepSeekController(DeepSeekService deepSeekService) {
this.deepSeekService = deepSeekService;
}
@PostMapping("/search")
public String search(@RequestBody String prompt) {
return deepSeekService.search(prompt);
}
}
在上述代碼中,我們通過 @RestController 注解將該類標記為一個控制器類,并通過構(gòu)造函數(shù)注入的方式獲取 DeepSeekService 實例。search 方法接收一個 @RequestBody 注解的 prompt 參數(shù),將其傳遞給 deepSeekService.search 方法,從而實現(xiàn)對 DeepSeek-R1 模型的調(diào)用。
四、測試與運行
1. 啟動項目
啟動 Spring Boot 項目,確保項目能夠正常運行。
2. 測試接口
使用 Postman 或其他工具,向 /search 接口發(fā)送 POST 請求,并在請求體中傳遞搜索關(guān)鍵詞。例如,發(fā)送以下請求:
{
"prompt": "人工智能的發(fā)展歷程"
}
服務器將返回 DeepSeek-R1 模型的搜索結(jié)果,例如:
{
"response": "人工智能的發(fā)展歷程可以追溯到 20 世紀 50 年代......"
}
五、總結(jié)
通過上述步驟,我們成功地在 Spring Boot 中集成了 Ollama 并調(diào)用了 DeepSeek-R1 模型,實現(xiàn)了 AI 智能搜索功能。這一過程不僅展示了 Spring Boot 與 Ollama 的強大結(jié)合,也為我們開啟了一扇通往 AI 智能搜索新紀元的大門。在未來的發(fā)展中,我們可以進一步探索和優(yōu)化這一技術(shù),為用戶提供更加智能、高效的搜索體驗。