為了構建生成式AI應用,需要完成兩個部分:
- AI大模型服務:有兩種方式實現,可以使用大廠的API,也可以自己部署,本文將採用ollama來構建
- 應用構建:呼叫AI大模型的能力實現業務邏輯,本文將採用Spring Boot + Spring AI來實現
Ollama安裝與使用
進入官網:https://ollama.com/ ,下載、安裝、啟動 ollama
具體步驟可以參考我之前的這篇文章:手把手教你本地執行Meta最新大模型:Llama3.1
構建 Spring 應用
-
透過spring initializr建立Spring Boot應用
-
注意右側選擇Spring Web和Spring AI對Ollama的支援依賴
-
點選“generate”按鈕獲取工程
-
使用IDEA或者任何你喜歡的工具開啟該工程,工程結構如下;
- 寫個單元測試,嘗試在Spring Boot應用裡呼叫本地的ollama服務
@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
@Autowired
private OllamaChatModel chatModel;
@Test
void ollamaChat() {
ChatResponse response = chatModel.call(
new Prompt(
"Spring Boot適合做什麼?",
OllamaOptions.builder()
.withModel(OllamaModel.LLAMA3_1)
.withTemperature(0.4)
.build()
));
System.out.println(response);
}
}
執行得到如下輸出:
ChatResponse [metadata={ id: , usage: { promptTokens: 17, generationTokens: 275, totalTokens: 292 }, rateLimit: org.springframework.ai.chat.metadata.EmptyRateLimit@7b3feb26 }, generations=[Generation[assistantMessage=AssistantMessage [messageType=ASSISTANT, toolCalls=[], textContent=Spring Boot是一個基於Java的快速開發框架,主要用於建立獨立的、生產級別的應用程式。它提供了一個簡化的配置過程,使得開發者能夠快速構建和部署Web應用程式。
Spring Boot適合做以下幾件事情:
1. **快速開發**: Spring Boot提供了一系列的自動配置功能,可以幫助開發者快速建立基本的應用程式,減少手動編寫配置程式碼的時間。
2. **獨立執行**: Spring Boot可以作為一個獨立的應用程式執行,不需要額外的容器或伺服器支援。
3. **生產級別的應用程式**: Spring Boot提供了許多生產級別的特性,例如安全、監控和部署等功能,可以幫助開發者建立高效能、可靠的應用程式。
4. **Web 應用程式**: Spring Boot可以用於建立Web應用程式,包括RESTful API、WebSockets和其他型別的Web應用程式。
5. **微服務架構**: Spring Boot支援微服務架構,允許開發者將一個大型應用程式分解成多個小型服務,每個服務都可以獨立執行和部署。
總之,Spring Boot是一個強大的框架,可以幫助開發者快速建立、測試和部署生產級別的應用程式。, metadata={messageType=ASSISTANT}], chatGenerationMetadata=ChatGenerationMetadata{finishReason=stop,contentFilterMetadata=null}]]]
上述樣例工程打包放公眾號了,如果需要的話,關注"程式猿DD",傳送關鍵詞
spring+ollama
獲得下載連結。
小結
透過本文的介紹,我們就已經完成了Spring Boot應用與Ollama執行的AI模型之間的對接。剩下的就是與業務邏輯的結合實現,這裡讀者根據自己的需要去實現即可。
可能存在的一些疑問
- 如何使用其他AI模型
透過ollama的 Models 頁面,可以找到各種其他模型:
選擇你要使用的模型來啟動即可。
- 如何植入現有應用?
開啟上面工程的pom.xml
,可以看到主要就下面兩個依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>
所以,如果要在現有工程引入的話只要引入spring-ai-ollama-spring-boot-starter
依賴就可以了。
好了,今天的分享就到這裡。最近較忙,分享較少,感謝持續的關注與支援 _
如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!