宿迁市网站建设_网站建设公司_SEO优化_seo优化
2025/12/23 20:38:42 网站建设 项目流程
import os
import uuidimport dotenv
import asynciofrom langchain_core.messages import HumanMessage
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent
from langgraph.checkpoint.memory import MemorySaverfrom main import llmdotenv.load_dotenv()# 配置MCP地址和通信协议# 高德地图 MCP服务端
GAODE_API_KEY = os.getenv('GAODE_API_KEY')
ZHIPU_API_KEY = os.getenv('ZHIPU_API_KEY')from mcp.shared.exceptions import McpErrorasync def run_mcp_agent():max_retries = 3for attempt in range(max_retries):try:print(f"Attempt {attempt + 1}/{max_retries} starting...")client = MultiServerMCPClient({"fetch_mcp_server_config": {"transport": "streamable_http","url": "<fetch的mcp链接>",},"zhipu_search_mcp_server_config": {"transport": "sse","url": f"https://open.bigmodel.cn/api/mcp/web_search/sse?Authorization={ZHIPU_API_KEY}",},"context_mcp_server_config": {"transport": "streamable_http","url": "<数据图像生成的mcp链接>",},"gaode_mcp_server_config": {"transport": "streamable_http","url": f"https://mcp.amap.com/mcp?key={GAODE_API_KEY}",}})tools = await client.get_tools()agent = create_agent(llm,tools=tools)res = await agent.ainvoke({"messages": [HumanMessage(content="联网搜索今日天气")],})print(res)# 自动打开图像import reimport webbrowsermessages = res.get("messages", [])for msg in messages:if hasattr(msg, "content"):content = msg.contentif isinstance(content, list):# Handle list content (e.g. from ToolMessage)for item in content:if isinstance(item, dict) and item.get("type") == "text":text = item.get("text", "")urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)for url in urls:if any(ext in url.lower() for ext in ['.png', '.jpg', '.jpeg', '.gif', 'original']):print(f"Opening image: {url}")webbrowser.open(url)breakexcept McpError as e:print(f"MCP Error encountered: {e}")if "Session terminated" in str(e) and attempt < max_retries - 1:print("Session terminated. Retrying...")await asyncio.sleep(2)continueraise eexcept Exception as e:print(f"An error occurred: {e}")raise easyncio.run(run_mcp_agent())

这里举个例子,直接生成的数据分析图像
4a9cf356dde70844f86284a84d02cbd4

MCP工具调用过程可以使用Pycharm插件查看

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询