FastMCP:为大语言模型构建强大的上下文和工具服务

FastMCP:为大语言模型构建强大的上下文和工具服务

在人工智能快速发展的今天,大语言模型(LLM)已经成为许多应用的核心。然而,如何让这些模型更好地与外部世界交互,获取实时信息,执行特定任务,一直是开发者面临的挑战。模型上下文协议(Model Context Protocol,简称MCP)应运而生,它为LLM提供了一种标准化的方式来访问外部数据和功能。而FastMCP则是一个高效、简洁的Python库,让开发者能够轻松构建符合MCP规范的服务器和客户端。

本文将深入介绍FastMCP的核心功能、架构设计和实际应用,帮助开发者快速掌握这一强大工具,为大语言模型构建更智能、更实用的应用。

1. FastMCP简介

1.1 什么是MCP协议

模型上下文协议(Model Context Protocol)是一种专为大语言模型设计的标准化协议,它允许LLM以安全、一致的方式与外部系统交互。MCP协议常被描述为"AI的USB-C接口",提供了一种统一的方式连接LLM与它们可以使用的资源。

MCP协议的核心功能包括:

  • 资源(Resources):类似于GET端点,用于将信息加载到LLM的上下文中
  • 工具(Tools):类似于POST端点,用于执行代码或产生副作用
  • 提示(Prompts):可重用的LLM交互模板
  • 上下文(Context):提供额外的交互功能,如日志记录和进度报告

1.2 FastMCP的优势

FastMCP是MCP协议的高级Python实现,它大大简化了创建MCP服务器和客户端的过程。与直接使用底层MCP SDK相比,FastMCP具有以下优势:

  • 高效开发:高级接口意味着更少的代码和更快的开发速度
  • 简洁设计:最小化样板代码,专注于业务逻辑
  • Python风格:API设计符合Python开发者的习惯
  • 完整实现:提供MCP规范的全面实现

1.3 FastMCP 2.0的新特性

FastMCP 2.0是该项目的活跃开发版本,相比于贡献给官方MCP SDK的1.0版本,它增加了许多强大的新功能:

  • 强大的客户端功能
  • 服务器代理和组合
  • OpenAPI/FastAPI集成
  • 更多高级特性

2. Servers模块:构建MCP服务器

Servers模块是FastMCP的核心,提供了创建和管理MCP服务器的基础设施。

2.1 FastMCP服务器基础

创建一个基本的FastMCP服务器非常简单:

from fastmcp import FastMCP# 创建一个FastMCP服务器实例
mcp = FastMCP(name="MyServer")# 启动服务器
if __name__ == "__main__":mcp.run()

您还可以添加更多元数据来描述您的服务器:

from fastmcp import FastMCP# 创建带有元数据的服务器
mcp = FastMCP(name="WeatherServer",description="提供天气预报和历史天气数据",version="1.0.0",contact={"name": "开发团队", "email": "dev@example.com"}
)if __name__ == "__main__":mcp.run()

2.2 Tools:为LLM提供功能

Tools(工具)是FastMCP中最常用的功能之一,它允许LLM执行特定的操作或函数。使用@mcp.tool()装饰器可以轻松将Python函数转换为LLM可调用的工具:

from fastmcp import FastMCPmcp = FastMCP(name="CalculatorServer")@mcp.tool()
def add(a: float, b: float) -> float:"""将两个数字相加。Args:a: 第一个数字b: 第二个数字Returns:两个数字的和"""return a + b@mcp.tool()
def multiply(a: float, b: float) -> float:"""将两个数字相乘。Args:a: 第一个数字b: 第二个数字Returns:两个数字的乘积"""return a * bif __name__ == "__main__":mcp.run()

FastMCP支持异步工具函数,这对于需要I/O操作的任务特别有用:

import asyncio
from fastmcp import FastMCPmcp = FastMCP(name="AsyncServer")@mcp.tool()
async def fetch_data(url: str) -> dict:"""从指定URL异步获取数据。Args:url: 要获取数据的URLReturns:获取的数据字典"""# 模拟异步网络请求await asyncio.sleep(1)return {"url": url, "status": "success", "data": "示例数据"}

工具函数还可以使用上下文对象来访问额外功能:

from fastmcp import FastMCP
from fastmcp.server import Contextmcp = FastMCP(name="ContextServer")@mcp.tool()
async def log_message(ctx: Context, message: str) -> bool:"""记录消息并返回成功状态。Args:ctx: FastMCP上下文对象message: 要记录的消息Returns:操作是否成功"""# 使用上下文发送日志ctx.info(f"收到消息: {message}")return True

2.3 Resources:提供上下文数据

Resources(资源)用于向LLM提供数据和上下文信息。与工具不同,资源主要用于读取数据而非执行操作:

from fastmcp import FastMCPmcp = FastMCP(name="DocumentServer")@mcp.resource()
def company_info() -> str:"""提供公司基本信息。"""return """公司名称: 示例科技有限公司成立时间: 2020年主营业务: 人工智能解决方案员工人数: 100+"""@mcp.resource()
def pricing_policy() -> dict:"""返回产品定价策略。"""return {"basic_plan": {"price": 99, "features": ["基础功能", "电子邮件支持"]},"pro_plan": {"price": 199, "features": ["所有基础功能", "高级功能", "优先支持"]},"enterprise": {"price": "联系销售", "features": ["定制解决方案", "专属支持团队"]}}

资源也可以接受参数,这使得它们更加灵活:

@mcp.resource()
def user_profile(user_id: int) -> dict:"""获取指定用户的个人资料。Args:user_id: 用户IDReturns:用户个人资料"""# 在实际应用中,这里会从数据库获取用户信息users = {1: {"name": "张三", "email": "zhang@example.com", "role": "管理员"},2: {"name": "李四", "email": "li@example.com", "role": "用户"},}if user_id in users:return users[user_id]else:return {"error": "用户不存在"}

2.4 Prompts:创建提示模板

Prompts(提示)允许您创建可重用的提示模板,这些模板可以被参数化并用于标准化LLM交互:

from fastmcp import FastMCP
from fastmcp.types import Messagemcp = FastMCP(name="CustomerServiceBot")@mcp.prompt()
def greeting(customer_name: str) -> list[Message]:"""创建一个个性化的问候提示。Args:customer_name: 客户名称Returns:包含问候消息的提示"""return [{"role": "system", "content": "你是一位专业的客户服务代表,语气友好且乐于助人。"},{"role": "user", "content": f"你好,我是{customer_name},我需要一些帮助。"}]@mcp.prompt()
def product_inquiry(product_name: str, specific_question: str = None) -> list[Message]:"""创建产品咨询提示。Args:product_name: 产品名称specific_question: 具体问题(可选)Returns:包含产品咨询的提示"""content = f"我想了解关于{product_name}的信息。"if specific_question:content += f" 具体来说,{specific_question}"return [{"role": "system", "content": "你是产品专家,提供准确、简洁的产品信息。"},{"role": "user", "content": content}]

2.5 Context:访问服务器功能

Context(上下文)对象提供了在工具和资源函数内部访问FastMCP服务器功能的方法:

from fastmcp import FastMCP
from fastmcp.server import Contextmcp = FastMCP(name="ContextDemoServer")@mcp.tool()
async def process_task(ctx: Context, task_name: str, complexity: int) -> dict:"""处理一个任务并报告进度。Args:ctx: FastMCP上下文对象task_name: 任务名称complexity: 任务复杂度(1-10)Returns:任务处理结果"""# 发送信息日志ctx.info(f"开始处理任务: {task_name}")# 报告进度total_steps = complexityfor step in range(1, total_steps + 1):# 更新进度ctx.progress(step / total_steps, f"完成步骤 {step}/{total_steps}")# 如果任务复杂,发送详细日志if complexity > 5:ctx.debug(f"步骤 {step} 详细信息: 正在处理中...")# 任务完成,发送成功日志ctx.info(f"任务 {task_name} 已完成")return {"task": task_name,"status": "completed","complexity_level": complexity}

上下文对象提供的主要功能包括:

  • 日志记录(debug、info、warning、error)
  • 进度报告
  • 资源访问
  • 请求元数据访问

2.6 Proxy Servers:代理远程服务器

Proxy Servers(代理服务器)允许一个FastMCP服务器实例作为另一个MCP服务器的前端:

from fastmcp import FastMCP, Client# 假设我们有一个远程MCP服务器运行在这个URL
remote_url = "https://api.example.com/mcp"# 创建一个客户端连接到远程服务器
client = Client(remote_url)# 从客户端创建代理服务器
proxy_server = FastMCP.from_client(client=client,name="LocalProxy",description="本地代理到远程MCP服务"
)if __name__ == "__main__":# 在本地运行代理服务器proxy_server.run()

代理服务器的主要用途包括:

  • 为远程MCP服务器提供不同的传输方式
  • 集成不同实现的MCP服务器
  • 创建服务器网关

2.7 Composition:组合多个服务器

Composition(组合)功能允许您将多个FastMCP服务器组合成一个更大的应用:

from fastmcp import FastMCP# 创建主服务器
main_server = FastMCP(name="MainApplication")# 创建工具服务器
tools_server = FastMCP(name="ToolsServer")@tools_server.tool()
def utility_function(text: str) -> str:return f"处理结果: {text.upper()}"# 创建数据服务器
data_server = FastMCP(name="DataServer")@data_server.resource()
def get_config() -> dict:return {"api_version": "v2", "timeout": 30}# 将工具服务器和数据服务器导入到主服务器
main_server.import_server(tools_server, prefix="tools")
main_server.import_server(data_server, prefix="data")if __name__ == "__main__":main_server.run()

FastMCP支持两种组合方式:

  • 静态导入:使用import_server方法一次性复制组件
  • 动态挂载:使用mount方法创建实时委托链接
# 动态挂载服务器
main_server.mount(auth_server, prefix="auth")
main_server.mount(content_server, prefix="content")

3. Deployment模块:部署MCP服务器

Deployment模块提供了多种方式来运行和部署FastMCP服务器。

3.1 Running the Server:运行服务器

最基本的运行方式是使用run()方法:

from fastmcp import FastMCPmcp = FastMCP(name="SimpleServer")@mcp.tool()
def hello(name: str) -> str:return f"你好,{name}!"if __name__ == "__main__":# 使用默认设置运行服务器mcp.run()

您可以配置多种运行选项:

if __name__ == "__main__":# 使用HTTP传输并指定端口mcp.run(transport="http",host="0.0.0.0",port=8080,log_level="info")

FastMCP支持多种传输协议:

  • HTTP:标准HTTP传输
  • SSE:服务器发送事件传输
  • STDIO:标准输入/输出传输(用于命令行工具)

3.2 ASGI Integration:与ASGI框架集成

FastMCP可以轻松集成到现有的ASGI应用中,如Starlette和FastAPI:

from fastmcp import FastMCP
from starlette.applications import Starlette
from starlette.routing import Route, Mount
from starlette.responses import JSONResponse# 创建FastMCP服务器
mcp = FastMCP(name="APIServer")@mcp.tool()
def greet(name: str) -> str:return f"你好,{name}!"# 创建Starlette路由
async def homepage(request):return JSONResponse({"message": "欢迎访问API服务器"})# 获取MCP的ASGI应用
mcp_app = mcp.http_app()# 创建Starlette应用并挂载MCP
app = Starlette(routes=[Route("/", homepage),Mount("/mcp", app=mcp_app)
])# 使用uvicorn运行
# uvicorn myapp:app

与FastAPI集成:

from fastmcp import FastMCP
from fastapi import FastAPI# 创建FastMCP服务器
mcp = FastMCP(name="FastAPIIntegration")@mcp.tool()
def analyze_text(text: str) -> dict:word_count = len(text.split())char_count = len(text)return {"word_count": word_count,"character_count": char_count,"summary": f"文本包含{word_count}个单词,{char_count}个字符"}# 创建FastAPI应用
app = FastAPI(title="集成示例")@app.get("/")
def read_root():return {"message": "欢迎访问API"}# 挂载MCP到FastAPI
app.mount("/mcp", mcp.http_app())

ASGI集成的主要用途包括:

  • 向现有网站或API添加MCP功能
  • 在特定URL路径下挂载MCP服务器
  • 结合多种服务在单一应用中

3.3 Authentication:服务器认证

FastMCP利用底层MCP SDK的OAuth 2.0支持提供认证功能:

from fastmcp import FastMCP# 创建带有认证的服务器
mcp = FastMCP(name="SecureServer",# 配置认证(这里使用简化示例,实际使用时需参考MCP认证文档)auth={"type": "oauth2","flows": {"clientCredentials": {"tokenUrl": "https://auth.example.com/token","scopes": {"read": "读取权限","write": "写入权限"}}}}
)@mcp.tool()
def secure_operation(data: str) -> str:return f"安全处理: {data}"

3.4 CLI:命令行界面

FastMCP提供了一个命令行界面,使您可以轻松运行和管理服务器:

# 直接运行服务器
fastmcp run server.py# 以开发模式运行(带MCP检查器)
fastmcp dev server.py# 安装到Claude桌面应用
fastmcp install server.py# 查看版本信息
fastmcp version

CLI还支持依赖管理:

# 使用指定依赖运行
fastmcp run server.py --with pandas,numpy# 使用可编辑依赖运行
fastmcp run server.py --with-editable ./my_package

4. Clients模块:与MCP服务器交互

Clients模块提供了与MCP服务器交互的客户端功能。

4.1 Client Overview:客户端概述

基本的客户端使用方式:

import asyncio
from fastmcp import Clientasync def main():# 连接到MCP服务器async with Client("http://localhost:8080") as client:# 调用工具result = await client.tools.call("add", a=5, b=3)print(f"计算结果: {result}")# 读取资源weather = await client.resources.read("current_weather", city="北京")print(f"天气信息: {weather}")if __name__ == "__main__":asyncio.run(main())

客户端还支持回调处理:

import asyncio
from fastmcp import Clientasync def progress_callback(progress: float, message: str):print(f"进度: {progress*100:.1f}% - {message}")async def main():async with Client("http://localhost:8080") as client:# 注册回调client.register_progress_callback(progress_callback)# 调用可能产生进度更新的工具result = await client.tools.call("process_large_file", filename="data.csv")print(f"处理结果: {result}")

4.2 Transports:客户端传输

FastMCP客户端支持多种传输方式:

import asyncio
from fastmcp import Client
from fastmcp.client.transports import StreamableHttpTransportasync def main():# 创建HTTP传输transport = StreamableHttpTransport(base_url="http://localhost:8080")# 使用指定传输创建客户端async with Client(transport=transport) as client:result = await client.tools.call("hello", name="世界")print(result)

对于测试,可以使用内存传输:

import asyncio
from fastmcp import FastMCP, Client
from fastmcp.client.transports import FastMCPTransport# 创建服务器
mcp = FastMCP(name="TestServer")@mcp.tool()
def echo(message: str) -> str:return f"回声: {message}"async def main():# 创建内存传输transport = FastMCPTransport(mcp=mcp)# 使用内存传输创建客户端async with Client(transport=transport) as client:result = await client.tools.call("echo", message="测试消息")print(result)  # 输出: 回声: 测试消息

FastMCP支持的主要传输类型包括:

  • StreamableHttpTransport:用于HTTP连接(推荐用于远程服务器)
  • SSETransport:用于SSE连接(旧版选项)
  • FastMCPTransport:用于内存中测试
  • UvxStdioTransport/NpxStdioTransport:用于本地服务器

5. Patterns模块:高级使用模式

Patterns模块提供了一系列高级使用模式和集成方案。

5.1 Decorating Methods:装饰方法模式

在类中使用FastMCP装饰器需要特别注意:

from fastmcp import FastMCPmcp = FastMCP(name="ClassMethodsDemo")class Calculator:def __init__(self, precision: int = 2):self.precision = precision# 不要直接装饰实例方法def add_wrong(self, a: float, b: float) -> float:"""这种方式会导致错误,因为装饰器在实例存在前捕获方法"""return round(a + b, self.precision)# 正确方式:使用静态方法或类方法@staticmethod@mcp.tool()def add(a: float, b: float, precision: int = 2) -> float:"""正确方式:使用静态方法并将实例属性作为参数传递"""return round(a + b, precision)# 另一种方式:工厂函数@classmethoddef register_methods(cls, server: FastMCP):"""使用工厂方法注册实例方法"""calculator = cls()@server.tool()def multiply(a: float, b: float) -> float:return round(a * b, calculator.precision)return calculator# 注册方法
calc = Calculator.register_methods(mcp)

5.2 HTTP Requests:访问HTTP请求信息

在FastMCP服务器中访问HTTP请求信息:

from fastmcp import FastMCP
from fastmcp.server.dependencies import get_http_request
from starlette.requests import Requestmcp = FastMCP(name="HTTPRequestDemo")@mcp.tool()
async def user_agent_info(request: Request = get_http_request()) -> dict:"""返回有关客户端的信息。Args:request: HTTP请求对象(自动注入)Returns:客户端信息"""return {"user_agent": request.headers.get("user-agent", "未知"),"client_ip": request.client.host if request.client else "未知","request_path": request.url.path,"query_params": dict(request.query_params)}

5.3 OpenAPI:从OpenAPI生成服务器

FastMCP可以从OpenAPI规范自动生成MCP服务器:

import httpx
from fastmcp import FastMCP# 创建API客户端
api_client = httpx.AsyncClient(base_url="https://api.example.com")# 加载OpenAPI规范
openapi_spec = {"openapi": "3.0.0","info": {"title": "示例API", "version": "1.0.0"},"paths": {"/users": {"get": {"summary": "获取用户列表","operationId": "getUsers","responses": {"200": {"description": "成功响应","content": {"application/json": {}}}}}},"/users/{userId}": {"get": {"summary": "获取用户详情","operationId": "getUserById","parameters": [{"name": "userId","in": "path","required": True,"schema": {"type": "integer"}}],"responses": {"200": {"description": "成功响应","content": {"application/json": {}}}}}}}
}# 从OpenAPI规范创建MCP服务器
mcp = FastMCP.from_openapi(openapi_spec=openapi_spec,client=api_client
)

5.4 FastAPI:从FastAPI应用生成服务器

FastMCP可以从FastAPI应用自动生成MCP服务器:

from fastapi import FastAPI, Path
from fastmcp import FastMCP# 创建FastAPI应用
app = FastAPI(title="用户API")@app.get("/users")
async def get_users():"""获取所有用户列表"""return [{"id": 1, "name": "张三"},{"id": 2, "name": "李四"}]@app.get("/users/{user_id}")
async def get_user(user_id: int = Path(..., description="用户ID")):"""获取特定用户信息"""users = {1: {"id": 1, "name": "张三", "email": "zhang@example.com"},2: {"id": 2, "name": "李四", "email": "li@example.com"}}if user_id in users:return users[user_id]return {"error": "用户不存在"}# 从FastAPI应用创建MCP服务器
mcp = FastMCP.from_fastapi(app)

5.5 Contrib Modules:贡献模块

FastMCP包含一个contrib包,其中包含社区贡献的扩展模块:

from fastmcp import FastMCP
from fastmcp.contrib import my_module  # 假设存在这样的贡献模块mcp = FastMCP(name="ContribDemo")# 使用贡献模块的功能
my_module.setup(mcp)

5.6 Testing:测试MCP服务器

FastMCP提供了测试MCP服务器的工具和模式:

import pytest
from fastmcp import FastMCP, Client
from fastmcp.client.transports import FastMCPTransport# 创建要测试的服务器
@pytest.fixture
def mcp_server():mcp = FastMCP(name="TestServer")@mcp.tool()def add(a: float, b: float) -> float:return a + breturn mcp# 创建客户端测试夹具
@pytest.fixture
async def client(mcp_server):transport = FastMCPTransport(mcp=mcp_server)async with Client(transport=transport) as client:yield client# 编写测试
async def test_add_tool(client):result = await client.tools.call("add", a=2, b=3)assert result == 5

总结

FastMCP是一个强大而灵活的Python库,为开发者提供了构建符合MCP规范的服务器和客户端的简便方法。通过其简洁的API和丰富的功能,FastMCP使得为大语言模型创建上下文和工具服务变得前所未有的简单。

无论您是想为LLM提供数据访问能力,还是想让它们能够执行特定操作,FastMCP都能满足您的需求。随着AI应用的不断发展,FastMCP将成为连接大语言模型与外部世界的重要桥梁。

通过本文的介绍,希望您已经对FastMCP有了全面的了解,并能够开始使用它来构建自己的MCP服务。随着FastMCP 2.0的持续发展,我们可以期待更多强大功能的加入,进一步扩展大语言模型的能力边界。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake基础:CMakeLists.txt 文件结构和语法

目录 1.CMakeLists.txt基本结构 2.核心语法规则 3.关键命令详解 4.常用预定义变量 5.变量和缓存 6.变量作用域与传递 7.注意事项 1.CMakeLists.txt基本结构 CMakeLists.txt 是 CMake 构建系统的核心配置文件,采用命令式语法组织项目结构和编译流程。主要用于…

战略-2.1 -战略分析(PEST/五力模型/成功关键因素)

战略分析路径,先宏观(PEST)、再产业(产品生命周期、五力模型、成功关键因素)、再竞争对手分析、最后企业内部分析。 本文介绍:PEST、产品生命周期、五力模型、成功关键因素、产业内的战略群组 一、宏观环境…

深入理解设计模式:工厂模式、单例模式

深入理解设计模式:工厂模式、单例模式 设计模式是软件开发中解决常见问题的可复用方案。本文将详细介绍两种种重要的创建型设计模式:工厂模式、单例模式,并提供Java实现示例。 一、工厂模式 工厂模式是一种创建对象的设计模式,…

Jenkins 2.426.2配置“构建历史的显示名称,加上包名等信息“

Jenkins 2.426.2配置“构建历史的显示名称,加上包名等信息" 需求:想要在构建历史中展示,本次运行的是哪个版本或哪个包 操作步骤: 1、先安装插件Build Name and Description Setter 2、Set Build Name 3、构建历史处查看展示 插件特性说明 安装依赖:需手动安装 Build …

为何在VMware中清理CentOS虚拟机后,本地磁盘空间未减少的问题解决

文章目录 前言原因:虚拟机磁盘,到底是咋回事?为啥空间没变小? 解决方案 前言 在使用VMware运行CentOS虚拟机时,你是否曾遇到过这样的情况:明明在虚拟机内删除了大量文件,rm -rf 后发现并没什么用&#xff…

Development靶机通关笔记

一、主机发现 arp-scan -l靶机ip为192.168.55.152 二、端口扫描、目录枚举、漏洞扫描、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.152发现靶机没有开放80端口,开放的是8080端口 UDP端口扫描 nmap -sU --min-rate 10000 -p- 192.168.55.152靶…

自然语言处理核心技术:词向量(Word Embedding)解析

自然语言处理核心技术:词向量(Word Embedding)全面解析 在自然语言处理(NLP)领域,如何让计算机理解人类语言的语义一直是核心挑战。词向量(Word Vector),又称词嵌入&…

【Matlab】雷达图/蛛网图

文章目录 一、简介二、安装三、示例四、所有参数说明 一、简介 雷达图(Radar Chart)又称蛛网图(Spider Chart)是一种常见的多维数据可视化手段,能够直观地对比多个指标并揭示其整体分布特征。 雷达图以中心点为原点&…

Vue3实现轮播表(表格滚动)

在这之前,写过一篇Vue2实现该效果的博文:vue-seamless-scroll(一个简单的基于vue.js的无缝滚动) 有兴趣也可以去看下,这篇是用vue3实现,其实很简单,目的是方便后面用到直接复制既可以了。 安装: <

安卓开发用到的设计模式(1)创建型模式

安卓开发用到的设计模式&#xff08;1&#xff09;创建型模式 文章目录 安卓开发用到的设计模式&#xff08;1&#xff09;创建型模式1. 单例模式&#xff08;Singleton Pattern&#xff09;2. 工厂模式&#xff08;Factory Pattern&#xff09;3. 抽象工厂模式&#xff08;Abs…

后端开发概念

1. 后端开发概念解析 1.1. 什么是服务器&#xff0c;后端服务 1.1.1. 服务器 服务器是一种提供服务的计算机系统&#xff0c;它可以接收、处理和响应来自其他计算机系统&#xff08;客户端&#xff09;的请求。服务器主要用于存储、处理和传输数据&#xff0c;以便客户端可以…

Spring AI 源码解析:Tool Calling链路调用流程及示例

Tool工具允许模型与一组API或工具进行交互&#xff0c;增强模型功能&#xff0c;主要用于&#xff1a; 信息检索&#xff1a;从外部数据源检索信息&#xff0c;如数据库、Web服务、文件系统或Web搜索引擎等 采取行动&#xff1a;可用于在软件系统中执行特定操作&#xff0c;如…

Spyglass:跨时钟域同步(长延迟信号)

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 长延迟信号方案用于控制或数据信号跨时钟域同步&#xff0c;该方案将使用quasi_static约束的跨时钟域信号视为已同步&#xff0c;如图1所示。 // test.sgdc q…

Linux云计算训练营笔记day13【CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM】

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目录 Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find练习2.vim高级使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…

网络流量分析工具ntopng的安装与基本使用

网络流量分析工具ntopng的安装与基本使用 一、ntopng基本介绍1.1 ntopng简介1.2 主要特点1.3 使用场景 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、安装ntopng工具3.1 官网地址3.2 配置软件源3.3 添加软件源3.4 安装ntopng 四、ntopng的基本配置4.1 修改配置文件4.…

数据的获取与读取篇---常见的数据格式JSON

文件格式 假如你有一份想分析的数据文件,获得文件后下一步就是用代码读取它。不同的文件格式有不同的读取方法。所以读取前了解文件格式也很重要。你可能见过非常多的文件格式,例如TXT、MP3、PDF、JPEG等等。 一般可以通过文件的后缀来分辨文件的格式,例如TXT格式,一般保存…

人工智能发展

探秘人工智能领域的热门编程语言与关键知识 在当今科技飞速发展的时代&#xff0c;人工智能已渗透到生活的各个角落&#xff0c;从智能语音助手到精准的推荐系统&#xff0c;从自动驾驶汽车到医疗影像诊断&#xff0c;人工智能正以前所未有的速度改变着世界。而在这背后&#x…

超全GPT-4o 风格提示词案例,持续更新中,附使用方式

本文汇集了各类4o风格提示词的精选案例&#xff0c;从基础指令到复杂任务&#xff0c;从创意写作到专业领域&#xff0c;为您提供全方位的参考和灵感。我们将持续更新这份案例集&#xff0c;确保您始终能够获取最新、最有效的提示词技巧。 让我们一起探索如何通过精心设计的提…

Vue3响应式数据: 深入分析Ref与Reactive

Vue3响应式数据: 深入分析Ref与Reactive 介绍 作为一个流行的前端框架&#xff0c;其响应式数据系统是其核心特性之一。在Vue3中&#xff0c;我们可以使用Ref和Reactive两种方式来创建响应式数据。本文将深入分析Ref与Reactive&#xff0c;帮助读者更好地理解Vue3的响应式数据系…

云计算,大数据,人工智能

1. 云计算&#xff1a;弹性资源与分布式计算 案例&#xff1a;基于AWS EC2的动态资源扩展 场景&#xff1a;电商网站在“双十一”期间流量激增&#xff0c;需要临时扩容服务器资源。 代码&#xff1a;使用AWS Boto3库动态启动EC2实例 import boto3# 创建EC2客户端 ec2 boto…