SpringAI+MCPServer+MCPClient快速入門

SpringAI + MCPServer + MCPClient 快速入門編寫大綱

源代碼地址:https://download.csdn.net/download/user_admin_god/90926893

1. 介紹

本文通過使用免費的智普AI的glm-4-flash模型,設計并實現了一個智能問答系統。在該系統中,我們編寫了一個工具接口,專門處理那些大模型無法解答的復雜問題,并將其集成到MCPServer中。MCPClient的Web端接口能夠智能地判斷何時使用智普AI的glm-4-flash模型,何時調用MCPServer的工具接口,從而確保在大模型無法處理的情況下,系統通過MCP實現高效的協調與問題解決。這一方案不僅提升了AI問答的能力,還能更靈活地應對多樣化的用戶需求。

1.1 目標

本文的主要目標是幫助開發者了解如何結合 SpringAIMCPServerMCPClient 來創建一個高效的分布式應用程序。通過這個快速入門指南,開發者將能夠:

  • 迅速掌握這些組件的基本用法及如何將它們集成到實際項目中;
  • 理解各個模塊之間的架構設計和通信流程;
  • 學習如何通過SpringAI 提供的人工智能服務來增強應用功能;
  • 輕松實現一個客戶端-服務器模型,并使用 SpringAI 實現智能化服務。
1.2 技術棧概述
(一)SpringAI

SpringAI 是一個基于 Spring 框架的人工智能服務構建工具,旨在幫助開發者通過簡單的配置和接口集成AI功能。無論是自然語言處理、圖像識別還是其他類型的智能服務,SpringAI 都提供了一套簡潔的API接口,支持與流行的AI平臺(如OpenAI)無縫對接。開發者可以通過它輕松實現復雜的AI任務。

SpringAI特點:

AI 模型集成與管理
Spring AI 提供對多種 AI 模型的支持,包括聊天模型、文本生成、圖像生成、語音識別與合成等,支持同步和流式 API 選項。
統一的 API 接口
框架提供跨 AI 提供商的可移植 API,支持 OpenAI、Anthropic、Google、Microsoft、ZhiPu等主流平臺,簡化了不同模型間的切換和集成。
向量數據庫支持
Spring AI 支持多種向量數據庫,如 Chroma、Milvus、PostgreSQL/PGVector、Redis、Weaviate 等,提供類似 SQL 的元數據過濾 API,方便進行高效的相似性搜索和數據存儲。
函數調用與工具集成
框架支持模型調用外部函數和工具,允許模型在推理過程中訪問實時數據或執行特定操作,增強了模型的實用性和靈活性。
結構化輸出與 POJO 映射
Spring AI 支持將 AI 模型的輸出映射到 Java POJO(Plain Old Java Object),實現結構化數據處理,方便與其他系統的集成。
提示詞模板與檢索增強生成(RAG)
框架提供提示詞模板功能,支持檢索增強生成(RAG)策略,將外部知識庫與 AI 模型結合,提高生成內容的準確性和相關性。
自動配置與 Spring Boot 集成
Spring AI 與 Spring Boot 無縫集成,支持自動配置和啟動器,使得 AI 功能的集成過程更加簡便和高效。

(二)MCPServer

MCPServer 是一個提供具體功能的服務端程序,類似于一個工具箱,里面包含了各種工具,例如文件讀寫、數據庫查詢、API 調用等。這些工具能夠使大型語言模型(LLMs)以標準化的方式訪問外部服務或數據源。

主要職責:

  1. 提供工具:Server 定義并實現具體的工具(Tool),這些工具構成了 MCP 的核心功能。例如,它可以是天氣查詢接口、數學運算功能、數據分析工具等。
  2. 處理請求:當 MCP Client 發送請求時,Server 負責解析請求內容,并根據需求執行相應的操作。
  3. 返回結果:完成操作后,Server 將處理結果返回給 Client。這可能包括從數據庫獲取信息、調用第三方 API,或進行其他數據處理任務。
(三)MCPClient

MCPClient 如同大型語言模型(LLM)的遙控器,負責向 Server 發送指令并接收結果。它的角色是將自然語言指令翻譯成 Server 能理解的請求格式。

主要職責:

  1. 構建請求:Client 根據用戶輸入或 LLM 的需求,構建符合 MCP 協議的請求。它需要理解用戶的意圖,并將其轉化為 Server 可執行的具體命令。
  2. 與 Server 通信:一旦構建好請求,Client 會通過網絡與 Server 建立連接并發送請求。通常,這一過程遵循 JSON-RPC 2.0 規范,以確保通信的標準化和一致性。
  3. 接收響應:在接收到 Server 的響應后,Client 負責解讀這些信息,并將有用的結果反饋給用戶或 LLM。
2. 環境準備
  • 3.1 軟件要求

    • JDK 21+:建議使用 JDK 21 或更高版本,可以通過華為云鏡像下載鏈接獲取。
    • Spring Boot 3:推薦使用 Spring Boot 3.4.5 版本。Spring Boot 是一個非常流行的框架,能夠簡化 Java 后端應用的構建過程,自動配置和快速開發。
    • Maven 3.9.2:Maven 是一種強大的構建和項目管理工具,用于依賴管理、構建配置及項目生命周期管理。建議使用 Maven 3.9.2 版本。
    • IntelliJ IDEA 2024.3:這款IDE是目前最受開發者青睞的Java開發工具之一,具備強大的代碼編輯與調試功能,能夠極大地提高開發效率。
    • MySQL 8.0+:MySQL 是一個開源的關系型數據庫管理系統,8.0 版本具有更高的性能和更強的特性支持。
    • Mybatis-Plus 3.5.12:這是 Mybatis 的增強工具,能夠簡化數據庫操作,并提高代碼的可維護性。3.5.12 版本是本項目所推薦的版本。
  • 3.2 安裝步驟

    1. 安裝 Java 開發環境
    • 首先,下載并安裝 JDK 21+,確保系統的環境變量已經配置好,例如 JAVA_HOMEPATH,這樣 Java 可以在命令行中直接調用。

    • 安裝完成后,通過執行以下命令驗證是否成功安裝:

    java -version
    

    輸出應該顯示 JDK 的版本信息。

    1. 配置 Spring Boot 項目
    • 使用IntelliJ IDEA打開或創建一個新的 Spring Boot 項目。可以通過以下步驟快速創建 Spring Boot 項目:

      • 打開 IntelliJ IDEA,選擇 File -> New Project
    • 在項目類型中選擇 Spring Initializr,并根據項目需求配置相關的參數。

    • 完成項目初始化后,選擇正確的 Spring Boot 版本(3.4.5 推薦版本)。

    1. 添加必要的依賴項

    pom.xml 文件中添加項目所需的依賴項,主要包括:

    • spring-boot-starter-web:提供構建 Web 應用的基礎功能,支持 RESTful 風格的 Web 服務。
    • spring-retry:用于支持自動重試機制,可以幫助應用在失敗時進行重試,確保應用的高可用性。
    • spring-cloud:提供 Spring Cloud 的相關組件,適合微服務架構的開發。
3. 項目創建結構
兩個模塊  mcp-client  和 mcp-server
├─mcp-client
│  ├─src
│  │  └─main
│  │      ├─java
│  │      │  └─com
│  │      │      └─gt
│  │      │          └─demo
│  │      │              └─mcpclient
│  │      │                  ├─ai
│  │      │                  ├─controller
│  │      │                  ├─domain
│  │      │                  ├─mapper
│  │      │                  ├─service
│  │      │                  │  └─impl
│  │      │                  └─utils
│  │      └─resources
└─mcp-server├─src│  └─main│      ├─java│      │  └─com│      │      └─gt│      │          └─demo│      │              └─mcpserver│      │                  ├─ai│      │                  ├─controller│      │                  ├─domain│      │                  ├─mapper│      │                  ├─proxy│      │                  ├─service│      │                  │  └─impl│      │                  └─utils│      └─resources
4. 工程核心代碼
  • 4.1 MCPServer Pom依賴
        <properties><java.version>21</java.version><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool-all.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webmvc</artifactId><version>${spring-ai.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version></dependency></dependencies>```- 4.2 **MCPServer Properties配置**```properties# 服務名稱spring.application.name=mcp-server# 服務運行使用端口server.port=8081# MySQL數據庫配置spring.datasource.url=jdbc:mysql://localhost:3306/test_admin_123?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=truespring.datasource.driverClassName=com.mysql.cj.jdbc.Driverspring.datasource.username=guotongspring.datasource.password=123456spring.datasource.hikari.maximum-pool-size=5# MyBatis# mapper.xml 位置mybatis-plus.mapper-locations=classpath:mapper/*.xml# 實體類位置mybatis-plus.type-aliases-package=com.example.entity# mybatis-plus的sql日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl# 下劃線轉駝峰自動mybatis-plus.configuration.map-underscore-to-camel-case=true# 邏輯刪除mybatis-plus.global-config.db-config.logic-not-delete-value=0mybatis-plus.global-config.db-config.logic-delete-field=isDelmybatis-plus.global-config.db-config.logic-delete-value=2-# thymeleaf 模板引擎-# 禁用緩存-開發的時候spring.thymeleaf.cache=false# sspring.thymeleaf.encoding=utf-8sys.conf.file.path=D:/confwindow.dev.file.path=D:/csp# mcp服務配置spring.ai.mcp.server.name=mcp-serverspring.ai.mcp.server.version=1.0.0spring.ai.mcp.server.description=AI服務spring.ai.mcp.server.type=asyncspring.ai.mcp.server.sse-message-endpoint=/mcp/messages```- 4.3 **MCPServer 模型工具接口**
```java@Component@Slf4jpublic class McpToolService {@Resourceprivate SysUserMapper sysUserMapper;@Tool(description = "根據傳入用戶名稱獲取AiGodLike系統用戶信息接口")public String getAiGodLikeUserInfoByName(@ToolParam(description = "隔壁老郭系統的用戶名稱(mack,jay,hans)") String userName) {log.info("隔壁老郭系統用戶名稱:{}", userName);List<SysUser> sysUserList = sysUserMapper.selectList(Wrappers.lambdaQuery(SysUser.class).like(SysUser::getUserName, userName));log.info("隔壁老郭系統用戶信息:{}", sysUserList);return "隔壁老郭系統用戶-王八蛋" + sysUserList;}}
  • 4.4MCPServer 注冊工具接口
    /*** @author makejava*/@SpringBootApplication@MapperScan("com.gt.demo.mcpserver.mapper")public class McpServerApplication {public static void main(String[] args) {SpringApplication.run(McpServerApplication.class, args);}@Beanpublic ToolCallbackProvider aiGodLikeUserInfoByNameTools(McpToolService mcpToolService) {return MethodToolCallbackProvider.builder().toolObjects(mcpToolService).build();}}```- 4.5 **MCPClient Pom配置**```xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!--糊涂萬能工具箱--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool-all.version}</version></dependency><!--流式響應式--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-client-webflux</artifactId><version>${spring-ai.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--MCP客戶端--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-client</artifactId><version>${spring-ai.version}</version></dependency><!--智普AI--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-zhipuai</artifactId><version>${spring-ai.version}</version></dependency><!--Mysql數據庫--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><!--lombok--><!----><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry --><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><version>2.0.12</version></dependency><!--mybatis-plus--><!----><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version></dependency></dependencies>
  • 4.5 MCPClient application.properties
# 服務名稱
spring.application.name=mcp-client# 服務運行使用端口
server.port=8082# MySQL數據庫配置
spring.datasource.url=jdbc:mysql://localhost:3306/test_admin_123?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=guotong
spring.datasource.password=123456
spring.datasource.hikari.maximum-pool-size=5# MyBatis# mapper.xml 位置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
# 實體類位置
mybatis-plus.type-aliases-package=com.example.entity
# mybatis-plus的sql日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl
# 下劃線轉駝峰自動
mybatis-plus.configuration.map-underscore-to-camel-case=true
# 邏輯刪除
mybatis-plus.global-config.db-config.logic-not-delete-value=0
mybatis-plus.global-config.db-config.logic-delete-field=isDel
mybatis-plus.global-config.db-config.logic-delete-value=2# thymeleaf 模板引擎
# 禁用緩存-開發的時候
spring.thymeleaf.cache=false
# s
spring.thymeleaf.encoding=utf-8
sys.conf.file.path=D:/conf
window.dev.file.path=D:/cspspring.ai.mcp.client.enabled=true
spring.ai.mcp.client.name=my-mcp-client
spring.ai.mcp.client.version=1.0.0
spring.ai.mcp.client.request-timeout=30s
spring.ai.mcp.client.type=SYNC
spring.ai.mcp.client.sse.connections.server1.url=http://localhost:8081spring.ai.zhipuai.api-key=0baf0413c6c0c6b0d011ae8489a2c9c0.ejfhVbF6Z653Cy1I
spring.ai.zhipuai.base-url=https://open.bigmodel.cn/api/paas
spring.ai.zhipuai.embedding.options.model=glm-4-flash
spring.ai.zhipuai.chat.options.model=glm-4-flash
spring.ai.zhipuai.chat.options.temperature=0.7
  • 4.5 MCPClient 調用AI模型問答
         /*** AI---式調用問答*/@RequestMapping(value = "/jsonToSay", method = RequestMethod.GET)public String jsonToSay(@RequestParam String question) {var chatClient = chatClientBuilder.defaultTools(toolCallbackProvider).build();System.out.println("=== 聊天模式已啟動(=====");// 調用 AI 并打印回復String content = chatClient.prompt(question).call().content();System.out.println("\n>>> AI 回復: " + content);return content;}
5. 運行與測試
  • 5.1 啟動Spring Boot應用
    • 運行MCPServer和MCPClient應用程序。
      在這里插入圖片描述關鍵會打印:MCPClient 注冊到MCPServer上了

2025-05-28T14:41:46.290+08:00 INFO 1828 — [mcp-server] [nio-8081-exec-5] i.m.server.McpAsyncServer : Client initialize request - Protocol: 2024-11-05, Capabilities: ClientCapabilities[experimental=null, roots=null, sampling=null], Info: Implementation[name=my-mcp-client - server1, version=1.0.0]

  • 5.2 測試API調用
    • 使用Postman或類似工具向MCPClient發送請求,驗證服務器和AI服務是否正常工作。
    • 問一個不會協調去掉MCPServer工具的問題,全都是走大模型完成回答在這里插入圖片描述
    • 問一個大模型完成回答不了的,滿足MCPServer工具的語義的問題,走MCPServer工具
    • 在這里插入圖片描述

NICE JAVA的 MCP+AI全線路打通

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

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

相關文章

Linux `vi/vim` 編輯器深度解析與高階應用指南

Linux `vi/vim` 編輯器深度解析與高階應用指南 一、核心功能解析1. 模式系統2. 與主流編輯器對比二、核心操作體系1. 高效導航命令2. 文本操作矩陣三、高階配置體系1. .vimrc 配置示例2. 插件管理系統四、企業級開發實踐1. 代碼編輯技巧2. 宏錄制與批量處理五、可視化與多窗口1…

Java五種方法批量處理List元素全解

Java:如何優雅批量處理List中的每個元素 一、場景分析&#xff1a;為什么需要批量處理List&#xff1f;二、核心方法&#xff1a;五種實現方式對比2.1 普通for循環&#xff08;最直接的方式&#xff09;代碼示例&#xff1a;優缺點&#xff1a; 2.2 Java 8 replaceAll&#xff…

【Elasticsearch】`_refresh`和`_flush`的區別

在Elasticsearch中&#xff0c;_refresh和_flush操作雖然看似都與“刷新”有關&#xff0c;但它們的功能和作用范圍有顯著區別&#xff1a; _refresh操作 - 目的&#xff1a;使索引操作&#xff08;如新增、更新、刪除文檔&#xff09;后的更改能夠立即被搜索到。 - 工作原理…

Java核心數據類型:String深度解析(JDK 8+)

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 問題驅動&#xff1a;從用戶注冊場景說起 場景描述&#xff1a;開發一個用戶注冊功能時&#xff0c;需要處理用戶名的校驗、格式化和存儲。你可能會遇到…

人員睡崗檢測算法AI智能分析網關V4打造工業/安防/交通等多場景應用方案

一、引言? 在工業生產、安防監控等多領域&#xff0c;眾多崗位需員工長時間值守&#xff0c;如流水線工人、監控值班員等。但高強度工作易引發睡崗問題&#xff0c;導致生產效率下降&#xff0c;甚至造成安全事故與財產損失。傳統人工巡檢響應慢、成本高&#xff0c;難以滿足…

自動生成提示技術突破:AUTOPROMPT重塑語言模型應用

AUTOPROMPT 預訓練語言模型的顯著成功促使人們研究這些模型在預訓練期間學習了哪些類型的知識。將任務重新表述為填空題(例如,完形填空測試)是衡量此類知識的自然方法 但是,它的使用受到編寫合適提示所需的手動工作和猜測的限制。為了解決這個問題,我們開發了 AUTOPROMP…

6個月Python學習計劃 Day 7 - 復盤 + 測試日

第一周 Day 1 - Python 基礎入門 & 開發環境搭建 Day 2 - 條件判斷、用戶輸入、格式化輸出 Day 3 - 循環語句 range 函數 Day 4 - 列表 & 元組基礎 Day 5 - 字典&#xff08;dict&#xff09;與集合&#xff08;set&#xff09; Day 6 - 綜合實戰&#xff1a;學生信息…

Pycharm and Flask 的學習心得(9)

request對象&#xff1a; 1. request包含前端發送過來的所有請求數據 將from表單里的內容CV到request里面&#xff0c;可以添加if語句來做判斷出請求類型后的操作 在網頁上的表單上input的數據&#xff0c;后端如何獲取呢&#xff1f; request對象獲取前端發送來的數據 // …

設計模式-依賴倒轉原則

依賴倒轉原則 依賴倒轉原則 (Dependency Inversion Principle, DIP) 是面向對象設計中 SOLID 原則的第五個原則。 它包含兩條核心思想&#xff1a; 高層模塊不應該依賴于低層模塊。兩者都應該依賴于抽象。 高層模塊 (High-level modules): 通常包含復雜的業務邏輯和策略&…

AI賦能引爆短劇全球化風潮,騰訊云媒體處理助力短劇平臺出海吸金

2023年&#xff0c;中國短劇市場以全平臺8000萬日投放、近500億規模的爆發式增長震驚行業。緊湊的內容、爽快的劇情令國內觀眾迅速愛上了幾分鐘一集的微短劇。然而在平臺內卷、監管收緊、巨頭入場等因素的沖擊下&#xff0c;不到兩年時間&#xff0c;這條賽道就已陷入紅海。但與…

開源第三方庫發展現狀

摘要&#xff1a;當前&#xff0c;開源第三方庫生態正呈現爆發式增長趨勢。GitHub 目前已托管超過 4.2 億個代碼倉庫&#xff0c;遠超早期統計的 1 億規模&#xff0c;顯示出開發者社區的活躍度持續攀升。同時&#xff0c;37 個主流包管理器所維護的開源組件數量可能已達到數千…

服務器開機自啟動服務

前言&#xff1a; 將服務器中腳本開啟自啟動執行 步驟&#xff1a; 1.創建一個 systemd 服務文件: /etc/systemd/system/ 目錄下創建一個新的服務文件。例如&#xff0c;命名為 myapp.service&#xff1a; sudo nano /etc/systemd/system/myapp.service2.編寫 [Unit] Descri…

采用Bright Data+n8n+AI打造自動化新聞助手:每天5分鐘實現內容日更

一、引言 在信息爆炸的時代&#xff0c;作為科技領域的內容創作者&#xff0c;我每天都要花費2-3小時手動收集行業新聞、撰寫摘要并發布到各個社群。直到我發現Bright Datan8nAI這套"黃金組合"&#xff0c;才真正實現了從"人工搬運"到"智能自動化&qu…

ROS云課三分鐘-3D性能測試supertuxkart和游戲推薦等-國際象棋

ROS云課三分鐘-破壁篇GCompris-一小部分支持Edu應用列表-2025-CSDN博客 很多時候&#xff0c;有一種思維定勢&#xff0c;將人鎖住&#xff0c;人口就是囚。 口人囚~口加人等于囚-CSDN博客 如果突破&#xff0c;跳出問題&#xff0c;再看問題。 這門課程&#xff0c;或者這個平…

學習率及相關優化參數詳解:驅動模型高效訓練

一、引言 在模型微調的核心參數體系中&#xff0c;優化相關參數是決定訓練效率與模型性能的關鍵變量。它們如同精密機械的齒輪&#xff0c;彼此聯動、相互影響&#xff0c;共同調控著模型在參數空間中的搜索路徑。本文將圍繞學習率、訓練輪數、批處理大小、梯度累積和學習率調…

golang 柯里化(Currying)

使用場景&#xff1a;參數在語義上屬于不同組&#xff0c;Go 語法無法在單次調用中聲明多組可變參數&#xff0c;通過柯里化可以實現分步接收參數。 有的參數是在不同時間段產生&#xff0c;使用Currying可以讓函數記住&#xff08;緩存&#xff09;參數&#xff0c;避免應用代…

電腦革命家測試版:硬件檢測,6MB 輕量無廣告 清理垃圾 + 禁用系統更新

各位電腦小白和大神們&#xff0c;我跟你們說啊&#xff01;有個超牛的東西叫電腦革命家測試版&#xff0c;這是吾愛破解論壇的開發者搞出來的免費無廣告系統工具集合&#xff0c;主打硬件檢測和系統優化&#xff0c;就像是魯大師這些軟件的平替。下面我給你們嘮嘮它的核心功能…

R 語言科研繪圖第 52 期 --- 網絡圖-分組

在發表科研論文的過程中&#xff0c;科研繪圖是必不可少的&#xff0c;一張好看的圖形會是文章很大的加分項。 為了便于使用&#xff0c;本系列文章介紹的所有繪圖都已收錄到了 sciRplot 項目中&#xff0c;獲取方式&#xff1a; R 語言科研繪圖模板 --- sciRplothttps://mp.…

EfficientLLM: Efficiency in Large Language Models 高效大模型

目錄 第1章&#xff1a;引言第2章&#xff1a;觀察與見解2.1 總體觀察&#xff08;Overall Observations&#xff09;2.2 從EfficientLLM基準中得出的新見解 第3章&#xff1a;背景3.1 大語言模型&#xff08;LLMs&#xff09;3.2 提升LLMs效率的方法3.2.1 硬件創新3.2.2 軟件優…

SFTP工具類實現文件上傳下載_

import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsEntry;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.*;/*** SFTP工具類*/ public class SftpFile {static Sessio…