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

企业网站优化公司哪家好e建网站

企业网站优化公司哪家好,e建网站,泉山区城乡建设局网站,asp网站 上传空间uv工具&&创建虚拟开发环境 uv工具的安装、使用以及虚拟环境的创建已经在上篇文章中做了详细介绍,这里不再赘述,见:MCP从零开始-CSDN博客 MCP客户端搭建 创建项目和创建虚拟环境,已经在上篇中介绍过了,这里不…

uv工具&&创建虚拟开发环境

uv工具的安装、使用以及虚拟环境的创建已经在上篇文章中做了详细介绍,这里不再赘述,见:MCP从零开始-CSDN博客

MCP客户端搭建

创建项目和创建虚拟环境,已经在上篇中介绍过了,这里不做详细介绍,仅仅列出相关命令。

# 创建项目 && 进入项目
uv init mymcp
cd mymcp# 创建虚拟环境
uv venv# 激活虚拟环境
source .venv/bin/activate # linunx等
.venv/bin/activate        # windows# 删除main.py
rm main.py# 创建客户端文件
touch client.py

 执行上述命令创建好了项目并且激活了虚拟环境。

安装相关库

# 安装mcp相关库uv add "mcp[cli]"

编写MCP客户端

打开client.py文件编写代码,可以用记事本、notepad++等,不过建议用一款编程软件,这样可以提升代码编写效率,作者采用vscode。

 导入必要的库

import asyncio  # 异步操作
from mcp import ClientSession  # MCP客户端会话管理
from contextlib import AsyncExitStack  # 资源管理

创建并初始化客户端

class MyMCPClient:def __init__(self):"""初始化 MCP 客户端"""self.session = None  self.exit_stack = AsyncExitStack()  # 创建资源管理器

模拟 MCP 服务器连接

async def connect_to_mock_server(self):"""MCP 服务器的连接"""print("✅ MCP 客户端已初始化,但未连接到服务器")

交互式聊天

async def chat_loop(self):"""交互式聊天循环"""print("\nMCP 客户端已启动!输入 'quit' 退出")while True: try:query = input("\nQuery: ").strip()if query.lower() == 'quit': print("\n👋 退出聊天...")breakprint(f"\n🤖 你:{query}") except Exception as e: print(f"\n⚠️ 发生错误: {str(e)}")

释放资源 && 主函数

async def cleanup(self):"""清理资源"""await self.exit_stack.aclose()  async def main():client = MyMCPClient() try:await client.connect_to_mock_server() await client.chat_loop() finally:await client.cleanup() if __name__ == "__main__":asyncio.run(main())

将上述代码组合,一个简单的客户端就开发好了!运行下面命令,结果如下:

uv run client.py

 MCP客户端接入AI

下面主要陈述怎样接入OpenAI、DeepSeek等在线模型。

导入OpenAI库依赖

uv add openai

创建.env文件

创建.env文件,并写入下面内容:

 注:MODEL可以更换为DeepSeek模型或者其他或者本地模型。

 修改客户端代码

加载OpenAI API Key

from dotenv import load_dotenv
import os# 加载 .env 文件,确保 API Key 受到保护
load_dotenv()self.openai_api_key = os.getenv("OPENAI_API_KEY")  # 读取 API Key
self.base_url = os.getenv("BASE_URL")  # 读取 BASE YRL
self.model = os.getenv("MODEL")if not self.openai_api_key:raise ValueError("❌ 未找到 OpenAI API Key,请确保 .env 文件中已经设置了 OPENAI_API_KEY")

发送用户输入

async def process_query(self, query: str) -> str:"""调用 OpenAI API 处理用户查询"""messages = [{"role": "system", "content": "你是一个智能助手,帮助用户回答问题。"},{"role": "user", "content": query}]try:response = await asyncio.get_event_loop().run_in_executor(None,lambda: openai.ChatCompletion.create(model="gpt-4",messages=messages,max_tokens=1000,temperature=0.7))return response["choices"][0]["message"]["content"].strip()except Exception as e:return f"⚠️ 调用 OpenAI API 时出错: {str(e)}"

交换聊天

async def chat_loop(self):"""运行交互式聊天循环"""print("\n🤖 MCP 客户端已启动!输入 'quit' 退出")while True:try:query = input("\n你: ").strip()if query.lower() == 'quit':breakresponse = await self.process_query(query)  # 发送用户输入到 OpenAI APIprint(f"\n🤖 OpenAI: {response}")except Exception as e:print(f"\n⚠️ 发生错误: {str(e)}")

组合上述代码,运行结果如下,这样一个简单的连接AI客户端就实现好了 ^_^

 编写服务端

以导入shape数据到SuperMap数据源为例。

服务端代码相对比较简单,主要是封装MCP tools,创建server.py文件,写入一下代码:

#!/usr/bin/env python3
"""
SuperMap MCP Client - Simple client to connect to the SuperMap MCP server
"""import logging
from mcp.server.fastmcp import FastMCP
from iobjectspy import data, conversion, enumsmcp = FastMCP("supermap_server",description="SuperMap integration through the Model Context Protocol")logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger("SuperMapMCPServer")def get_datasource():connInfo = (data.DatasourceConnectionInfo().set_type(enums.EngineType.PGGIS).set_server('ip').set_database('db').set_alias('test').set_user('user').set_password('password'))datasource = data.open_datasource(connInfo)if datasource is None:raise Exception("Could not open datasource")else:logger.info("Successfully connected to SuperMap")return datasource@mcp.tool(name="import_data", description="Import a shapefile to datasource")
def import_data(file_path: str) -> bool:datasource = get_datasource()if datasource is None:logger.error("Datasource is None")return False# Import the shapefilebImport = Falsetry:b = conversion.import_shape(file_path, datasource)logger.info(f"Successfully imported {file_path} to datasource")bImport = (len(b) == 1)except Exception as e:logger.error(f"Failed to import {file_path}: {str(e)}")return Falsefinally:datasource.close()logger.info("Datasource closed after import")return bImportdef main():"""Run the MCP server"""mcp.run(transport='stdio')if __name__ == "__main__":main()

运行客户端和服务端

运行

uv run client.py server.py

运行上述代码,界面如下所示:

执行数据导入

用supermap desktop查看,结果如下:

至此客户端和服务端实现完成,是不是不是很难 ^_^ 

完整代码:https://github.com/liyq0307/SuperMapMCP.git


文章转载自:

http://1j0SU9Aj.rqjxc.cn
http://yOXPwMvT.rqjxc.cn
http://ylesPv1I.rqjxc.cn
http://bdknlwep.rqjxc.cn
http://gAve2J3C.rqjxc.cn
http://SSypBEoB.rqjxc.cn
http://QHBqeVvR.rqjxc.cn
http://3D4u5uLb.rqjxc.cn
http://JOytL5A7.rqjxc.cn
http://ARzJuVMg.rqjxc.cn
http://siNLkFa7.rqjxc.cn
http://IrC8Up7y.rqjxc.cn
http://gouPEZG4.rqjxc.cn
http://7QlOpCGD.rqjxc.cn
http://7Y1B6X9s.rqjxc.cn
http://cjnVnwJe.rqjxc.cn
http://eSzt7zRj.rqjxc.cn
http://t6ztMBKK.rqjxc.cn
http://fE7QW6Qn.rqjxc.cn
http://MN6T930d.rqjxc.cn
http://a0C0pODw.rqjxc.cn
http://xhDgYIwl.rqjxc.cn
http://OIUSjsQ8.rqjxc.cn
http://m1wz8ShR.rqjxc.cn
http://5L4xEtDE.rqjxc.cn
http://8ZFk3bR5.rqjxc.cn
http://yo1Qxsn2.rqjxc.cn
http://QGMqQuFe.rqjxc.cn
http://Mia0H3sP.rqjxc.cn
http://QK2A3MhD.rqjxc.cn
http://www.dtcms.com/wzjs/620993.html

相关文章:

  • 企业网站推广策划方法WordPress多语言多站点
  • 网站制作与建设书籍重庆市建设领域农民工工资专户网站
  • 怎么找到域名做的那个网站建站基础:wordpress安装教程图解 - 天缘博客
  • 营销型网站教程网站构成的作用
  • 找网页模板的网站好淘宝客返利网站程序
  • 网站上传文件不存在烟台网站制作设计
  • 四川城乡和住房建设厅网站首页网页设计平台有哪些
  • 在阿里云做视频网站需要什么wordpress 弹幕播放器
  • 阿里云域名续费网站省财政厅经济建设处网站
  • 网站地图怎么制作wordpress编辑器汉
  • 国外js特效网站北京彩页设计制作
  • 给别人做网站多少钱做交通工程刬线的网站公司
  • 游戏开发和网站开发哪个好玩龙泉驿网站seo
  • 钓鱼网站 企业形象网站建设方案推广
  • 网站采集功能wordpress拖拽主题
  • 接网站开发的公司北京市工商注册登记网
  • 营销网站建站企业网站搜索引擎优化的方法
  • 做网站给客户聊天记录哈尔滨建设工程有限公司
  • 生产建设兵团第三师政务网站eyoucms插件
  • 电子商务网站定制有没有做盗版电影网站犯罪的
  • 论坛网站 备案it人才外包
  • 网站建设 上海网站建网站建设实训心得体会
  • 重庆网站制作设计获客磁县专业做网站
  • 晋江文创园网站建设h5微信网站建设
  • wordpress 所有文章列表做seo用什么网站系统
  • 设计素材网站排行优化网站排名哪家好
  • wordpress网站主题石家庄建站软件
  • 中国工程建设造价管理协会网站哪里有好包装设计公司
  • 南昌网站定制郑州做网站那家做的好
  • 网站后台账号密码网站建设经济效益