Python-Agent調用多個Server-FastAPI版本

Python-Agent調用多個Server-FastAPI版本

Agent調用多個McpServer進行工具調用

請添加圖片描述


1-核心知識點

  • fastAPI的快速使用
  • agent調用多個server

2-思路整理

  • 1)先把每個子服務搭建起來
  • 2)再暴露一個Agent

3-參考網址

  • VSCode配置Python開發環境:https://blog.csdn.net/cloud323/article/details/144103355
  • 本項目倉庫地址:https://gitee.com/enzoism/python_mcp_server_agent_fastapi

4-動手操作

1-項目提示詞

幫我使用Python開發4個MCPServer和MCPClient代碼,要求Agent中直接使用3個MCPServer,并編寫Prompt,要求根據用戶的輸入可以自動的調用對應的McpServer來進行接口調用要求4個MCPServer中,要求【城市天氣服務、城市酒店服務、城市旅游服務】使用模擬數據進行接口模擬;【每日經典語錄推薦】使用真實的外部API接口第1個服務:城市天氣服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的當天天氣情況
- 接口3:查詢指定城市的未來一周天氣情況第2個服務:城市酒店服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的酒店房間列表
- 接口3:預定指定城市的酒店房間第3個服務:城市旅游服務
- 接口1:查詢支持的城市列表
- 接口2:查詢指定城市的旅游地址推薦第4個服務:每日經典語錄推薦
- 接口:GET請求https://v1.hitokoto.cn/?encode=json 獲取返回的hitokoto字段

3-項目介紹

  • mcpserver_weather.py(城市天氣服務,端口8001)

  • mcpserver_hotel.py(城市酒店服務,端口8002)

  • mcpserver_tour.py(城市旅游服務,端口8003)

  • mcpserver_quote.py(每日經典語錄服務,端口8004,轉發外部API)

  • mcp_agent.py(MCPClient/Agent,端口9000,智能分發請求)

  • requirements.txt:包含 fastapi、uvicorn、httpx 依賴。

  • mcpserver_weather.py:實現城市天氣服務,支持查詢城市列表、今日天氣、一周天氣(模擬數據)。

  • mcpserver_hotel.py:實現城市酒店服務,支持查詢城市列表、酒店房間列表、預定酒店(模擬數據)。

  • mcpserver_tour.py:實現城市旅游服務,支持查詢城市列表、旅游推薦(模擬數據)。

  • mcpserver_quote.py:實現每日經典語錄服務,轉發真實API返回語錄。

  • mcp_agent.py:實現MCP智能Agent,支持自然語言輸入,自動調用對應服務接口并返回結果。


2-項目運行

pip install -r requirements.txtsource .venv/Scripts/activate
uvicorn mcpserver_weather:app --host 0.0.0.0 --port 8001source .venv/Scripts/activate
uvicorn mcpserver_hotel:app --host 0.0.0.0 --port 8002source .venv/Scripts/activate
uvicorn mcpserver_tour:app --host 0.0.0.0 --port 8003source .venv/Scripts/activate
uvicorn mcpserver_quote:app --host 0.0.0.0 --port 8004source .venv/Scripts/activate
uvicorn mcp_agent:app --host 0.0.0.0 --port 9000

4-測試用例

  • 查詢支持的城市有哪些?
  • 查詢北京的天氣
  • 預定上海的酒店房間
  • 推薦廣州的旅游景點
  • 給我一句每日經典語錄
- 127.0.0.1:9090/agent POST請求
{"user_input":"查詢支持的城市有哪些?"}

5-心得總結

1-VSCode配置Python開發環境

參考網址:VSCode配置Python開發環境:https://blog.csdn.net/cloud323/article/details/144103355

  • 1)安裝python相關的拆件
  • 2)使用 python: 激活插件選擇器

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

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

相關文章

Drools+自定義規則庫

文章目錄 前言一、創建規則庫二、SpringBootDrools程序1.Maven依賴2.application.yml3.Mapper.xml4.Drools配置類5.Service6.Contoller7.測試接口 前言 公司的技術方案想搭建Drools自定義規則庫配合大模型進行數據的校驗。本篇用來記錄使用SpringBoot配合Drools開發Demo程序。…

潮了 低配電腦6G顯存生成60秒AI視頻 本地部署/一鍵包/云算力部署/批量生成

最近發現了一個讓人眼前一亮的工具——FramePack,它能用一塊普通的6GB顯存筆記本GPU,生成60秒電影級的高清視頻畫面,效果堪稱炸裂!那么我們就把他本地部署起來玩一玩、下載離線一鍵整合包,或者是用云算力快速上手。接下…

【藍橋杯選拔賽真題104】Scratch回文數 第十五屆藍橋杯scratch圖形化編程 少兒編程創意編程選拔賽真題解析

目錄 scratch回文數 一、題目要求 1、準備工作 2、功能實現 二、案例分析 1、角色分析 2、背景分析 3、前期準備 三、解題思路 四、程序編寫 五、考點分析 六、推薦資料 1、scratch資料 2、python資料 3、C++資料 scratch回文數 第十五屆青少年藍橋杯scratch編…

大廠面試-框架篇

前言 本章內容來自B站黑馬程序員java大廠面試題和小林coding 博主學習筆記,如果有不對的地方,海涵。 如果這篇文章對你有幫助,可以點點關注,點點贊,謝謝你! 1.Spring 1.1 Spring框架中的單例bean是線程…

【AI 加持下的 Python 編程實戰 2_10】DIY 拓展:從掃雷小游戲開發再探問題分解與 AI 代碼調試能力(中)

文章目錄 DIY 實戰:從掃雷小游戲開發再探問題分解能力3 問題分解實戰(自頂向下)3.2 頁面渲染邏輯3.3 事件綁定邏輯 4 代碼實現(自底向上)4.1 頁面渲染部分4.2 事件綁定部分 寫在前面 本篇將利用《Learn AI-assisted Py…

微信小程序開發1------微信小程序中的消息提示框總結

微信小程序中的消息提示框主要分為以下幾種: 1. wx.showToast(Object object) 功能: 顯示消息提示框,一般用于顯示操作結果、狀態等。 特點: 提示框顯示在屏幕中間,持續一段時間后自動消失(默認1.5秒&…

AI 場景落地:API 接口服務 VS 本地部署,哪種更適合?

在當前 AI 技術迅猛發展的背景下,企業在實現 AI 場景落地時,面臨著一個關鍵抉擇:是選擇各大廠商提供的 API 接口服務,還是進行本地化部署?這不僅關乎成本、性能和安全性,還涉及到技術架構、數據治理和長期戰…

Android 加殼應用運行流程 與 生命周期類處理方案

版權歸作者所有,如有轉發,請注明文章出處:https://cyrus-studio.github.io/blog/ DexClassLoader DexClassLoader 可以加載任意路徑下的 dex,或者 jar、apk、zip 文件(包含classes.dex)。常用于插件化、熱…

c++進階——類與繼承

文章目錄 繼承繼承的基本概念繼承的基本定義繼承方式繼承的一些注意事項 繼承類模板 基類和派生類之間的轉換繼承中的作用域派生類的默認成員函數默認構造函數拷貝構造賦值重載析構函數默認成員函數總結 不能被繼承的類繼承和友元繼承與靜態成員多繼承及其菱形繼承問題繼承模型…

GAEA情感坐標背后的技術原理

基于GAEA的去中心化物理基礎設施網絡(DePIN),用戶有機會在GAEA平臺上獲得寶貴的數據共享積分。為了提升這些洞察的豐富性,用戶必須花費一定數量的積分,將過去的網絡數據與當前的情感數據綁定,從而產生一種新…

圖形編輯器基于Paper.js教程27:對圖像描摹的功能實現,以及參數調整

本篇文章來講一下 圖像描摹的功能的實現。 我們知道要雕刻圖片可以通過分析圖片的像素來生成相應的gcode進行雕刻,但如果你想要將圖片轉換為線稿進行雕刻,這個時候就要從圖片中提取出 線稿。 例如下面的圖片: 你想要獲取到這個圖片的線稿&…

人工智能與機器學習,誰是誰的子集 —— 再談智能的邊界與演進路徑

人工智能(Artificial Intelligence, AI)作為當代最具影響力的前沿技術之一,常被大眾簡化為 “深度學習” 或 “大模型” 等標簽。然而,這種簡化認知往往掩蓋了AI技術內部結構的復雜性與多樣性。事實上,AI并非單一方法的…

Oracle_開啟歸檔日志和重做日志

在Oracle中,類似于MySQL的binlog的機制是歸檔日志(Archive Log)和重做日志(Redo Log) 查詢歸檔日志狀態 SELECT log_mode FROM v$database; – 輸出示例: – LOG_MODE – ARCHIVELOG (表示已開啟) – NO…

IDEA編寫flinkSQL(快速體驗版本,--無需配置環境)

相關資料 文檔內容鏈接地址datagen生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/datagen/print 生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/print/ 準備工作 優點就是下載個ide…

基于AI技術的高速公路交通引流系統設計與應用研究

基于AI技術的高速公路交通引流系統設計與應用研究 1. 研究背景與意義 1.1 交通系統演化脈絡 1.1.1 發展階段劃分 機械化時代(1950-1990):固定式信號控制信息化時代(1991-2010):SCATS/SCOOT系統智能化時代…

NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS

1. 介紹: 這篇論文也是基于CLIP通過后處理的方法實現的OOD的檢測,但是設計點在于,之前的方法是使用的ID的類別,這篇工作是通過添加一些在語義上非常不同于ID的類別的外分布類來做的OOD檢測。 CLIP做OOD檢測的這個系列里面我看的以及記錄的第一篇就是MCM的方法,這也是確實是…

Linux 網絡基礎三 (數據鏈路層協議:以太網協議、ARP 協議)

一、以太網 兩個不同局域網的主機傳遞數據并不是直接傳遞的,而是通過路由器 “一跳一跳” 的傳遞過去。 跨網絡傳輸的本質:由無數個局域網(子網)轉發的結果。 所以,要理解數據跨網絡轉發原理就要先理解一個局域網中數…

Azure Data Factory ETL設計與調度最佳實踐

一、引言 在Azure Data Factory (ADF) 中,調度和設計ETL(抽取、轉換、加載)過程需要綜合考量多方面因素,以確保數據處理高效、可擴展、可靠且易于維護。以下將詳細介紹相關關鍵考慮因素、最佳實踐,并輔以具體示例說明…

非序列實現MEMS聚焦功能

zemax非序列模式下有MEMS,但是沒有對應的代碼。無法修改成自己需要的功能 以下是實現MEMS聚焦功能: #include <windows.h> #include <cmath> #include <stdio.h> #include <string.h> #include <algorithm> #undef max #undef min#define D…

android studio sdk unavailable和Android 安裝時報錯:SDK emulator directory is missing

md 網上說的都是更換proxy代理什么的&#xff0c;換網的&#xff0c;還有一些二其他亂七八糟的&#xff0c;根本沒用&#xff0c;感覺很多就是解決不了問題&#xff0c;還賊多賊一致&#xff0c;同質化&#xff0c;感覺很坑人&#xff0c;讓人覺得他們和我的一樣的&#xff0c;…