Spring AI 結合DeepSeek使用教程

Spring AI 結合DeepSeek使用教程

一、環境搭建與項目初始化

  1. 創建Spring Boot項目

    • 使用IDEA或Spring Initializr創建項目,選擇JDK 17或更高版本(推薦21)。
    • 勾選依賴項:Spring WebLombok,Maven或Gradle作為構建工具。
    • 添加Spring AI依賴(以DeepSeek為例):
    • deepseek 作為引入依賴
    <properties><java.version>17</java.version><spring-ai.version>1.0.0</spring-ai.version>
    </properties>
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-deepseek</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
    </dependencies>
    <dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies>
    </dependencyManagement>
    
  2. 配置API密鑰
    application.yml中配置模型服務(以DeepSeek為例):

    server:port: 8080
    spring:ai:deepseek:api-key: sk-your-api-keybase-url: https://api.deepseek.com/v1chat:options:model: deepseek-chat

二、基礎功能實現

  1. 調用大模型生成文本
    • 通過chatModel發送請求:
         @RestControllerpublic class ChatController {private DeepSeekChatModel chatModel;@Autowiredpublic ChatController(DeepSeekChatModel chatModel) {this.chatModel = chatModel;}@GetMapping("/ai/generate")public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", chatModel.call(message));}@GetMapping("/ai/generateStream")public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {var prompt = new Prompt(new UserMessage(message));return chatModel.stream(prompt);}}
      
    • 啟動應用后,訪問http://localhost:8080/ai/generate?message=寫一首春天的詩即可獲取響應。
      響應結果如下:
      在這里插入圖片描述

🍚總結

大功告成,撒花致謝🎆🎇🌟,關注我不迷路,帶你起飛帶你富。
Writted By 知識淺談

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

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

相關文章

Android 布局優化:掌握 <include> 與 <merge> 的實戰技巧

引言 在 Android 開發中&#xff0c;布局文件是 UI 設計的核心載體&#xff0c;但隨著項目復雜度增加&#xff0c;布局冗余、嵌套層級過深等問題會導致性能下降。本文將通過 代碼級實戰示例&#xff0c;詳細解析如何利用 <include> 和 <merge> 標簽優化布局&#…

【storage】

文章目錄 1、RAM and ROM2、DRAM and SRAM2、Flash Memory&#xff08;閃存&#xff09;4、DDR and SPI NOR Flash5、eMMC6、SPI NOR vs SPI NAND vs eMMC vs SD附錄——prototype and demo board附錄——U盤、SD卡、TF卡、SSD參考 1、RAM and ROM RAM&#xff08;Random Acce…

Python異步編程-協程

1、引言 在使用多個爬蟲腳本進行數據爬取和調用大語言模型返回結果的場景中&#xff0c;涉及到大量的網絡IO操作。協程能夠讓網絡IO操作并發執行&#xff0c;極大地提升程序的運行效率。在智能體相關的開源項目中&#xff0c;我們也可以經常看到協程的身影。 2、協程 協程&a…

大語言模型提示詞(LLM Prompt)工程系統性學習指南:從理論基礎到實戰應用的完整體系

文章目錄 前言&#xff1a;為什么提示詞工程成為AI時代的核心技能一、提示詞的本質探源&#xff1a;認知科學與邏輯學的理論基礎1.1 認知科學視角下的提示詞本質信息處理理論的深層機制圖式理論的實際應用認知負荷理論的優化策略 1.2 邏輯學框架下的提示詞架構形式邏輯的三段論…

Android音頻開發:Speex固定幀與變長幀編解碼深度解析

引言 在Android音頻開發領域&#xff0c;Speex作為一種開源的語音編解碼器&#xff0c;因其優秀的窄帶語音壓縮能力被廣泛應用。在實際開發中&#xff0c;幀處理策略的選擇直接影響著音頻傳輸質量、帶寬占用和系統資源消耗。本文將深入探討Speex編解碼中固定幀與變長幀的實現差…

Docke啟動Ktransformers部署Qwen3MOE模型實戰與性能測試

docker運行Ktransformers部署Qwen3MOE模型實戰及 性能測試 最開始拉取ktransformers:v0.3.1-AVX512版本&#xff0c;發現無論如何都啟動不了大模型&#xff0c;后來發現是cpu不支持avx512指令集。 由于本地cpu不支持amx指令集&#xff0c;因此下載avx2版本鏡像&#xff1a; …

算術操作符與類型轉換:從基礎到精通

目錄 前言&#xff1a;從基礎到實踐——探索運算符與類型轉換的奧秘 算術操作符超級詳解 算術操作符&#xff1a;、-、*、/、% 賦值操作符&#xff1a;和復合賦值 單?操作符&#xff1a;、--、、- 前言&#xff1a;從基礎到實踐——探索運算符與類型轉換的奧秘 在先前的文…

飛騰D2000,麒麟系統V10,docker,ubuntu1804,小白入門喂飯級教程

#下載docker Index of linux/static/stable/ 根據電腦的CPU類型選擇&#xff1a; Intel和AMD選x86_64飛騰D2000選aarch64 #選擇較新的版本 #在包含下載的docker-XX.X.X.tgz的文件夾中右鍵->打開終端 # 解壓安裝包&#xff08;根據實際下載的文件&#xff09; tar -zxvf …

啟程:為何選擇PHP?

一、寫在前面&#xff1a;小公司的生存邏輯與我的困惑 我是一名在小型軟件開發公司工作的Java全棧開發者。我們這類團隊的現實很直白&#xff1a;接不到“大單子”&#xff0c;日常圍繞各類中小項目——企業官網、內部管理系統、定制化小程序——展開。客戶預算有限、交付周期…

學習使用YOLO的predict函數使用

YOLO的 result.py #2025.1.3 """ https://docs.ultralytics.com/zh/modes/predict/#inference-arguments 對yolo 目標檢測、實例分割、關鍵點檢測結果進行說明https://docs.ultralytics.com/reference/engine/results/#ultralytics.engine.results.Masks.xy 對…

Node.js: express 使用 Open SSL

OpenSSL是一個開源的核心加密工具包&#xff0c;提供行業標準的加密&#xff0c;證書管理和安全通信功能。包含完整的 SSL/TLS 協議實現&#xff0c;被廣泛應用于構建互聯網安全基礎設施。 在 express 中使用 openssl 通常是為了實現 HTTPS 通信&#xff0c;通過 SSL/TLS 加密來…

AI賦能的瀏覽器自動化:Playwright MCP安裝配置與實操案例

以下是對Playwright MCP的簡單介紹&#xff1a; Playwright MCP 是一個基于 Playwright 的 MCP 工具&#xff0c;提供瀏覽器自動化功能不要求視覺模型支持&#xff0c;普通的文本大語言模型就可以通過結構化數據與網頁交互支持多種瀏覽器操作&#xff0c;包括截圖、點擊、拖動…

【Matlab】連接SQL Server 全過程

文章目錄 一、下載與安裝1.1 SQL Server1.2 SSMS1.3 OLE DB 驅動程序 二、數據庫配置2.1 SSMS2.2 SQL Server里面設置2.3 設置防火墻2.4 設置ODBC數據源 三、matlab 鏈接測試 一、下載與安裝 微軟的&#xff0c;所以直接去微軟官方下載即可。 1.1 SQL Server 下載最免費的Ex…

Java編程中常見的條件鏈與繼承陷阱

格式錯誤的if-else條件鏈 典型結構與常見錯誤模式 在Java編程中,if-else條件鏈是一種常見的多條件處理模式,其標準結構如下: if (condition1) {// 處理邏輯1 } else if (condition2) {// 處理邏輯2 } else

scss(sass)中 的使用說明

在 SCSS&#xff08;Sass&#xff09;中&#xff0c;& 符號是一個父選擇器引用&#xff0c;它代表當前嵌套規則的外層選擇器。主要用途如下&#xff1a; 1. 連接偽類/偽元素 scss 復制 下載 .button {background: blue;&:hover { // 相當于 .button:hoverbackgrou…

C++ 信息學奧賽總復習題答案解析

第一章 答案解析 填空題 .cpp 知識點&#xff1a;C 源文件的命名規范 main () 知識點&#xff1a;C 程序的入口函數 // &#xff0c;/* */ 知識點&#xff1a;C 注釋的兩種形式 int a; 知識點&#xff1a;變量聲明的語法 cout 知識點&#xff1a;輸出語句的關鍵字 判斷題…

Jenkins持續集成CI,持續部署CD,Allure報告集成以及發送電子 郵件

文章目錄 一、Jenkins 的簡介二、Jenkins的安裝三、Jenkins 文件夾的作用四、Jenkins 的應用新建 job配置 jobjenkins 集成 Allure 報告。jenkins 集成 HTML 的報告 五、Jenkins 發送電子郵件1&#xff09;安裝插件&#xff1a;Email Extension2&#xff09;開啟 POP3/SMTP 服務…

算術圖片驗證碼(四則運算)+selenium

一、表達式解析 這里假設已經識別出來表達式&#xff0c;如何識別驗證碼圖片里的表達式&#xff0c;放在下面講。涉及到的正則表達式的解析放在本篇文章最后面。 import re # 表達式解析&#xff08;支持小數的 -*/ 和中文運算符&#xff09; def parse_math_expression(text)…

使用 Laravel 中的自定義存根簡化工作

在開發與外部服務、API 或復雜功能交互的應用程序時&#xff0c;測試幾乎總是很困難。簡化測試的一種方法是使用存根類。以下是我通常使用它們的方法。 福利簡介 存根是接口或類的偽實現&#xff0c;用于模擬真實服務的行為。它們允許您&#xff1a; 無需調用外部服務即可測試…

將 tensorflow keras 訓練數據集轉換為 Yolo 訓練數據集

以 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 為例 1. 圖像分類數據集文件結構 (例如用于 yolov11n-cls.pt 訓練) import os import csv import random from PIL import Image from sklearn.model_selection import train_test_split import s…