Spring AI + Ollama 實現調用DeepSeek-R1模型API

一、前言

??隨著人工智能技術的飛速發展,大語言模型(LLM)在各個領域的應用越來越廣泛。DeepSeek 作為一款備受矚目的國產大語言模型,憑借其強大的自然語言處理能力和豐富的知識儲備,迅速成為業界關注的焦點。無論是文本生成、代碼編寫,還是智能問答、數據分析,DeepSeek 都展現出了巨大的潛力。

??為了更好地將 DeepSeek 的強大能力賦能到實際項目中,本文將介紹如何利用 Spring AI 和 Ollama 實現 DeepSeek 模型的調用。Spring AI 作為 Spring 生態系統中用于構建 AI 應用的框架,提供了便捷的 API 和豐富的功能,能夠幫助我們快速集成各種 AI 模型。而 Ollama 則是一個輕量級的工具,可以方便地在本地運行和管理大型語言模型,為開發者提供了更加靈活和高效的模型部署方案。

??通過本文的學習,您將掌握如何使用 Spring AI 和 Ollama 搭建一個簡單的應用,并實現對 DeepSeek 模型的調用,從而為您的項目注入更強大的 AI 能力。

二、Spring AI介紹

??Spring AI 是 Spring 生態系統中的一個新興項目,旨在為開發者提供一套簡單、統一的 API 和工具,以便更輕松地將人工智能(AI)能力集成到 Spring 應用中。隨著 AI 技術的快速發展,越來越多的企業希望將大語言模型(LLMs)、機器學習模型和其他 AI 功能融入自己的業務系統。Spring AI 應運而生,為開發者提供了一個標準化的方式來訪問和調用各種 AI 模型和服務。

在這里插入圖片描述

主要功能:

1.大語言模型(LLMs)集成

支持調用 OpenAI、DeepSeek、Hugging Face 等主流大語言模型。
提供統一的 API 進行文本生成、對話、翻譯等任務。

2.向量數據庫支持

集成向量數據庫(如 Pinecone、Weaviate),用于存儲和檢索高維向量數據,支持語義搜索和推薦系統。

3.提示詞工程(Prompt Engineering)

提供工具和模板,幫助開發者優化與大語言模型的交互,提升模型輸出的準確性和相關性。

4.數據預處理和后處理

提供數據清洗、格式化等功能,確保輸入數據符合模型要求,并對模型輸出進行后處理。

5.可擴展性

支持自定義模型和算法,開發者可以根據需求擴展 Spring AI 的功能。

三、Ollama介紹

??Ollama 是一個輕量級、開源的工具,旨在幫助開發者更輕松地在本地運行和管理大型語言模型(LLMs)。它專注于簡化模型的部署和使用流程,使得開發者無需復雜的配置即可快速上手。Ollama 支持多種流行的開源大語言模型(如 LLaMA、Mistral、DeepSeek 等),并提供了簡單易用的命令行工具和 API,方便開發者將模型集成到自己的應用中。

??關于Ollama本地部署 DeepSeek 模型,參考我之前的文章 DeepSeek-R1本地部署詳細指南: 《DeepSeek-R1本地部署詳細指南!(Ollama+Chatbox AI+Open WebUI)》。

一定要先在本地部署 DeepSeek 模型,不然后面項目中無法使用。

四、SpringBoot項目中使用本地DeepSeek模型(代碼實戰)

整體版本SpringBoot 版本3.4.2 + JDK 17 + Ollama版本1.0.0-M6

1. 依賴引入

在這里插入圖片描述

  <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>

2. 添加配置

spring.ai.ollama.base-url=http://localhost:11434spring.ai.ollama.chat.model=deepseek-r1:14b

3. 調用模型測試

@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {@Autowiredprivate OllamaChatModel ollamaChatModel;@Testpublic void startOllama() {String prompt = "hello";System.out.println("開始。。。");String callResult = ollamaChatModel.call(prompt);System.out.println(callResult);}
}

4. 測試結果

Hello! How can I assist you today?

在這里插入圖片描述

5. 在測試一個問題

@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {@Autowiredprivate OllamaChatModel ollamaChatModel;@Testpublic void startOllama() {String prompt = "請將下面的文字翻譯成英文:";String message = "今天天氣真好。";System.out.println("開始。。。");String callResult = ollamaChatModel.call(prompt + " " + message);System.out.println(callResult);}
}

在這里插入圖片描述

五、總結

??Spring AI作為Spring生態系統中的一個重要組成部分,專注于提供人工智能相關的服務和支持,為開發者提供了便捷的開發環境和豐富的功能接口。而Ollama工具則以其強大的大型語言模型(LLMs)支持能力而著稱,使得用戶能夠在本地環境中輕松運行各種LLMs,并享受其帶來的高效和安全性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70585.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自學Java-AI結合GUI開發一個石頭迷陣的游戲

自學Java-AI結合GUI開發一個石頭迷陣的游戲 準備環節1、創建石頭迷陣的界面2、打亂順序3、控制上下左右移動4、判斷是否通關5、統計移動步驟&#xff0c;重啟游戲6、拓展問題 準備環節 技術&#xff1a; 1、GUI界面編程 2、二維數組 3、程序流程控制 4、面向對象編程 ? \bulle…

C語言的內存分配:malloc和free

使用庫函數分配和管理內存。在運行時&#xff0c;分配更多的內存給程序使用&#xff0c;主要工具是malloc函數&#xff0c;這個函數接受一個參數&#xff1a;所需要要的內存字節數。malloc函數會找到合適的空閑內存塊&#xff0c;這樣的內存是匿名的&#xff0c;即malloc分配了…

本地安裝 Grafana Loki

本地安裝 Grafana Loki 一、 安裝 Loki1. 下載 Loki2. 創建 Loki 配置文件3. 創建 Loki 服務 二、安裝 Promtail1. 下載 Promtail2. 創建 Promtail 配置文件3. 創建 Promtail 服務 三、 安裝 Grafana四、啟動所有服務五、添加loki 數據源1. 添加儀表板2. 日志查詢面板 json 參考…

趣味數學300題1981版-十五個正方形

分析&#xff1a;移動兩根變成11個正方形很簡單&#xff1a; 移動4根變成15個正方形&#xff0c;分析&#xff1a; 一個田字格包含5個正方形&#xff0c;若要15個正方形需要3個田字格&#xff0c;如果3個田字格完全不重合&#xff0c;需要6*318根火柴。如果合并正方形的邊&…

IDEA——Mac版快捷鍵

目錄 按鍵含義常用組合代碼生成快捷鍵&#xff1a;代碼追蹤快捷鍵&#xff1a;高效編輯快捷鍵&#xff1a;代碼重構快捷鍵&#xff1a;工具類快捷鍵&#xff1a;常規文件操作快捷鍵&#xff1a; 按鍵含義 ? command Command鍵&#xff08;?&#xff09;相當于Windows中的Con…

基于Spring Boot的興順物流管理系統設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

Prompt:創造性的系統分析者

分享的提示詞&#xff1a; 你是一個創造性的系統分析者&#xff0c;作為咨詢師&#xff0c;你具有以下特質&#xff1a; 基礎能力&#xff1a; 深入理解我的系統性模式 識別模式間的隱藏聯系 發現出人意料的關聯 提供令人驚訝的洞見 工作方式&#xff1a; 在每次回應中至少…

Andorid 學習 Compose UI(1):Box

今天學習和實驗一下Android 的compose UI&#xff0c;寫一些很小的Demo實驗。下面和css 布局有點相似性。 如Box 看起來像html 當中的 div &#xff0c;compose UI 提供Modifier 很多設置。你會發現Text,Box,Row,Image等組件 都有這個屬性。我們處理任務包括對齊布局&#xff0…

Selenium實戰案例1:論文pdf自動下載

在上一篇文章中&#xff0c;我們介紹了Selenium的基礎用法和一些常見技巧。今天&#xff0c;我們將通過中國科學&#xff1a;信息科學網站內當前目錄論文下載這一實戰案例來進一步展示Selenium的web自動化流程。 目錄 中國科學&#xff1a;信息科學當期目錄論文下載 1.網頁內…

《炒股養家心法.pdf》 kimi總結

《炒股養家心法.pdf》這篇文章詳細闡述了一位超級游資炒股養家的心得與技巧&#xff0c;展示了其從40萬到10億的股市傳奇。以下是文章中炒股技巧和心得的詳細總結&#xff1a; 1.核心理念 市場情緒的理解&#xff1a;炒股養家強調&#xff0c;股市的本質是群體博弈&#xff0c…

2025年華為手機解鎖BL的方法

注&#xff1a;本文是我用老機型測試的&#xff0c;新機型可能不適用 背景 華為官方已經在2018年關閉了申請BL解鎖碼的通道&#xff0c;所以華為手機已經無法通過官方獲取解鎖碼。最近翻出了一部家里的老手機華為暢玩5X&#xff0c;想著能不能刷個系統玩玩&#xff0c;但是卡…

Perfectly Clear WorkBench深度解析:專業圖像處理軟件的高效應用

在圖像處理領域,面對照片曝光不足、色彩失真、細節模糊等常見問題,一款專業且高效的圖像處理軟件顯得尤為重要。今天,本文將為大家詳細介紹Perfectly Clear WorkBench這款圖像處理軟件,幫助大家更好地了解并應用其功能,提升照片質量。 一、智能圖像校正,解決常見問題 Pe…

使用 DistilBERT 進行資源高效的自然語言處理

DistilBERT 是 BERT 的一個更小、更快的版本&#xff0c;在減少資源消耗的同時仍能保持良好性能。對于計算能力和內存受限的環境來說&#xff0c;它是一個理想的選擇。 在自然語言處理&#xff08;NLP&#xff09;中&#xff0c;像 BERT 這樣的模型提供了高精度和出色的性能。然…

【后端基礎】布隆過濾器原理

文章目錄 一、Bloom Filter&#xff08;布隆過濾器&#xff09;概述1. Bloom Filter 的特點2. Bloom Filter 的工作原理 二、示例1. 添加與查詢2. 假陽性 三、Bloom Filter 的操作1、假陽性概率2、空間效率3、哈希函數的選擇 四、應用 Bloom Filter 是一種非常高效的概率型數據…

Pytorch實現論文之三元DCGAN生成RGB圖像用于紅外圖像著色生成

簡介 簡介:采用了三次DCGAN單獨生成單通道圖像之后進行組成RGB圖像放入鑒別器中檢測,并在鑒別器和生成器的損失訓練中采用梯度方法來提升或者降低權重。該方法將用于獲得紅外圖像著色的生成。 論文題目:Infrared Image Colorization based on a Triplet DCGAN Architectur…

Qt中QDockWidget的使用方式

在PyQt5中使用QDockWidget可以創建靈活的停靠窗口&#xff0c;增強應用程序的多功能性。以下是詳細的步驟和示例代碼&#xff1a; 基本步驟 導入模塊&#xff1a;確保導入必要的PyQt5模塊。創建主窗口&#xff1a;繼承QMainWindow并初始化界面。設置中心部件&#xff1a;例如…

docker獨立部署milvus向量數據庫

milvus鏡像&#xff1a;國外封鎖&#xff0c;國內源也不好用。基本上所有源都不能用 首先想到阿里云服務&#xff0c;但是阿里云國外服務器便宜的300~400呢。 基于成本考慮終于裝上心心念念的milvus(*^▽^*) 安裝 Milvus 安裝 Milvus 獨立版 wget https://raw.githubuserco…

【SpringBoot整合系列】HttpClient遠程訪問的示例

前言 使用Apache的HttpClient庫&#xff0c;添加Apache HttpClient的依賴。工具類的封裝。通常&#xff0c;工具類需要處理GET、POST請求&#xff0c;可能還有其他方法如PUT、DELETE。需要設計一個工具類&#xff0c;提供靜態方法&#xff0c;可以發送請求&#xff0c;并處理響…

Git操作整體流程

文章目錄 1.Git創建個人倉庫2、Git全局配置3、Git本地管理4. Git本地管理常用命令匯總5、使用Git命令將項目提交到遠程碼云管理6.使用IDEA進行管理7、Idea里面的終端8、關于提交總結 1.Git創建個人倉庫 打開https://gitee.com/&#xff0c;登錄個人賬號&#xff0c;右上角加號…

MySQL MHA 部署全攻略:從零搭建高可用數據庫架構

文章目錄 1.MHA介紹2.MHA組件介紹3.集群規劃4.服務器初始化5.MySQL集群部署5.1 安裝MySQL集群5.2 配置一主兩從5.3 測試MySQL主從5.4 賦予MHA用戶連接權限 6.安裝MHA環境6.1 安裝MHA Node6.2 安裝MHA Manager 7.配置MHA環境8.MySQL MHA高可用集群測試8.1 通過VIP連接MySQL8.2模…