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

什么是MCP(Model Context Protocol)?对话、意图识别、服务调用和上下文管理

什么是MCP?

在这里插入图片描述

MCP(Model Context Protocol) 是一种专为人工智能模型设计的通信协议,旨在解决复杂 AI 系统中多个模型或组件之间的协同、状态管理和资源优化问题。它尤其适用于大型语言模型(LLM)、多模态系统及分布式 AI 架构,通过标准化交互方式提升效率、安全性和可扩展性。


核心功能

  1. 上下文状态管理
    动态上下文传递:允许模型在处理请求时保留和共享关键信息(如用户历史对话、当前任务状态),确保连贯性。
    版本控制:管理不同模型版本的上下文兼容性,避免因升级导致的逻辑冲突。

  2. 请求路由与负载均衡
    智能分发:根据请求类型(如文本生成、图像分类)、模型专长(如数学推理、创意写作)动态分配任务。
    分布式处理:支持跨服务器、跨设备并行处理,降低延迟并提高吞吐量。

  3. 安全与隐私保护
    数据隔离:通过加密通道和访问控制确保敏感数据(如用户隐私信息)仅在授权范围内流动。
    审计日志:记录模型交互轨迹,便于合规性检查和责任追溯。

  4. 资源优化
    动态资源调配:根据负载自动调整模型实例数量,节省计算成本(如 Kubernetes 集群集成)。
    缓存机制:对高频查询结果进行缓存,减少重复计算。

  5. 协议扩展性
    模块化设计:支持插件式扩展(如新增自定义指令处理器或集成特定工具API)。
    多模态支持:原生适配文本、图像、音频等多种数据格式,简化多模态应用开发。


官网:https://modelcontextprotocol.io/introduction

在这里插入图片描述

典型应用场景

多模态交互系统
在 ChatGPT-4 等系统中,MCP 可协调文本生成模型、视觉理解模型和语音合成模块,实现“看图说话”或“视频摘要生成”等复杂流程。

分布式训练与推理
在联邦学习场景中,MCP 优化跨节点模型参数同步,确保训练效率和数据隐私。

自动化运维
自动检测模型性能下降(如准确率骤降),触发热更新或回滚机制,减少人工干预。


在这里插入图片描述

技术优势

灵活性:支持异步/同步通信模式,适应实时性与离线场景需求。
高效性:基于二进制协议(如 Protobuf/FlatBuffers)减少传输开销,对比传统 REST API 效率提升 30%+。
生态兼容:提供 SDK 和中间件(如 TensorFlow Serving 插件),无缝对接主流框架(PyTorch, Hugging Face)。


在这里插入图片描述

示例:智能客服系统

  1. 用户提问:“我的订单 12345 明天能发货吗?”(文本输入)
  2. MCP 路由
    • 调用 NLP 模型提取订单号和时间关键词。
    • 将订单号转发至订单数据库 API(通过安全通道)。
    • 调用物流预测模型判断发货状态。
  3. 上下文融合:将物流结果与用户历史偏好(如偏爱快递公司 A)结合,生成个性化回复。
  4. 反馈闭环:记录用户对回复的满意度,动态优化后续响应策略。

未来趋势

量子安全:集成抗量子加密算法,应对未来算力威胁。
AI 自治理:通过强化学习动态优化协议参数(如路由策略),实现自我进化。
标准化生态:推动成为 AI 通信的事实标准(类似 HTTP 对 Web 的意义)。

MCP 正在重塑 AI 开发的基础设施层,为构建更智能、可靠和高效的 AI 应用提供底层支撑。

在这里插入图片描述

智能客服系统完整调用示例

以下是一个基于 Python 的 Model Context Protocol (MCP) 框架的智能客服系统完整调用示例。该示例包含多轮对话、意图识别、服务调用和上下文管理,代码模块化并附有详细注释:


系统架构

  1. 核心组件
    ContextManager:管理用户会话上下文(历史消息、订单号、偏好等)。
    IntentClassifier:自然语言理解模型,识别用户意图(如 “查询订单”、“投诉建议”)。
    ServiceRouter:根据意图路由到对应服务(如订单查询 API、天气查询模型)。
    DialoguePolicy:对话策略模型,决定回复策略(如确认信息、追问细节)。
    CacheManager:缓存高频查询结果(如城市天气、热门商品库存)。

  2. 集成服务
    • 模拟订单数据库 API(check_order_status)。
    • 模拟天气查询 API(get_weather)。


代码实现

import json
from abc import ABC, abstractmethod
from typing import Dict, Any, Optional
from datetime import datetime# ========== MCP 核心组件 ==========class ContextManager(ABC):"""管理会话上下文(用户历史、当前状态)"""@abstractmethoddef get(self, key: str) -> Optional[Any]:pass@abstractmethoddef set(self, key: str, value: Any):passclass InMemoryContextManager(ContextManager):def __init__(self):self.context = {}def get(self, key: str):return self.context.get(key)def set(self, key: str, value: Any):self.context[key] = valueclass IntentClassifier(ABC):"""识别用户意图"""@abstractmethoddef classify_intent(self, text: str) -> str:passclass SimpleIntentClassifier(IntentClassifier):def classify_intent(self, text: str) -> str:# 简化意图识别逻辑(实际应使用 NLP 模型)if "订单" in text:return "CHECK_ORDER"elif "天气" in text:return "GET_WEATHER"elif "投诉" in text:return "COMPLAINT"else:return "GENERAL"class ServiceRouter(ABC):"""根据意图路由到对应服务"""@abstractmethoddef route_service(self, intent: str, params: Dict[str, Any]) -> Dict[str, Any]:passclass MultiServiceRouter(ServiceRouter):def __init__(self):self.services = {"CHECK_ORDER": self.check_order_status,"GET_WEATHER": self.get_weather,"COMPLAINT": self.handle_complaint}def check_order_status(self, params: Dict[str, Any]) -> Dict[str, Any]:# 模拟订单查询 APIorder_id = params.get("order_id")return {"status": "已发货","tracking_number": "123456789","expected_delivery": datetime.now().strftime("%Y-%m-%d %H:%M:%S")}def get_weather(self, params: Dict[str, Any]) -> Dict[str, Any]:# 模拟天气查询 APIcity = params.get("city")return {"city": city,"temperature": "22°C","condition": "晴朗"}def handle_complaint(self, params: Dict[str, Any]) -> Dict[str, Any]:return {"response": "我们已收到您的反馈,客服人员会尽快联系您。"}class CacheManager:"""缓存高频查询结果(LRU 策略)"""def __init__(self, max_size=10):self.cache = {}self.max_size = max_sizedef get(self, key: str):return self.cache.get(key)def set(self, key: str, value):if len(self.cache) >= self.max_size:oldest_key = next(iter(self.cache))del self.cache[oldest_key]self.cache[key] = value# ========== 智能客服系统集成 ==========class SmartChatSystem:def __init__(self):self.context_manager = InMemoryContextManager()self.intent_classifier = SimpleIntentClassifier()self.service_router = MultiServiceRouter()self.cache_manager = CacheManager(max_size=5)def process_user_message(self, user_input: str) -> str:# 步骤 1: 获取上下文(如用户ID、历史订单)user_id = self.context_manager.get("user_id")print(f"[系统] 用户ID: {user_id}, 当前上下文: {self.context_manager.context}")# 步骤 2: 意图识别intent = self.intent_classifier.classify_intent(user_input)print(f"[系统] 意图分类结果: {intent}")# 步骤 3: 参数提取(示例:订单号、城市名)params = {"order_id": self._extract_order_id(user_input),"city": self._extract_city(user_input)}print(f"[系统] 提取参数: {params}")# 步骤 4: 检查缓存cache_key = f"{intent}:{json.dumps(params)}"cached_response = self.cache_manager.get(cache_key)if cached_response:print("[系统] 使用缓存响应")response = cached_responseelse:# 步骤 5: 调用服务service_response = self.service_router.route_service(intent, params)# 步骤 6: 更新上下文(如保存订单状态)if intent == "CHECK_ORDER":self.context_manager.set("current_order_status", service_response)# 步骤 7: 写入缓存self.cache_manager.set(cache_key, service_response)response = service_response# 步骤 8: 生成自然语言回复return self._generate_response(user_input, response)def _extract_order_id(self, text: str) -> Optional[str]:# 简化订单号提取(正则表达式可扩展)match = re.search(r"订单号(\d+)", text)return match.group(1) if match else Nonedef _extract_city(self, text: str) -> Optional[str]:# 简化城市名提取cities = ["北京", "上海", "广州", "深圳"]for city in cities:if city in text:return cityreturn Nonedef _generate_response(self, user_input: str, service_response: Dict[str, Any]) -> str:# 简化回复生成(实际应使用模板引擎或 LLM)response_template = {"CHECK_ORDER": f"您的订单 {service_response['status']},物流单号:{service_response['tracking_number']},预计送达时间:{service_response['expected_delivery']}。","GET_WEATHER": f"{service_response['city']}天气:{service_response['temperature']}{service_response['condition']}","DEFAULT": "抱歉,我暂时无法理解您的需求,请重新描述。"}return response_template.get(intent, "默认回复")# ========== 客户端调用示例 ==========def main():system = SmartChatSystem()# 模拟用户会话(多轮对话)conversation = ["你好,我是用户123,想查订单12345的状态。","今天北京的天气怎么样?","投诉一下物流速度太慢!"]for msg in conversation:# 设置用户ID到上下文(仅首次需要)if msg == conversation[0]:system.context_manager.set("user_id", "123")# 处理用户消息response = system.process_user_message(msg)print(f"\n用户: {msg}")print(f"客服回复: {response}\n")if __name__ == "__main__":import remain()

代码说明

  1. 上下文管理
    InMemoryContextManager 记录用户ID、订单状态等信息,支持多轮对话连续性。
    • 示例:用户首次查询订单后,后续投诉会自动关联到之前的订单状态。

  2. 意图识别
    SimpleIntentClassifier 使用关键词匹配识别意图(实际可替换为BERT等模型)。

  3. 服务路由
    MultiServiceRouter 根据意图调用不同服务(订单查询、天气查询、投诉处理)。
    • 模拟API调用返回结构化数据(如物流信息、天气数据)。

  4. 缓存机制
    • 对频繁查询(如天气)缓存结果,避免重复调用外部服务。

  5. 回复生成
    • 根据服务响应和意图模板生成自然语言回复。


输出示例

用户: 你好,我是用户123,想查订单12345的状态。
客服回复: 您的订单 已发货,物流单号:123456789,预计送达时间:2023-10-05 12:00:00。用户: 今天北京的天气怎么样?
客服回复: 北京天气:22°C,晴朗。用户: 投诉一下物流速度太慢!
客服回复: 我们已收到您的反馈,客服人员会尽快联系您。

扩展建议

  1. 集成真实NLP模型
    • 使用Hugging Face Transformers部署意图分类器(如distilbert-base-uncased-finetuned-sst-2-english)。
    • 集成对话管理模型(如Facebook的BlenderBot)。

  2. 分布式部署
    • 使用RayKubernetes部署多个SmartChatSystem实例,通过Redis同步缓存和上下文。

  3. 监控与日志
    • 添加Prometheus监控指标(如意图识别准确率、API调用延迟)。
    • 使用ELK Stack记录用户会话日志。

  4. 安全性增强
    • 对敏感信息(如订单号)进行脱敏处理。
    • 通过JWT实现用户身份验证。


相关文章:

什么是MCP(Model Context Protocol)?对话、意图识别、服务调用和上下文管理

什么是MCP? MCP(Model Context Protocol) 是一种专为人工智能模型设计的通信协议,旨在解决复杂 AI 系统中多个模型或组件之间的协同、状态管理和资源优化问题。它尤其适用于大型语言模型(LLM)、多模态系统及…...

第二十七篇 数据仓库与维度建模指南:从理论到实战的进阶之路

声明:文章内容仅供参考,需仔细甄别。文中技术名称属相关方商标,仅作技术描述;代码示例为交流学习用途,部分参考开源文档(Apache 2.0/GPLv3);案例数据已脱敏,技术推荐保持…...

定时任务引起的死锁

定时任务引起的死锁 前言:Java面试题 死锁的场景有哪些?你们是怎么解决的? 锁有哪些特性? 问题现象 1,文件上传报当前功能正在使用,请稍后再试 2,其他账号登录系统,登录不上去&a…...

NewStar CTF web wp

文章目录 week1headach3会赢吗智械危机谢谢皮蛋PangBai 过家家(1) week3include meblindsql1臭皮的计算机臭皮踩踩背这照片是你吗 week4Pangbai过家家四blindsql2chocolateezcmsssezpollute隐藏的密码 weeek5pangbai过家家(5)redissqlshell臭皮吹泡泡臭皮…...

Docker运行postgreSQL,由于异常启动或者退出后,提示could not locate a valid checkpoint record

pg_resetwal 是 PostgreSQL 的“急救工具”,用于在极端情况下修复因 WAL 或控制文件损坏导致的启动问题。 但需注意: 风险极高,可能导致数据不一致。必须立即转储并恢复,避免直接在修复后的数据库中执行写操作。仅在备份后使用&…...

Leetcode 刷题笔记1 图论part01

图论的基础知识: 图的种类: 有向图(边有方向) 、 无向图(边无方向)、加权有向图(边有方向和权值) 度: 无向图中几条边连接该节点,该节点就有几度&#xff1…...

文件管理系统

前言:之前我们讨论的是被打开文件的管理,那么未被打开的文件是如何管理的呢? 1.认识磁盘设备 1.1磁盘的物理结构 磁盘是由盘片(盘面,扇区,磁道,柱面),磁头&#xff0c…...

荣耀手机卸载应用商店、快应用中心等系统自带的

1.下载abd ADB Download - Get the latest version of ADB and fastboot 2.手机打开开发者选项 3.手机接电脑打开USB调试 4.下载MT管理器查看系统包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 这边是…...

结合基于标签置信度的特征选择方法用于部分多标签学习-简介版

假设 部分多标签学习(PML)假设:假设样本的标签集合中存在伪正标签,即某些标签可能是错误的。目标是从候选标签集中识别出真实标签。特征与标签的关系假设:假设不同的标签对应的特征子空间可能是不同的,而不…...

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐 我的版本:Word 2021 如需快速查看关键步骤,请直接阅读标红部分。 如果遇到无法调整的情况,可以直接下载我的示例文档进行参考:花括号和其他的示例公式.…...

基于香橙派 KunpengPro学习CANN(2)——Ascend Extension for PyTorch 配置与安装

将 PyTorch 网络迁移到昇腾平台并执行训练或推理,直接使用昇腾提供的构图接口构图。Ascend Extension for PyTorch插件用于适配PyTorch框架,可以使用昇腾AI处理器的算力。 1 pip 安装 # 下载PyTorch安装包 wget https://download.pytorch.org/whl/cpu/…...

【备赛】遇到的小问题-1

问题描述-1 想实现的功能是,通过ADC实时测量某引脚的电压及其占空比。 可以通过旋转电位器,更改其电压。 首先我定义了这几个变量 uint32_t adc_value;//HAL库函数里面得出的采样值(实时更新) uint32_t percentage6;//占空比,随着adc_val…...

Browser Use的安装和使用

文章目录 一、介绍二、安装教程1、使用Conda创建虚拟环境2、激活环境3、安装browser use4、安装Playwright5、克隆git仓库6、安装项目的依赖 三、使用教程1、启动WebUI2、案例13、案例2 一、介绍 背景 Browser Use:用AI控制你的浏览器,你可以使用它帮你…...

碰一碰发视频saas系统技术源头一站式开发文档

碰一碰发视频系统技术源头一站式开发文档 一、引言 在数字化信息传播高速发展的当下,如何让视频分享更便捷、高效,成为商家和开发者们关注的焦点。“碰一碰发视频”系统以其独特的交互方式和强大的功能优势,为视频分享领域带来了革命性变革。…...

Spring Boot 静态访问配置属性的解决方案

前言 在Spring Boot开发中,静态访问配置信息是一个常见需求,尤其是在工具类、常量类或非Bean类中直接获取配置值。 问题背景 假设我们的应用需要从application.yml中读取配置项app.logotype,并在工具类、静态方法或非Bean类中直接访问该值。…...

NLP高频面试题(四)——BN和LN的区别与联系,为什么attention要用LN

在深度学习模型中,Normalization是一种极为重要的技巧,Batch Normalization(BN)和Layer Normalization(LN)是其中最为常用的两种方法。然而,二者在实际应用中有着明显的区别与联系,尤…...

深度学习定义与分类【详细易懂 初学者友好~】

深度学习(Deep Learning)是机器学习的一个子领域,它基于人工神经网络(Artificial Neural Networks,ANN)的理论和架构,通过构建多层(即“深度”)的神经网络结构来学习数据…...

二、小白学JAVA-认识数据类型【变量】

1、实际案例类比 初中以上数学,就知道有有理数、正数、负数、0、小数、大写的数字、语文。 2、数据类型介绍 public class Main {public static void main(String[] args) {// 数据类型byte i_byte 12; // 标识数据范围小,但是节省内存>网络传输…...

UNI-APP uts插件 支持ANDROID 监听手机状态

插件地址 https://ext.dcloud.net.cn/plugin?id22646 模块 import {startPhoneListener,stopPhoneListener,checkIsAutoRecord,toCallAutoRecorderPage,navigateToCallRecordingSettings,jumpToPermissionPage,makePhoneCall,allRecorderFilesAction,registerSmsReceiver,} f…...

AI入门7:python三种API方式调用本地Ollama+DeepSeek

回顾 书接上篇:各种方式搭建了本地知识库: AI入门:AI模型管家婆ollama的安装和使用-CSDN博客 AI入门2:本地AI部署,用ollama部署deepseek(私有化部署)-CSDN博客 AI入门3:给本地d…...

SQL SERVER日常运维巡检系列—结构设计

前言   做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。   本系列旨在解决一些常见的困扰: 不知道巡检哪些东西 不知道怎么样便捷体检 机器太多体检麻烦 生成报告…...

前端剪贴板操作:从传统方法到现代方案

一、传统复制实现原理 这个copy函数展示了经典的剪贴板操作方案: function copy(color) {const input document.createElement("input");input.value color;document.body.appendChild(input);input.select();document.execCommand("copy")…...

E1-数组的平衡点2(前缀和)

题目描述 给定一个长度为 n 的数组 nums,若其中存在某个位置 index,使得 [0, index - 1] 范围的元素之积 等于 [index 1, n - 1] 范围的元素之积,则称 index 位置是数组 nums 的平衡点。 请你找出数组 nums 的平衡点位置,若存在…...

【Maven-plugin】有多少官方插件?

之前疏理了容器底层原理,现在回归主题,在阅读 next-public时发现 parent 将从多基础插件集成到 parent 仓库中单独维护,数量众多,故在此将所有插件分类整理。以达观其全貌,心中有数。 以下是 Apache Maven 官方维护的核心插件列表…...

10-BST(二叉树)-建立二叉搜索树,并进行前中后遍历

题目 来源 3540. 二叉搜索树 - AcWing题库 思路 建立二叉搜索树(注意传参时用到了引用,可以直接对root进行修改),同时进行递归遍历;遍历可以分前中后三种写,也可以用标志来代替合在一起。其余详见代码。…...

企业培训APP如何迈向AI时代?智能化在线教育系统源码开发解析

2025年,AI驱动的企业培训系统将成为主流,企业可以借助智能化在线教育系统源码构建高效的培训体系,提高员工学习效率,优化培训成本。本文将详细解析AI如何赋能企业培训,并探讨智能化在线教育系统源码的关键技术与开发实…...

CXSMILES介绍

Chemaxon 扩展 SMILES/SMARTS 用于在 SMILES 字符串后存储分子的特殊特征。任何信息都可以存储在 SMILES 字符串后,只要它们由空格或制表符字符分隔,因为 SMILES 解析器会忽略这些信息,或者将它们作为注释使用。扩展特征以以下格式存储: SMILES_String |<feature1>,…...

麒麟服务器操作系统Sqlite部署手册

软件简介 SQLite****介绍 SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。…...

【GPT-SoVITS】GPT-SoVITSAPI调用:让二次元角色开口说话,打造专属语音合成系统

介绍 GPT-SoVITS 是一个强大的语音合成系统&#xff0c;它结合了 GPT&#xff08;生成式预训练转换器&#xff09;和 SoVITS&#xff08;Soft-VC VITS&#xff09;两种先进技术&#xff1a; GPT: 负责文本理解和语音生成的控制&#xff0c;能够根据上下文生成自然的语音内容S…...

Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中&#xff0c;需求文档中的图片&#xff08;如界面设计图、流程图&#xff09;往往是测试用例生成的重要参考。然而&#xff0c;手动提取图片并识别内容不仅耗时&#xff0c;还容易出错。本文将通过一个自研小工具&#xff0c;结合 PaddleOCR 和大模型&#xff0c;自…...

防火墙双机热备(主备分担)

目录 引言 主备备份实验 1、基本配置 2、双机热备配置 查看双机热备状态 主备切换 路由影响 引言 传统VRRP方式无法实现主、备用防火墙状态信息和多组VRRP状态的一致性&#xff0c;所以可能会导致流量的回包不从首包通过的防火墙回包&#xff0c;防火墙会因为状态检测机…...

记Redis集群挂掉后,尝试重启集群但失败问题

前期尝试解决&#xff1a;将redis集群中所有redis节点都关闭后&#xff0c;又重新启动服务并且试图用命令建立集群通讯&#xff0c;报错[ERR] Node 192.168.75.128:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some…...

c++--vector

1.定义vector vector的定义分为四种 (1)vector() ——————无参构造 (2)vector(size_t n,const value_type& val value_type()) ——————构造并初始化n个val (3)vector(const vector& v1) ———————拷贝构造 (4)vector(inputiterator first,inpu…...

计算机视觉——深入理解卷积神经网络与使用卷积神经网络创建图像分类算法

引言 卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称 CNNs&#xff09;是一种深度学习架构&#xff0c;专门用于处理具有网格结构的数据&#xff0c;如图像、视频等。它们在计算机视觉领域取得了巨大成功&#xff0c;成为图像分类、目标检测、图像分…...

c++题目_翻译家

题目描述 grang是一个帅气的翻译家他的任务是把摩斯密码翻译成2进制数&#xff0c;他要上课所以想请你帮他一下&#xff0c;他会给你 一段摩斯密码有“.”和“-”组成让你输出个二进制数。 翻译规则是&#xff1a;不用管-&#xff0c;看每一个.有几个"."组成如果有奇…...

【解析 ECharts 图表样式继承与自定义】

解析 ECharts 图表样式继承与自定义 本文将详细介绍 ECharts 的样式继承机制&#xff0c;从其原理、演进到实际应用场景&#xff0c;并结合实际开发经验分享一些实战技巧&#xff0c;帮助开发者在构建数据可视化页面时实现更统一、灵活的样式管理与高效开发。 一、背景与来龙…...

Python IP解析器 ip2region使用

说明&#xff1a;最近需要在python项目内使用IP定位所在城市的需求&#xff0c;没有采用向外部ISP服务商API请求获取信息的方案&#xff0c;则翻了翻&#xff0c;在搞Java时很多的方案&#xff0c;在Python端反而可选择范围很小。 # 示例查询 ips ["106.38.188.214"…...

Java Stream 流的介绍

介绍 在 Java 8 中&#xff0c;引入了 Stream API&#xff0c;它为处理集合&#xff08;如 List、Set 等&#xff09;提供了一种更简洁、声明式的方式。Stream 流的设计目标是支持对数据集合的高效操作&#xff0c;尤其是能够进行链式操作、并行处理等&#xff0c;极大地提升了…...

C++从入门到入土(八)——多态的原理

目录 前言 多态的原理 动态绑定与静态绑定 虚函数表 小结 前言 在前面的文章中&#xff0c;我们介绍了C三大特性之一的多态&#xff0c;我们主要介绍了多态的构成条件&#xff0c;但是对于多态的原理我们探讨的是不够深入的&#xff0c;下面这这一篇文章&#xff0c;我们将…...

BFS,DFS带图详解+蓝桥杯算法题+经典例题

1.BFS和DFS的定义与实现方式 1.1 深度优先搜索&#xff08;DFS&#xff09; 基本概念&#xff1a;DFS 是一种用于遍历或搜索图或树的算法。它从起始节点开始&#xff0c;沿着一条路径尽可能深地探索下去&#xff0c;直到无法继续或者达到目标节点&#xff0c;然后回溯到上一个…...

【RHCE实验】搭建主从DNS、WEB等服务器

目录 需求 环境搭建 配置nfs服务器 配置web服务器 配置主从dns服务器 主dns服务器 从dns服务器 配置客户端 客户端测试 需求 客户端通过访问 www.nihao.com 后&#xff0c;能够通过 dns 域名解析&#xff0c;访问到 nginx 服务中由 nfs 共享的首页文件&#xff0c;内容…...

有哪些开源的智慧园区项目?

作为专注于数字孪生技术的开发者团队&#xff0c;我们一直在数字孪生圈分享开源项目。但最近一次与AI助手Deepseek的对话&#xff0c;却让我们“又惊又喜”。 ——当询问“有哪些开源的智慧园区项目”时&#xff0c;Deepseek的回答中竟包含了我们自己的开源项目&#xff01; 这…...

prometheusalert对阿里云短信服务不适配问题处理

背景 想通过prometheusalert实现阿里云短信告警。结果在配置完altermanager和prometheusalert&#xff0c;以及阿里云短信服务中的各种签名和短信模板之后&#xff0c;在prometheusalert web ui上测试模板时一直报“模板变量JSON格式错误 或 JSON变量属性与模板占位符不一致”…...

NFC 碰一碰发视频源码搭建,支持OEM

一、引言 NFC&#xff08;Near Field Communication&#xff09;近场通信技术&#xff0c;以其便捷、快速的数据交互特性&#xff0c;正广泛应用于各个领域。其中&#xff0c;NFC 碰一碰发视频这一应用场景&#xff0c;为用户带来了新颖且高效的视频分享体验。想象一下&#x…...

浅谈鸿蒙跨平台开发框架ArkUI-X

之前写过使用uniapp的跨平台开发鸿蒙项目&#xff0c;今天分享一下开发体验更友好的跨平台开发框架ArkUI-X。 ArkUI-X看起来像是鸿蒙官方的框架&#xff0c;在DevEco中就可以安装和使用&#xff0c;而且会ArkUI就可以开发安卓和、iOS和鸿蒙三个平台的app&#xff0c;下面简单介…...

LLVM学习-- 构建和安装

一 LLVM版本 二 适用预构建的二进制文件安装LLVM 三 适用包管理器安装LLVM 四 从源码构建用于Linux的LLVM 五 从源码构建用于Windows和Visual Studio的LLVM 六 从源码构建用于MacOS 和XCode的LLVM 1.1 LLVM项目从10年前第一次发布到版本3.4&#xff0c;其SVN存储库包含了超过20…...

总结Solidity 的数据类型

数据类型 在 Solidity 中&#xff0c;类型系统非常丰富&#xff0c;主要分为 值类型&#xff08;Value Types&#xff09;和 引用类型&#xff08;Reference Types&#xff09;。此外&#xff0c;还有一些特殊类型和全局变量。 一.值类型 布尔型&#xff08;bool&#xff09…...

C# 中泛型(Generics)‌的核心概念

在 C# 中&#xff0c;‌泛型&#xff08;Generics&#xff09;‌ 是一种强大的编程特性&#xff0c;允许你编写可重用、类型安全的代码&#xff0c;而无需为不同类型重复编写相似的逻辑。泛型的核心思想是‌参数化类型‌&#xff0c;即通过占位符&#xff08;如 T&#xff09;表…...

ubuntu 根据src 包从新打包

下边以onnxruntime示例: 1. 安装必要的依赖 确保你的系统已安装 devscripts、dpkg-dev 和 build-essential&#xff1a; sudo apt update sudo apt install devscripts dpkg-dev build-essential equivs2. 解压源码 进入存放源码包的目录&#xff0c;并解压&#xff1a; #c…...

如何启用 HTTPS 并配置免费的 SSL 证书

引言 HTTPS 已成为现代网站安全性的基础要求。通过 SSL/TLS 证书对数据进行加密&#xff0c;不仅可以保护用户隐私&#xff0c;还能提升搜索引擎排名并增强用户信任。本指南将详细介绍如何通过 Lets Encrypt&#xff08;免费、自动化的证书颁发机构&#xff09;为您的网站启用…...