当前位置: 首页 > news >正文

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: 激活插件选择器

相关文章:

  • 常见缓存淘汰算法(LRU、LFU、FIFO)的区别与实现
  • 居然智家启动“2025北居奥森健跑活动“以运动诠释企业健康共生理念
  • shell命令一
  • KafkaSpark-Streaming
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Git 进阶使用指南
  • POI从入门到上手(一)-轻松完成Apache POI使用,完成Excel导入导出.
  • AD盖白油(一面是板颜色,一面是白色丝印)
  • 自动清空 maven 项目临时文件,vue 的 node_modules 文件
  • K8S Service 原理、案例
  • 【AIGC】基础篇:VS Code 配置 Python 命令行参数调试debug超详细教程
  • MySQL日期函数的详细教程(包含常用函数及其示例)
  • JavaWeb:JavaScript
  • 苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交
  • [密码学实战]商用密码产品密钥体系架构:从服务器密码机到动态口令系统
  • 源码分析之Leaflet中Icon类
  • 【EDA】EDA中聚类(Clustering)和划分(Partitioning)
  • 《算法笔记》4.2小节——算法初步->哈希
  • 观测云数据在Grafana展示的最佳实践
  • Milvus(7):Schema、主字段和自动识别
  • 出国留学、来华留学呈现双增新趋势,“00后留学生个性鲜明”
  • 哈工大赵杰:人形机器人要拓展人的能力而非一味复制,未来产业要做成至少10年
  • 政治局会议:要提高中低收入群体收入,设立服务消费与养老再贷款
  • 人民论坛:是民生小事,也是融合大势
  • 著名诗人、中国城市发展研究院原常务副院长吕贵品逝世
  • 新《火灾统计管理规定》即将施行,火灾死亡统计时限延长