精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

最新版 Spring AI 實踐

人工智能
現階段的AI技術,恰似一臺功能強大卻需精心調校的計算機系統。它并非“即插即用”的萬能工具,而是需要開發者如同配置硬件般,根據特定業務場景的需求,按需增加“認知模塊”與“計算資源”。

深入探索 Spring AI 1.0.0-M6

在人工智能與軟件開發深度融合的時代,Spring AI 作為一個強大的框架,持續為開發者提供著高效且便捷的工具,以實現與大語言模型(LLM)的無縫交互。Spring AI 的最新版本引入了一系列令人矚目的特性,其中 Function Calling 到 Tool Calling 的轉換以及模型上下文協議(MCP)的應用,標志著該框架在 AI 集成領域的又一次重大飛躍。

聊天接口示例

在今天的內容之前我們回一下如何使用SpringAI實現一個簡單的聊天接口,使用千問API實現聊天功能:

  • 添加依賴
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter</artifactId>
</dependency>
  • 配置
spring:
  ai:
    ## Alibaba
    dashscope:
      api-key: ${DASH_SCOPE_API_KEY}
      chat:
        enable: true
        options:
          model: qwen-max
  • 實現
@Bean
public ChatClient chatClient(ChatClient.Builder chatClientBuilder) throws IOException {

    var chatClient = chatClientBuilder
            .defaultSystem("You are a helpful assistant.")
            .defaultAdvisors(new SimpleLoggerAdvisor()) // LOG
            .build();
    return chatClient;
}

/**
 * 調用
 * @param message
 * @return
 */
public String completion(String message) {
    return chatClient
            .prompt().user(message)
            .call().content();
}

當進行下面的提問時:

現在北京時間幾點了?

[引用]

Function Calling

圖片圖片

在早期的 AI 交互中,Function Calling 是一種常見的機制,允許模型在生成回復時調用外部函數以獲取額外信息。然而,這種方式在擴展性和靈活性上存在一定的局限性。而 Spring AI 最新版本引入的 Tool Calling 則是對 Function Calling 的進一步演進。Tool Calling 將函數調用抽象為工具調用,將工具視為可復用的資源,模型可以根據需求動態調用這些工具,以完成更復雜的任務。在新版本中已經被改為Tool Calling。

工具主要用于:

信息檢索

此類工具可用于從外部來源(例如數據庫、Web 服務、文件系統或 Web 搜索引擎)檢索信息。其目標是增強模型的知識,使其能夠回答原本無法回答的問題。因此,它們可用于檢索增強生成 (RAG) 場景。例如,可以使用工具檢索給定位置的當前天氣、檢索最新新聞文章或查詢數據庫中的特定記錄。

采取行動

此類別中的工具可用于在軟件系統中采取行動,例如發送電子郵件、在數據庫中創建新記錄、提交表單或觸發工作流。其目標是自動化原本需要人工干預或明確編程的任務。例如,可以使用工具為與聊天機器人交互的客戶預訂航班、在網頁上填寫表單,或在代碼生成場景中基于自動化測試 (TDD) 實現 Java 類。

盡管我們通常將工具調用稱為模型功能,但實際上工具調用邏輯是由客戶端應用程序提供的。模型只能請求工具調用并提供輸入參數,而應用程序負責根據輸入參數執行工具調用并返回結果。

Spring AI 提供了便捷的 API 來定義工具、解析來自模型的工具調用請求以及執行工具調用。

為了解決上面關于時間問題的解決方案,我們可以定義一個工具,并嵌入到模型中...

public class TimeTools {

    private static final Logger logger = LoggerFactory.getLogger(TimeTools.class);

    @Tool(description = "Get the time of a specified city.")
    public String getCityTimeMethod(@ToolParam(description = "Time zone id, such as Asia/Shanghai") String timeZoneId) {
        logger.info("The current time zone is {}", timeZoneId);
        return String.format("The current time zone is %s and the current time is " + "%s", timeZoneId, ZoneUtils.getTimeByZoneId(timeZoneId));
    }
}
public ChatClient chatClient(ChatClient.Builder chatClientBuilder) throws IOException {
    // ...
    chatClientBuilder.defaultTools(timeTool);
    // ...
}

Function Calling實現了大語言模型(LLM)與外部函數或工具進行交互的能力。這一機制賦予了 AI 系統更強大的功能和靈活性,使其能夠處理更加復雜和動態的任務。

注意不是所有模型都支持FunctionCalling。

MCP

圖片圖片

MCP(Model Context Protocol,模型上下文協議) 是的一種開放協議,旨在統一大語言模型(LLM)與外部數據源、工具和服務之間的交互標準,推動 AI 應用的標準化和去中心化發展。 MCP 提供了一種統一的接口,使得不同的工具和服務可以以標準化的方式與模型進行交互。

核心功能

  1. 標準化交互 MCP 提供了一套通用的通信協議、數據格式和規則,使 LLM 能夠以統一的方式與外部資源(如數據庫、API、文件系統等)進行交互,無需為每個工具單獨開發適配接口。
  2. 增強模型能力 通過 MCP,LLM 可以動態調用外部工具或數據源,例如實時獲取天氣信息、查詢數據庫、調用第三方服務等,從而擴展模型的功能邊界。
  3. 安全與合規 MCP 內置了安全機制,確保數據傳輸的安全性,并支持細粒度的權限控制,避免數據泄露和濫用。
  4. 降低開發成本 開發者無需重復造輪子,可直接基于 MCP 協議構建 AI 應用,顯著減少開發時間和成本。

在1.0.0-M6版本中引入了MCP,使得可以基于Spring AI實現各種擴展

此時聊天應用作MCP服務的調用者,也就是客戶端,需要調用外部的MCP服務,首先對聊天服務改造:

  • 添加必要的依賴:
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
</dependency>
  • 通過配置ChatClient完成集成:
@Bean
    public ChatClient chatClient(ToolCallbackProvider toolsProvider) throws IOException {
        var chatClient = chatClientBuilder
                // ...
                .defaultTools( toolsProvider.getToolCallbacks() ) //mcp
                // ...
                .build();
        return chatClient;
    }

SpringAI中,MCP 客戶端支持兩種傳輸方式:STDIO 和 SSE。 標準啟動器通過STDIO(進程內)和/或SSE(遠程)傳輸同時連接到一個或多個 MCP 服務器。SSE 連接使用基于 HttpClient 的傳輸實現。每個與 MCP 服務器的連接都會創建一個新的 MCP 客戶端實例。

STDIO

其實就是通過本地命令進行調用的實現,需要注意的是,返回的數據結果必須遵循MCP規范,我們可以基于Spring開發一個可執行的jar程序包,然后由客戶端調用。

  • 添加依賴
<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
</dependency>
  • 實現Tool并注冊
@Service
public class TranslationService {
    
    @Tool(description = "將內容翻譯成英文")
    public String translate(String content) {
        return "hello";
    }
}

@Bean
public ToolCallbackProvider translationTools(TranslationService translationService) {
   return MethodToolCallbackProvider.builder().toolObjects(translationService).build();
}
  • 添加配置,注意這里要關掉所有日志相關的輸出
spring:
   main:
      web-application-type:none
      banner-mode:off
   ai:
      mcp:
         server:
            name:translation-server
            version:0.0.1
logging:
   level:
      root:off
  • 打包,記得使用spring-boot-maven-plugin插件打包,下面的mcpServers引用的就是這里的jar
  • 修改聊天應用配置,并且重啟
spring:
  ai:
    mcp:
      client:
        type: SYNC
        stdio:
          servers-configuration: classpath:mcp-stdio-servers.json

mcp-stdio-servers.json

{
   "mcpServers": {
      "weather": {
         "command": "java",
         "args": [
            "-Dspring.ai.mcp.server.stdio=true",
            "-Dspring.main.web-application-type=none",
            "-Dlogging.pattern.cnotallow=",
            "-jar",
            "your_jar_path/mcp-stdio-server-1.0.1-SNAPSHOT.jar"
         ],
         "env": {}
      }
   }
}

提問: 翻譯單詞運勢

[引用]

因為我沒有實現,全部返回的是hello,看樣子模型對我們的結果進一步做了處理。

SSE

這里提供一個簡單的示例,主要實現星座運勢獲取的Mcp,這是一個單獨的基于Spring開發的應用,與上面的聊天應用隔離:

  • 引入相關依賴
<dependency>
   <groupId>org.springframework.ai</groupId>
   <artifactId>spring-ai-mcp-server-webmvc-spring-boot-starter</artifactId>
</dependency>
  • 定義Tool實現
@Service
publicclass HoroscopeService {

    private String url = "https://apis.tianapi.com/star/index?key=%s&astro=%s";
    private String key = "xx";

    private RestTemplate restTemplate = new RestTemplate();
    private ObjectMapper objectMapper = new ObjectMapper();

    @Tool(description = "Get constellation fortune by consName")
    public String getFortune(String consName) {
        Map map = restTemplate.getForObject(String.format(url, key, consName), Map.class);
        try {
            return objectMapper.writeValueAsString(map.get("result"));
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return"獲取失敗:"+ e.getMessage();
        }
    }
}
  • 配置文件
spring:
   ai:
      mcp:
         server:
            name:webmvc-mcp-server
            version:1.0.0
            type:SYNC
            sse-message-endpoint:/mcp/messages

server:
   port:8081
   servlet:
      encoding:
         charset:utf-8
         enabled:true
         force:true
  • 啟動應用,訪問:http://localhost:8081
  • 修改聊天應用配置,并且重啟
spring:
  ai:
    mcp:
      client:
        type: SYNC
        sse:
           connections:
              constellation:
                 url: http://localhost:8081

提問: 白羊座的運勢

[引用]

結束語

現階段的AI技術,恰似一臺功能強大卻需精心調校的計算機系統。它并非“即插即用”的萬能工具,而是需要開發者如同配置硬件般,根據特定業務場景的需求,按需增加“認知模塊”與“計算資源”。這種靈活擴展的能力,與模塊化計算平臺(MCP,Modular Computing Platform)的設計理念不謀而合——通過標準化接口與可組合架構,讓AI系統既能像積木般自由拼接算法能力,又能像云計算般彈性調度算力資源。開發者需像搭建樂高城堡般,將自然語言處理、視覺識別、決策推理等模塊按需組合,再通過數據管道與反饋機制持續優化,最終讓AI在醫療診斷、智能制造、智慧城市等垂直領域中,展現出接近專家水平的場景化智能。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2020-04-03 13:24:38

Spring Boot面試題Java

2023-08-09 09:08:02

Node.js開源

2010-06-08 10:15:45

opensuse 11

2010-05-28 09:22:06

dm ServerSpringEclipse

2013-08-26 17:17:37

Ubuntu 12.0

2009-04-03 08:43:57

2009-09-10 09:06:06

思科CCNP認證教材思科CCNP認證

2009-04-06 08:22:57

2009-12-31 11:09:36

Ubuntu wine

2022-06-08 14:32:52

NVIDIA

2017-11-07 16:48:58

數字體驗管理DEMRiverbed

2011-03-23 10:23:56

IE9嘗鮮體驗瀏覽器

2023-11-19 19:01:53

UbuntuCalibre

2011-05-04 13:16:49

甲骨文數據庫

2013-02-28 11:28:30

2009-12-16 08:49:12

2010-01-28 09:22:24

瀏覽器速度測試

2011-09-02 11:14:43

思杰

2013-10-10 10:03:22

VMware

2009-12-16 10:04:51

Chrome瀏覽器漏洞
點贊
收藏

51CTO技術棧公眾號

成人黄色国产精品网站大全在线免费观看| 欧美三级三级| 亚洲成av人片观看| 欧美男人的天堂| 国产精品国产三级国产aⅴ| 欧美精品一卡| 国产亚洲激情视频在线| 亚洲女人在线观看| 亚洲伊人av| 中文字幕在线一区免费| 精品国产_亚洲人成在线| 在线观看亚洲一区二区| 亚洲网站啪啪| 伊人青青综合网站| 欧美亚洲另类在线一区二区三区| 国产黄色免费视频| 欧美~级网站不卡| 亚洲天堂av高清| 极品白嫩少妇无套内谢| 成人在线观看免费播放| 亚洲福利一二三区| 超碰成人在线免费观看| 毛片在线播放网址| 国产成人在线影院| 国产精品永久免费在线| 国产精品成人国产乱| 99久精品视频在线观看视频| 精品偷拍各种wc美女嘘嘘| 日本黄色三级网站| 久久91视频| 色婷婷精品久久二区二区蜜臀av | 手机精品视频在线| 高清电影一区| 欧美体内谢she精2性欧美| 国产乱人伦精品一区二区三区| 9191在线| 国产欧美一区二区在线观看| 久久99精品久久久久久青青日本 | 国产无遮挡又黄又爽又色视频| 99riav1国产精品视频| 精品中文字幕在线观看| 99热在线观看精品| 日本黄色精品| 中文字幕在线精品| 欧美性猛交xxxx乱| 女人av一区| 亚洲男人的天堂在线播放| 少妇一级淫片免费放播放| 哺乳一区二区三区中文视频| 日韩欧美精品在线视频| 中文字幕乱妇无码av在线| 精品久久国产一区| 日韩午夜精品视频| 中文字幕欧美视频| jizz性欧美23| 亚洲成人激情图| 国产精品久久无码| 精品国产午夜肉伦伦影院| 亚洲国产成人在线播放| 久久国产精品无码一级毛片| 亚洲精品456| 亚洲日本成人女熟在线观看 | 丰满人妻一区二区| 懂色av中文字幕一区二区三区| 99r国产精品视频| 黄色三级网站在线观看| a在线欧美一区| 欧美lavv| av午夜在线| 亚洲色图视频网| 日韩欧美精品免费| 一区二区电影免费观看| 91电影在线观看| 欧美一级视频在线| 91精品入口| 亚洲深夜福利视频| 亚洲精品一区二区三区在线播放| 欧美激情aⅴ一区二区三区| 欧美极品第一页| 久久久久99精品成人片我成大片| 首页国产欧美久久| 国产自摸综合网| 高清国产mv在线观看| 99国产欧美久久久精品| 午夜欧美一区二区三区免费观看| 男人天堂手机在线| 亚洲v中文字幕| 欧美伦理视频在线观看| 久久国产精品免费一区二区三区| 亚洲成人精品久久| 99久久精品久久亚洲精品| 综合久久综合| 国产99久久精品一区二区| 国产又黄又粗又硬| av福利精品导航| 一本一道久久a久久综合精品| 色呦呦视频在线观看| 色婷婷精品久久二区二区蜜臀av | 欧美成人免费在线观看视频| 成人在线免费av| 亚洲精品一区二区三区福利| 手机看片日韩av| 亚洲精品孕妇| 亚洲一区二区久久久久久久| 天堂在线中文字幕| 日韩一区在线免费观看| 可以免费观看av毛片| 一区二区三区四区精品视频| 中文字幕欧美日韩va免费视频| 久久久精品视频在线| 日韩**一区毛片| 韩国精品一区二区三区六区色诱| 老司机在线永久免费观看| 欧美色xxxx| 中文字幕一二三| 欧美韩国日本在线观看| 日本精品视频在线观看| 亚洲精品无遮挡| 中文字幕一区二区三区在线不卡| aⅴ在线免费观看| av综合网页| 九色精品免费永久在线| 91精品人妻一区二区三区果冻| 97久久精品人人做人人爽50路| 91麻豆天美传媒在线| 成人在线观看免费播放| 亚洲欧洲美洲在线综合| 久久艹免费视频| 成人免费看的视频| 日本a在线天堂| a一区二区三区亚洲| 中文字幕日韩欧美| 欧美brazzers| 久久精品人人做人人爽人人| 精品少妇一区二区三区在线| 国产精品xxx在线观看| 成人97在线观看视频| 一级黄色大毛片| 亚洲国产精品v| 88av.com| 日本一二区不卡| 国产成人精品一区二区| 国产在线网站| 色8久久精品久久久久久蜜| 亚洲欧美色图视频| 久久久国产亚洲精品| 免费在线国产精品| 三上悠亚亚洲一区| 亚洲日本欧美日韩高观看| 中文字幕一区二区三区四区欧美| 久久久久久久久久电影| av天堂永久资源网| 精品久久综合| 国产美女搞久久| 成码无人av片在线观看网站| 欧美一区2区视频在线观看| 免费毛片在线播放免费| jlzzjlzz国产精品久久| 欧美精品一区免费| 国产午夜一区| 国产精品永久免费在线| 黄色免费在线看| 欧美白人最猛性xxxxx69交| 妺妺窝人体色www聚色窝仙踪 | 国产一级特黄a大片99| 天堂网在线最新版www中文网| 国产视频亚洲精品| 在线免费一区二区| 国产精品乱码人人做人人爱| 91亚洲一区二区| 1024日韩| 先锋影音亚洲资源| 人人爱人人干婷婷丁香亚洲| 午夜欧美大片免费观看| 青青草超碰在线| 欧美日韩中文另类| 久久久久久久蜜桃| 久久久欧美精品sm网站| 91丨九色丨蝌蚪| 亚洲理伦在线| 日本视频精品一区| 日韩三级av高清片| 欧洲亚洲在线视频| 久操视频在线观看| 日韩av在线播放资源| a片在线免费观看| 亚洲一区二区成人在线观看| 国产又爽又黄无码无遮挡在线观看| 免费成人美女在线观看| 欧美激情亚洲天堂| 精品国产一区二区三区四区| 成人美女av在线直播| 性欧美xxx69hd高清| 久久久999精品免费| 婷婷色在线观看| 欧美一区午夜视频在线观看| av图片在线观看| 亚洲色图制服诱惑| 亚洲黄色小说视频| 国产不卡视频在线播放| 在线免费观看视频黄| 精品电影一区| 中文字幕中文字幕99| 日韩精品免费一区二区三区竹菊| 成人国产精品一区| 亚洲天堂一区二区| 久久久久久一区二区三区| 在线激情网站| 亚洲欧美在线一区| 亚洲精品国产一区二| 欧美日韩一区二区三区免费看| 国产成人一区二区三区影院在线| 亚洲欧洲制服丝袜| 无码少妇一区二区| 91蜜桃在线免费视频| 男人添女人荫蒂国产| 久久国产尿小便嘘嘘| 久章草在线视频| 1024日韩| 激情成人开心网| 91久久国产| 亚洲人成人77777线观看| 亚洲高清极品| 久久99精品久久久久久久青青日本 | 黄色正能量网站| 成人免费观看视频| 一级黄色大片免费看| 国产一区二区不卡| 国产美女视频免费看| 日本va欧美va精品发布| 国产福利一区视频| 欧美中文字幕| 免费在线观看日韩视频| 国产亚洲午夜| 无码人妻精品一区二区三区在线| 精品1区2区3区4区| 国产va亚洲va在线va| 欧美日韩久久| 日本精品久久久久久久久久| 国产精品va| 91午夜在线观看| 在线日韩视频| 青青草原成人网| 欧美一级二区| 天天摸天天碰天天添| 日韩成人午夜电影| 国产又黄又猛又粗又爽的视频| 日韩av一区二| 狠狠操狠狠干视频| 国产综合一区二区| 在线视频观看一区二区| 国产麻豆91精品| 中文字幕无人区二| 99久久99久久免费精品蜜臀| 国产精品无码永久免费不卡| 久久精品人人做人人爽人人| 精品熟妇无码av免费久久| 亚洲三级在线播放| 妺妺窝人体色www婷婷| 天天综合色天天综合色h| 中文字幕视频网| 欧美综合欧美视频| 91丨九色丨丰满| 精品剧情在线观看| 日本不卡视频一区二区| 中文字幕亚洲二区| 羞羞视频在线观看不卡| 性色av一区二区三区红粉影视| 手机在线观看av网站| 国产精品美女午夜av| 国产剧情一区二区在线观看| 国产精品久久久久久久久婷婷| 女人抽搐喷水高潮国产精品| 日本不卡高清视频一区| 98精品久久久久久久| 男女激情免费视频| 天堂av在线一区| 国产精欧美一区二区三区白种人| 懂色av一区二区三区蜜臀| 免费黄色在线视频| 日韩一区在线播放| 免费黄色网址在线| 欧美日韩一区二区在线观看| 国产综合无码一区二区色蜜蜜| 亚洲女人被黑人巨大进入al| 久草资源在线| 日韩av片电影专区| 久久天堂久久| 欧美中日韩免费视频| 欧美激情无毛| 九色91popny| av影院午夜一区| 欧美特黄一级片| 色婷婷av久久久久久久| 亚洲精品无码久久久| 日韩在线视频网站| 三妻四妾完整版在线观看电视剧| 91久久久久久久一区二区| 婷婷亚洲精品| 黄网站色视频免费观看| 日韩高清一区在线| 三级视频网站在线观看| 亚洲色图第一区| 欧美日韩 一区二区三区| 亚洲成人精品av| 国产区在线观看| 国产成人精品免费久久久久| 国产精品三p一区二区| 免费看av软件| 日韩电影免费在线观看网站| 熟妇高潮一区二区| 亚洲人成人一区二区在线观看| 欧美日韩一级黄色片| 亚洲精品久久久久国产| 免费在线观看av电影| 91青草视频久久| 日韩在线综合| 国产一区视频免费观看| 99精品热视频| 午夜偷拍福利视频| 91精品国产一区二区人妖| 91欧美在线视频| 日本亚洲欧美三级| 亚洲精品小区久久久久久| 日韩精品一区二区在线视频| 国产剧情av麻豆香蕉精品| 国产小视频你懂的| 欧美老人xxxx18| 在线免费看黄网站| 国产精品视频免费观看www| 欧美日韩黑人| 992kp快乐看片永久免费网址| 久久亚洲精华国产精华液 | 男人的天堂亚洲一区| 色欲AV无码精品一区二区久久| 色视频成人在线观看免| 全部免费毛片在线播放网站| 欧洲亚洲免费视频| 国产日韩欧美一区二区三区| 日韩手机在线观看视频| 久久精品夜夜夜夜久久| 无码人妻av免费一区二区三区 | 青草在线视频| 成人av免费看| 极品日韩av| 中文字幕 日本| 欧美日韩一区二区免费在线观看| 神马久久久久| 青青草一区二区| 欧美久久精品一级c片| 美女网站视频黄色| 国产精品麻豆欧美日韩ww| 一区二区三区亚洲视频| 久久精品国产精品亚洲| 久久伦理中文字幕| 国产精品12345| 久久午夜羞羞影院免费观看| 波多野结衣午夜| 日韩一区在线视频| 日韩一区二区三区色| 欧洲精品一区二区三区久久| 91在线免费视频观看| 中文字幕 人妻熟女| 另类少妇人与禽zozz0性伦| 国产精品115| 日韩欧美在线播放视频| 国产精品美女www爽爽爽| av加勒比在线| 91精品国产成人www| 日韩av片子| 精品人妻无码中文字幕18禁| 欧美性猛交xxxxx水多| 在线激情免费视频| caoporen国产精品| 久久午夜精品| 国产精品嫩草影院俄罗斯| 亚洲成人xxx| 国产极品一区| 激情五月婷婷六月| 久久久久久久久久久电影| 国产成人精品无码高潮| 欧美制服第一页| 亚洲高清资源在线观看| 国产美女视频免费观看下载软件| 91成人免费在线视频| av网站网址在线观看| 久久亚洲一区二区| 国产麻豆精品久久一二三| 天天操天天操天天操天天| 久久久精品视频成人| 亚洲电影一级片| 18深夜在线观看免费视频| 色女孩综合影院| 欧洲一区二区三区| 视频一区免费观看| 99久久伊人久久99| 国产三级伦理片| 国产成人在线播放| 亚洲国产导航| 69xx绿帽三人行|