Spring AI開發指導-對話模型

對話模型接口描述

Spring AI基于Spring Cloud的架構體系,定義了一系列可擴展的API接口,支持對接不同類型的AI大模型的核心功能,這些API接口支持同步編程模式或者異步編程模式:

圖片

接口Model

Model是同步編程模式接口,其參數支持同步請求與響應:

圖片

接口Model的模型類型的繼承實現的抽象具體關系:

圖片

接口StreamingModel

StreamingModel是異步編程模式接口,其參數支持異步流式請求與響應:

圖片

接口StreamingModel的模型類型的繼承實現的抽象具體關系:

圖片

接口ChatModel

ChatModel是對話模型的擴展接口,不同AI模型的廠商獨立實現該接口,在Maven項目中,需要獨立引入對應AI模型廠商的依賴庫:

圖片

接口ChatModel繼承了同步編程接口Model以及異步編程接口StreamingChatModel,該接口既支持同步編程模式,也支持異步編程模式:

圖片

在Maven項目中,引入了AI模型廠商DeepSeek的依賴庫,接口ChatModel的模型類型的繼承實現的抽象具體關系:

圖片

Prompt提示詞接口描述

接口ModelRequest

對話模型的請求信息接口ModelRequest,所有對話模型的請求信息都實現該接口,包括提示詞:

圖片

請求信息接口ModelRequest的繼承實現的抽象具體關系:

圖片

接口ModelResponse

對話模型的響應信息接口ModelResponse,所有對話模型的響應信息都實現該接口:

圖片

響應信息接口ModelResponse的繼承實現的抽象具體關系:

圖片

提示詞類Prompt

提示詞類Prompt的繼承實現的抽象具體關系,其中,接口Message用于封裝消息內容:

圖片

Spring AI消息內容接口

Spring AI消息內容接口的繼承實現的抽象具體關系:

圖片

接口Content

消息內容頂層接口Content,所有內容消息類型都實現該接口:

圖片

消息內容頂層接口Content的繼承實現的抽象具體關系:

圖片

接口Message

消息內容接口Message,所有消息內容類型都實現該接口:

圖片

消息內容接口Message的繼承實現的抽象具體關系:

圖片

接口MediaContent

多媒體內容接口MediaContent:

圖片

多媒體內容接口MediaContent的繼承實現的抽象具體關系:

圖片

抽象類AbstractMessage

消息內容的抽象類AbstractMessage,所有消息內容類型都實現該類:

圖片

消息內容的抽象類AbstractMessage的繼承實現的抽象具體關系:

圖片

接口MessageType

消息內容的消息類型,其中,包括user類型,該類型的消息來自客戶端用戶,assistant類型,該類型的消息來自AI模型的響應,system類型,該類型的消息來自系統級別的指示,tool類型,該類型的消息來自工具調用中的功能需求:

圖片

消息內容為user類型的類:

圖片

消息內容為assistant類型的類:

圖片

消息內容為system類型的類:

圖片

消息內容為tool類型的類:

圖片

Spring AI應用與AI模型的業務流程

Spring AI應用獲取客戶端輸入的提示詞Prompt,Spring AI應用處理輸入的Prompt,向AI模型發起請求,AI模型處理業務,AI模型響應Spring AI應用的請求,Spring AI應用處理輸出,響應客戶端的請求:

圖片

工具調用流程

Spring AI支持的AI模型工具調用的業務流程:

圖片

1.Spring AI應用接受客戶端的請求,向AI模型發起對話的請求,請求信息包括工具調用的元數據信息,名稱、描述以及輸入數據

2.AI模型向Spring AI應用發起工具調用的請求,Spring AI應用向第三方的開放接口轉發AI模型的請求

3.Spring AI應用調用第三方的開放接口

4.第三方的開放接口響應Spring AI應用的請求

5.Spring AI應用響應AI模型的請求

6.AI模型響應Spring AI應用的請求,Spring AI應用響應客戶端的請求

數據標準化流程

Spring AI提供開發框架支持數據標準化的業務流程,讀取數據源輸入的文檔文本,對文檔文本執行標準化處理,輸出文檔文本到存儲中保存:

圖片

DeepSeek對話模型應用開發

搭建開發環境

Spring AI支持很多AI模型的集成開發,其中,包括DeepSeek大模型,注冊登錄DeepSeek官方網站,獲取開放平臺提供的API接口調用的API-keys,在Spring Boot Maven項目的屬性配置文件中設置spring.ai.deepseek.api-key,在Maven配置文件中引入deepseek-ai開發依賴庫以及webflux開發框架依賴庫:

圖片

開發AI應用服務

定義Spring AI?應用的web服務接口,初始化DeepSeek的AI模型對話客戶端:

圖片

定義Spring AI?應用的同步編程模式的web服務接口,Spring AI應用向AI模型發送對話請求,Spring AI應用向客戶端響應AI模型的對話請求:

圖片

定義Spring AI?應用的異步編程模式的web服務接口,Spring AI應用向AI模型發送對話請求,Spring AI應用向客戶端異步流式響應AI模型的對話請求:

圖片

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

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

相關文章

Win11 下卸載 Oracle11g

目錄 1、停止服務 2、啟動 Universal install 應用 3、執行 deinstall.bat 腳本 4、刪除注冊表相關數據 5、刪除環境變量中的oracle相關路徑 6、刪除安裝文件 7、刪除C盤中的相關Oracle文件 8、刪除 Oracle 數據存放目錄 9、檢查 10、重裝oracle可能還會碰到的問題 &…

深入剖析Spring Boot應用啟動全流程

目錄 前言 啟動流程概覽 一、第一階段:初始化SpringApplication 二、第二階段:運行SpringApplication 三、第三階段:環境準備 四、第四階段:創建應用上下文 五、第五階段:準備應用上下文 六、第六階段&#xf…

Matplotlib 可視化大師系列(三):plt.bar() 與 plt.barh() - 清晰對比的柱狀圖

目錄Matplotlib 可視化大師系列博客總覽Matplotlib 可視化大師系列(三):plt.bar() 與 plt.barh() - 清晰對比的柱狀圖一、 柱狀圖是什么?何時使用?二、 函數原型與核心參數plt.bar(x, height, ...) - 垂直柱狀圖plt.ba…

基于 FastAPI 和 OpenFeature 使用 Feature Flag 控制業務功能

模擬業務場景:多租戶系統跨域轉賬,需要控制某租戶下某用戶是否可以在某域轉賬 open_feature_util.py import typing from abc import abstractmethod, ABCMeta from typing import Sequencefrom openfeature.evaluation_context import EvaluationContex…

Stm32通過ESP8266 WiFi連接阿里云平臺

本文將介紹stm32如何通過WiFi來連接阿里云,上傳數據和接收指令。要先與阿里云建立TCP連接,然后再通過MQTT協議交互。 大體流程:1、在阿里云網頁上創建產品和設備;2、stm32通過WiFi連接云平臺;3、MQTT連接阿里云&#…

北京-測試-入職甲方金融-上班第三天

今日上班時間9-20.18,再加42分鐘就可以拿到75塊錢了,但我想回家,所以下班今天上午有人事舉辦的入職培訓,下午有業務培訓,培訓完領導給我安排了兩個需求。慌死,嚇死,我都不懂,業務和工…

Java基礎第2天總結

使用switch時注意事項:表達式類型只能是byte、short、int、char,JDK5開始支持枚舉,JDK7開始支持String,不支持double、float、long(精確度問題,小數有點不精確)。case給出的值不允許重復,且只能是字面量,不…

鴻蒙開發中的List組件詳解

目錄 引言 1.List組件基礎 2.List接口參數 1.space 2.initialIndex 3.scroller 3.ListView的屬性 1.listDirection 2.lanes 3.divider 4.scrollBar 4.布局與約束 5.ListItem生命周期 1.使用ForEach創建ListItem 2.使用LazyForEach創建ListItem 3…

2026界計算機專業畢業的有福了!(開題報告任務書)

開題報告 我們以基于Java的婚紗店管理系統為案例進行指導。 任務書: 首先是畢設的立題依據,這個主要描寫一些簡潔大體的大白話,描述一下你為什么要做這個題目的畢設。 那就需要你描述一下現階段社會面婚紗店的運營情況,寫一些…

安全、高效、可靠的物理隔離網絡安全專用設備———信刻光盤安全隔離與文件單向導入系統!

著各種數據傳輸、儲存技術、信息技術的快速發展,保護信息安全是重中之重。軍工企業、政府、部隊及企事業單位等利用A網與B網開展導入/導出相關工作已成為不可逆轉的趨勢。針對于業務需要與保密規范相關要求,涉及重要秘密信息,需做到完全的物理…

JetPack 與 PyTorch 版本對應及資源詳情

下載鏈接 JetPack 版本適配 PyTorch 版本發布日期可下載資源(.whl 安裝包 / 文檔)JP 6.1PyTorch 2.5.0a0(構建號:872d972e41.nv24.08.17622132)2024/10/01- torch-2.5.0a0872d972e41.nv24.08.17622132-cp310-cp310-li…

【c++進階系列】:萬字詳解多態

🔥 本文專欄:c 🌸作者主頁:努力努力再努力wz 💪 今日博客勵志語錄: 你以為自己在孤獨地爬坡嗎?看看身后吧——那些被汗水浸濕的腳印,早已連成一道向上的階梯 ★★★ 本文前置知識&am…

AI+預測3D新模型百十個定位預測+膽碼預測+去和尾2025年8月23日第168彈

從今天開始,咱們還是暫時基于舊的模型進行預測,好了,廢話不多說,按照老辦法,重點8-9碼定位,配合三膽下1或下2,殺1-2個和尾,再殺4-5個和值,可以做到100-300注左右。(1)定位…

分布式搜索(Elasticsearch)深入用法

目錄 數據聚合 聚合的種類 DSL實現聚合 桶聚合 度量聚合 RestAPI實現聚合 多條件聚合 自動補全 拼音分詞器 自定義分詞器 自動補全查詢 實現搜索框自動補全 數據同步 數據同步思路分析 實現elasticsearch與數據庫數據同步 集群 搭建ES集群 集群腦裂問題 集群…

java:接口與實現類

1. Java 基礎層面接口(Interface) 只是方法的定義/規范,里面沒有真正的邏輯。例如:public interface IBookService {boolean save(Book book); }👉 這里只說明了:我要有一個 save 方法,但“怎么…

Chrome 插件開發實戰:從入門到進階

1.1 Chrome 插件的魅力與應用場景Chrome 插件是增強 Chrome 瀏覽器功能的得力助手,能實現廣告攔截、密碼管理、標簽管理等實用功能。在日常辦公中,我們可以借助插件提升效率,如自動填充表單、快速保存網頁內容;在瀏覽網頁時&#…

通過官方文檔詳解Ultralytics YOLO 開源工程-熟練使用 YOLO11實現分割、分類、旋轉框檢測和姿勢估計(附測試代碼)

目錄 前言: 1.了解ultralytics工程與yolo模型 1.1 yolo11可以為我們做些什 1.2 yolo11模型的高性能 1.3 對于yolo11一些常見的問題 1.3.1 YOLO11 如何以更少的參數實現更高的精度? 1.3.2 YOLO11 可以部署在邊緣設備上嗎? 2. 深入了解y…

vue實現小程序oss分片上傳

隨著小程序越來越普及,小程序上傳文件必不可少,那么上傳的文件大小就不可控了,小則幾mb,大到好幾百mb,小文件還可以,但是一到超過200mb或稍微再大些的小程序就很容易上傳失敗,導致功能不能繼續進行。以下我們就來解決這個問題,將大文件實現分片上傳 溫馨提示,不要看內…

14.Shell腳本修煉手冊--玩轉循環結構(While 與 Until 的應用技巧與案例)

while 循環和 until 循環的應用實踐 文章目錄while 循環和 until 循環的應用實踐當型和直到型循環:兩種 "重復" 的邏輯while 循環:滿足條件就繼續until 循環:不滿足條件就繼續基礎示例:從簡單場景學用法示例 1&#xff…

chromadb使用hugging face模型時利用鏡像網站下載注意事項

chromadb默認使用sentence-transformers/all-MiniLM-L6-v2的詞嵌入(詞向量)模型,如果在程序首次運行時,collection的add或query操作時如果沒有指定embeddings或query_embeddings,程序會自動下載相關嵌入向量模型&#…