通過MCP讓LLM調用系統接口

場景

MCP的出現大大豐富了LLM的功能,對于存量系統,我們希望能讓模型調用已有的接口,以最小的成本讓AI能夠獲取系統內部數據。因此我們開發了一個名為http-api-call的MCP Server,來支持模型到內部API的調用

實現方案

使用用標準的MCP協議,重寫call_toollist_tool

  • call_tool
    在這里實現調用工具的邏輯,將請求信息轉發給已有系統的后端接口調用
  • list_tool
    在這里實現工具列表的查詢,返回以及配置的API即可

這樣我們將工具列表封裝為tool_message,傳遞給模型,即可讓模型自動選擇合適的API調用。


#[derive(Debug, Clone)]
pub struct McpService;impl McpService {pub fn new() -> Self {Self {}}/// 添加或更新APIfn add_or_update_api(&self, req: Api) -> Res<()> {}/// 刪除APIfn remove_api(&self, req: RemoveApiReq) -> Res<()> {}/// 查詢API列表fn list_api(&self, req: Option<ListApiReq>) -> Res<PageRes<Api>> {}
}impl ServerHandler for McpService {async fn call_tool(&self,request: CallToolRequestParam,_context: RequestContext<RoleServer>,) -> Result<CallToolResult, Error> {// 請求轉發}fn list_tools(&self,_request: PaginatedRequestParam,_context: RequestContext<RoleServer>,) -> impl Future<Output = Result<ListToolsResult, Error>> + Send + '_ {//返回API列表}
}

配置API:
在這里插入圖片描述

在模型中使用API:
在這里插入圖片描述

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

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

相關文章

基于Transformer的多資產收益預測模型實戰(附PyTorch實現與避坑指南)

基于Transformer的多資產收益預測模型實戰(附PyTorch模型訓練及可視化完整代碼) 一、項目背景與目標 在量化投資領域,利用時間序列數據預測資產收益是核心任務之一。傳統方法如LSTM難以捕捉資產間的復雜依賴關系,而Transformer架構通過自注意力機制能有效建模多資產間的聯…

養生:打造健康生活的全方位策略

在生活節奏不斷加快的當下&#xff0c;養生已成為提升生活質量、維護身心平衡的重要方式。從飲食、運動到睡眠&#xff0c;再到心態調節&#xff0c;各個方面的養生之道共同構建起健康生活的堅實基礎。以下為您詳細介紹養生的關鍵要點&#xff0c;助您擁抱健康生活。 飲食養生…

輕型汽車鼓式液壓制動器系統設計

一、設計基礎參數 1.1 整車匹配參數 參數項數值范圍整備質量1200-1500kg最大設計車速160km/h輪胎規格195/65 R15制動法規要求GB 12676-2014 1.2 制動性能指標 制動減速度&#xff1a;≥6.2m/s&#xff08;0型試驗&#xff09; 熱衰退率&#xff1a;≤30%&#xff08;連續10…

無法更新Google Chrome的解決問題

解決問題&#xff1a;原文鏈接&#xff1a;【百分百成功】Window 10 Google Chrome無法啟動更新檢查&#xff08;錯誤代碼為1&#xff1a;0x80004005&#xff09; google谷歌chrome瀏覽器無法更新Chrome無法更新至最新版本&#xff1f; 下載了 就是更新Google Chrome了

【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models

Local Conditional Controlling for Text-to-Image Diffusion Models&#xff08;文本到圖像擴散模型的局部條件控制&#xff09; 文章目錄 內容摘要關鍵詞作者及研究團隊項目主頁01 研究領域待解決問題02 論文解決的核心問題03 關鍵解決方案04 主要貢獻05 相關研究工作06 解決…

Kuka AI音樂AI音樂開發「人聲伴奏分離」 —— 「Kuka Api系列|中文咬字清晰|AI音樂API」第6篇

導讀 今天我們來了解一下 Kuka API 的人聲與伴奏分離功能。 所謂“人聲伴奏分離”&#xff0c;顧名思義&#xff0c;就是將一段完整的音頻拆分為兩個獨立的軌道&#xff1a;一個是人聲部分&#xff0c;另一個是伴奏&#xff08;樂器&#xff09;部分。 這個功能在音樂創作和…

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼 一、設置編碼 1、步驟&#xff1a; File -> Setting -> Editor -> File encodings --> 設置編碼二、配置文件中文亂碼 1、步驟&#xff1a; File -> Setting -> Editor -> File encodings ->…

Xilinx FPGA PCIe | XDMA IP 核 / 應用 / 測試 / 實踐

注&#xff1a;本文為 “Xilinx FPGA 中 PCIe 技術與 XDMA IP 核的應用” 相關文章合輯。 圖片清晰度受引文原圖所限。 略作重排&#xff0c;未整理去重。 如有內容異常&#xff0c;請看原文。 FPGA&#xff08;基于 Xilinx&#xff09;中 PCIe 介紹以及 IP 核 XDMA 的使用 N…

sqli—labs第六關——雙引號報錯注入

一&#xff1a;判斷輸入類型 首先測試 ?id1&#xff0c;?id1&#xff0c;?id1"&#xff0c;頁面回顯均無變化 所以我們采用簡單的布爾測試&#xff0c;分別測試數字型&#xff0c;單引號&#xff0c;雙引號 然后發現&#xff0c;只有在測試到雙引號注入的時候符合關鍵…

【TroubleShoot】禁用Unity Render Graph API 兼容模式

使用Unity 6時新建了項目&#xff0c;有一個警告提示&#xff1a; The project currently uses the compatibility mode where the Render Graph API is disabled. Support for this mode will be removed in future Unity versions. Migrate existing ScriptableRenderPasses…

圖形學、人機交互、VR/AR、可視化等領域文獻速讀【持續更新中...】

&#xff08;1&#xff09;筆者在時間有限的情況下&#xff0c;想要多積累一些自身課題之外的新文獻、新知識&#xff0c;所以開了這一篇文章。 &#xff08;2&#xff09;想通過將文獻喂給大模型&#xff0c;并向大模型提問的方式來快速理解文獻的重要信息&#xff08;如基礎i…

Hadoop-HDFS-Packet含義及作用

在 HDFS&#xff08;Hadoop Distributed File System&#xff09;中&#xff0c;Packet 是數據讀寫過程中用于數據傳輸的基本單位。它是 HDFS 客戶端與數據節點&#xff08;DataNode&#xff09;之間進行數據交互時的核心概念&#xff0c;尤其在寫入和讀取文件時&#xff0c;Pa…

顯示的圖標跟UI界面對應不上。

圖片跟UI界面不符合。 要找到對應dp的值。UI的dp要跟代碼里的xml文件里的dp要對應起來。 藍湖里設置一個寬度給對應上。然后把對應的值填入xml. 一個屏幕上的圖片到底是用topmarin來設置&#xff0c;還是用bottommarin來設置。 因為第一節&#xff0c;5&#xff0c;7 車廂的…

【taro3 + vue3 + webpack4】在微信小程序中的請求封裝及使用

前言 正在寫一個 以taro3 vue3 webpack4為基礎框架的微信小程序&#xff0c;之前一直沒有記咋寫的&#xff0c;現在總結記錄一下。uniapp vite 的后面出。 文章目錄 前言一、創建環境配置文件二、 配置 Taro 環境變量三、 創建請求封裝四、如何上傳到微信小程序體驗版1.第二…

LeetCode:513、找樹左下角的值

//遞歸法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* t…

采用均線策略來跟蹤和投資基金

策略來源#睿思量化#小程序 截圖來源#睿思量化#小程序 在基金投資中&#xff0c;趨勢跟蹤策略是一種備受關注的交易方法。本文將基于兩張關于廣發電子信息傳媒股票 A&#xff08;代碼&#xff1a;005310&#xff09;的圖片資料&#xff0c;詳細闡述這一策略的應用與效果。 從第…

leetcode刷題---二分查找

力扣題目鏈接 二分查找算法使用前提&#xff1a;有序數組&#xff1b;數組內無重復元素 易錯點&#xff1a; 1.while循環的邊界條件&#xff1a;如到底是 while(left < right) 還是 while(left < right) 2.if條件后right&#xff0c;left的取值&#xff1a;到底是 right …

(leetcode) 力扣100 10.和為K的子數組(前綴和+哈希)

題目 給你一個整數數組 nums 和一個整數 k &#xff0c;請你統計并返回 該數組中和為 k 的子數組的個數 。 子數組是數組中元素的連續非空序列。 數據范圍 1 < nums.length < 2 * 104 -1000 < nums[i] < 1000 -107 < k < 107 樣例 示例 1&#xff1a; 輸…

遨游衛星電話與普通手機有什么區別?

在數字化浪潮席卷全球的今天&#xff0c;通信設備的角色早已超越傳統語音工具&#xff0c;成為連接物理世界與數字世界的核心樞紐。然而&#xff0c;當普通手機在都市叢林中游刃有余時&#xff0c;面對偏遠地區、危險作業場景的應急通信需求&#xff0c;其局限性便顯露無遺。遨…

在Linux中如何使用Kill(),向進程發送發送信號

kill()函數 #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); 函數參數和返回值含義如下: pid:參數 pid 為正數的情況下,用于指定接收此信號的進程 pid;除此之外,參數 pid 也可設置為 0 或-1 以及小于-1 等不同值,稍后給說明。 …