成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MCP融合Spring AI,Java程序員大模型技術再上一層樓

人工智能
本文介紹模型上下文協議(MCP),其與Spring AI集成,為解決上述難題提供有效途徑,助力大語言模型在企業應用開發中更好地落地。

在當下的技術發展浪潮中,大語言模型(LLMs)正深度滲透至企業應用開發領域,持續改寫著該領域的格局。開發者積極將其融入現代解決方案。然而,快速發展背后,大語言模型通信和上下文處理缺乏標準化協議的問題日益凸顯。

本文介紹模型上下文協議(MCP),其與Spring AI集成,為解決上述難題提供有效途徑,助力大語言模型在企業應用開發中更好地落地。

1.問題:缺乏規范的大語言模型集成

如今,大多數開發者通過特定供應商的API(如OpenAI、Anthropic或Azure OpenAI)與大語言模型進行交互。盡管這些API功能強大,但在沒有標準接口的情況下進行集成會導致以下問題:

  • 供應商鎖定:更換大語言模型供應商需要重寫核心邏輯。
  • 上下文處理不一致:不同供應商在管理長期記憶、知識或工具訪問方面存在差異。
  • 系統行為不明確:沒有正式規范來定義模型的需求,以及它們如何與外部工具和函數進行交互。

而模型上下文協議(MCP)正是為解決這些問題而生。

2.什么是MCP

模型上下文協議(MCP)是一種與供應商無關的協議,旨在實現大語言模型、智能體、工具、記憶系統和外部服務之間的互操作性。

模型上下文協議(MCP)是由Anthropic開發的開放標準,如今已成為一種開放協議,得到了包括LangChain、LangGraph,甚至Spring AI在內的多個社區和工具的支持。

可以把MCP想象成大語言模型領域的REST協議:它是一個簡潔且可擴展的規范,定義了如何構建輸入、輸出、工具、記憶和上下文。

3.人工智能的通用標準:一次編寫,隨處可用

在AI領域,模型上下文協議(MCP)致力于打造統一的通信規范。OpenAI、Anthropic等行業巨頭已采用MCP。

這一協議為開發者帶來極大便利。過去,針對不同大語言模型供應商和輔助應用,需構建定制集成。現在,借助MCP,開發者只需實現一次,就能在Claude、ChatGPT等眾多應用,以及未來支持該協議的客戶端中復用,有效提升開發效率,降低成本。

4.MCP如何工作:簡單的客戶端 - 服務器架構

MCP的基礎是簡潔且模塊化的客戶端 - 服務器架構。可以將其想象成一個中心輻射型模型,宿主應用程序(客戶端)通過與多個專門的MCP服務器進行通信來完成任務。

圖片圖片

具體如下:

  • MCP宿主:這些是前端工具或應用程序,如Claude桌面應用、代碼編輯器或人工智能智能體,它們希望與數據、工具或邏輯進行交互。
  • MCP客戶端:每個宿主應用程序通過該協議與一個或多個MCP服務器保持專用連接。這使得客戶端可以發送請求、接收響應,甚至觸發工具。
  • MCP服務器:這些是輕量級的后端程序,通過模型上下文協議公開特定功能,如訪問本地文件、觸發API或運行工作流。每個服務器都可以是專門構建且獨立的。
  • 本地數據源:用戶本地機器上的文件、數據庫或微服務,可由MCP服務器安全訪問。
  • 遠程服務:MCP服務器可以連接的API或云平臺,擴展了服務器的功能范圍,使其超越本地環境。

MCP支持開發者圍繞一種名為JsonRpcMessage的正式模式來構建大語言模型交互。

5.MCP與Spring AI集成

Spring AI通過提供即用型的Spring Boot啟動器,使將模型上下文協議(MCP)集成到應用程序變得輕松。這些啟動器涵蓋客戶端和服務器端設置,并支持多種通信傳輸方式,如標準輸入輸出(STDIO)和服務器發送事件(SSE)。

5.1 客戶端啟動器

這些啟動器幫助應用程序連接到MCP服務器:

  • spring-ai-starter-mcp-client:核心的MCP客戶端,內置對基于STDIO和HTTP的SSE通信的支持。
  • spring-ai-starter-mcp-client-webflux:使用WebFlux為SSE傳輸添加響應式支持。

5.2 服務器啟動器

這些用于使用Spring Boot構建自定義MCP服務器:

  • spring-ai-starter-mcp-server:使用STDIO傳輸的基本服務器設置,適用于基于進程的通信。
  • spring-ai-starter-mcp-server-webmvc:使用Spring MVC提供SSE服務器支持,適用于基于Servlet的環境。
  • spring-ai-starter-mcp-server-webflux:適用于使用Spring WebFlux的應用程序的SSE服務器的響應式版本。

支持STDIO、Servlet SSE、WebFlux和WebMVC傳輸。

圖片圖片

6.使用STDIO傳輸啟動Spring AI MCP服務器

以下是一個完整的示例,展示如何使用Spring AI設置MCP服務器。該示例功能完備,且使用Spring Boot進行了清晰的組織。此示例使用spring-ai-starter-mcp-server,并可選支持STDIO和/或基于HTTP的SSE傳輸。

官方文檔提供了詳細指南:https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html

6.1 Maven依賴

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
</dependency>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>${spring-ai.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
@SpringBootApplication
publicclass SpringMcpApplication {
    privatestaticfinal Logger log = LoggerFactory.getLogger(SpringMcpApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(SpringMcpApplication.class, args);
    }

    @Bean
    public List<ToolCallback> danTools(SpringMCPServerService courseService) {
        log.info(Arrays.toString(Thread.currentThread().getStackTrace()).replace(',', '\n'));

        return Arrays.asList(ToolCallbacks.from(courseService));
    }
}

@Service
publicclass SpringMCPServerService {
    @Tool(name = "get_system_information", description = "Gathers detailed system-level diagnostics including directory info, OS and architecture details, JVM configuration, memory stats, CPU load, and installed software versions.")
    public static SystemInfo getSystemInfo() {
        SystemInfo info = new SystemInfo();
        Properties props = System.getProperties();
        info.osName = props.getProperty("os.name");
        //......
    }
}
spring.application.name=courses
spring.main.web-application-type=none
spring.ai.mcp.server.name=jagnya-selflearn-mcp
spring.ai.mcp.server.versinotallow=0.0.1
spring.main.banner-mode=off
logging.pattern.cnotallow=

6.2 關鍵配置說明

  • STDIO模式要求

禁用Web應用類型(spring.main.web-application-type=none

禁用Spring啟動橫幅(spring.main.banner-mode=off

清空控制臺日志模式(logging.pattern.cnotallow=

7.MCP服務器與Claude(Anthropic)客戶端的集成

現在我們已經實現了MCP服務器,接下來要將它與Anthropic的Claude AI進行集成。這可以驗證服務器是否正常運行,以及是否能夠為像Claude這樣符合MCP規范的客戶端提供上下文數據。

圖片圖片

8.MCP服務器與Claude桌面應用集成:分步指南

以下是如何將基于Spring的MCP服務器與Claude桌面應用(Anthropic)進行集成,以驗證一切是否按預期工作:

1) 如果尚未下載,請從Anthropic網站下載并安裝Claude桌面應用。

2) 啟動Claude桌面應用程序。Claude設計為支持通過模型上下文協議(MCP)與自定義人工智能模型服務器進行通信。

  • 進入Claude的“設置”。
  • 導航到“開發者”部分。
  • 點擊“編輯配置”以打開claude_desktop_config.json
  • 使用自定義MCP服務器配置更新claude_desktop_config.json。例如:
{
    "mcpServers": {
        "jagnya-spring-mcp": {
            "command": "/Users/user/Library/Java/JavaVirtualMachines/sapmachine-21.0.6/Contents/Home/bin/java",
            "args": [
                "-jar",
                "/Users/<add ur path to jar>/spring-mcp/target/spring-mcp-0.0.1-SNAPSHOT.jar"
            ]
        }
    }
}

3) 保存配置后,重啟Claude桌面應用。

如果一切配置正確,你會看到:

  • 一個代表開發者工具的錘子圖標???
  • 一個代表自定義集成的插件圖標??
  • 點擊錘子圖標打開MCP工具。
  • 在Claude中輸入以下內容:Hi, get my system details with the Java version installed.
  • Claude會彈出一個權限請求對話框,點擊“允許”。

圖片圖片


責任編輯:武曉燕 來源: Java學研大本營
相關推薦

2015-03-30 09:48:33

程序員更上一層樓

2020-03-01 18:00:00

人工智能AI環保

2012-05-24 09:32:55

虛擬化vmareIBM

2024-06-20 13:22:13

C++11C++模板

2019-08-26 14:53:32

數據中心運維管理宕機

2013-06-06 06:52:28

Ubuntu 13.0

2019-08-26 10:10:57

數據中心運維宕機

2023-12-06 16:50:01

Godot 4.2開源

2011-03-31 09:51:45

Windows XP

2012-05-28 14:18:33

Web

2009-10-23 14:46:43

2011-03-31 09:57:54

Windows XP

2023-12-19 18:08:47

MySQL方法優化查詢

2023-11-01 13:34:37

Python

2021-09-21 15:17:09

API微服務后端

2017-11-29 15:57:00

敏捷開發DevOps

2023-08-31 08:25:25

2017-08-02 11:38:15

AndroidCoding技巧

2022-03-15 10:27:40

企業CIOIT人士

2010-05-25 10:12:17

微軟虛擬化技術Hyper-V
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线中文字幕视频 | 国产精品久久久久久久久久久免费看 | 日韩在线精品视频 | 美国十次成人欧美色导视频 | 黑人巨大精品欧美一区二区一视频 | 成人久久久 | 97日日碰人人模人人澡分享吧 | 国产精品视频一区二区三区四蜜臂 | 天天干干| 国产91久久久久 | 亚洲品质自拍视频 | 精品成人av| 久久久久久亚洲精品 | 国产免费让你躁在线视频 | 黄色网址免费在线观看 | 国产免费观看一区 | 日韩一级免费电影 | 九一视频在线播放 | 国产精品视频久久久久 | 狠狠操狠狠干 | 欧美日韩中文国产一区发布 | 久久精品亚洲欧美日韩精品中文字幕 | 一区二区三区四区在线 | 丝袜 亚洲 另类 欧美 综合 | 7777久久 | 久久精品91久久久久久再现 | 亚洲一区二区久久久 | 亚洲精品中文字幕在线观看 | 亚洲精品国产成人 | 色精品视频 | 日韩中文字幕在线不卡 | 久久亚洲国产精品日日av夜夜 | 中文一级片 | 亚洲人成人网 | 亚洲国产一区二区视频 | 男女视频在线免费观看 | 亚洲导航深夜福利涩涩屋 | 日日久| 欧美精品在欧美一区二区 | 99热电影| 欧美一级久久久猛烈a大片 日韩av免费在线观看 |