mcp+llm+rag
MCP+RAG简介
- 前言
- 一、MCP是什么?
- 二、MCP工作原理
- (1. MCP Hosts(主机)
- (2.MCP Clients(客户端)
- (3. MCP Servers(服务端)
- (4. Local Data Sources(本地数据源)
- (5. Remote Services(远程服务)
- 三, 模型选取_最终效果
- 1,异步llm
- 四,开源代码通读
- 总结
前言
MCP(Model Connectivity Protocol) 是连接 AI 助手与数据系统的新一代开放标准,旨在打破数据孤岛,让前沿模型能够更高效地访问内容存储库、业务工具和开发环境中的数据,从而生成更精准、更相关的响应。
当前,尽管 AI 助手的推理能力和生成质量快速提升,但其潜力仍受限于数据隔离问题——关键信息往往分散在孤立的遗留系统和封闭平台中。每接入一个新数据源,都需要定制化开发,导致扩展困难、维护成本高昂。
MCP 通过统一的协议解决了这一挑战。它标准化了 AI 系统与数据源的连接方式,取代了传统的碎片化集成模式,使开发者能够以简单、可靠的方式为模型提供实时数据支持。这一进步不仅降低了技术复杂性,还为 AI 应用的大规模落地铺平了道路,让智能助手真正融入企业工作流和终端用户体验。
mcp官网地址
一、MCP是什么?
模型上下文协议是一个开放标准,使开发人员能够在其数据源和人工智能工具之间建立安全的双向连接。架构很简单:开发人员可以通过MCP服务器公开他们的数据,也可以构建连接到这些服务器的AI应用程序
二、MCP工作原理
MCP遵循客户端-服务器架构(client-server),其中主机应用程序可以连接到多个服务器
(1. MCP Hosts(主机)
定义:直接面向用户的程序或工具(如 Claude Desktop、IDE 插件、AI 工具),通过 MCP 协议请求数据或服务。功能:为用户提供交互界面(如聊天窗口、代码提示)。将用户请求转换为 MCP 标准协议,发送给对应的 MCP Server。
(2.MCP Clients(客户端)
定义:协议客户端,负责与 MCP Server 建立并维护 1:1 的通信连接。功能:管理连接的生命周期(如重连、加密)。转发主机(Host)的请求,并返回服务器(Server)的响应。
(3. MCP Servers(服务端)
定义:轻量级程序,每个服务端通过 MCP 协议暴露特定能力(例如文件读取、API 调用)。特点:模块化:不同服务端专注不同功能(如一个处理本地文件,另一个连接数据库)。标准化:统一协议确保与客户端的兼容性。数据源:可安全访问 Local Data Sources 或 Remote Services。
(4. Local Data Sources(本地数据源)
定义:用户设备内的数据或服务(如文件、SQLite 数据库、系统剪贴板)。安全机制:MCP Server 需获得明确权限(如用户授权)才能访问。
(5. Remote Services(远程服务)
定义:通过互联网调用的外部系统(如 OpenAI API、GitHub 接口)。角色:MCP Server 作为中介,将主机请求转发至远程 API,并返回处理结果。
三, 模型选取_最终效果
使用mcp服务需要特定的模型如图
整理网页-整理总结-保存文件
查询本地文档-注入上下文
1,异步llm
异步对话型LLM(Large Language Model,大语言模型)是一种结合了异步编程和对话交互能力的人工智能系统,专门设计用于处理需要长时间运行或多步骤协作的任务。
异步对话型LLM与传统同步LLM的核心差异主要体现在执行方式、功能扩展性和适用场景三个方面。异步对话型LLM采用非阻塞式执行模式,通过事件循环机制实现任务的高效调度,在等待I/O操作时能够释放系统资源处理其他请求,这种特性使其特别适合需要协调多个外部工具或服务的复杂多步骤任务,如自动化数据处理流水线或智能助手场景。相比之下,传统同步LLM采用阻塞式执行,必须顺序完成每个操作,主要面向简单的单轮问答场景,缺乏对工具链的动态协调能力。在资源利用方面,异步架构能够显著提高CPU利用率,尤其在I/O密集型任务中表现突出,而同步模型在高并发场景下容易因线程阻塞导致资源浪费。总体而言,异步对话型LLM代表了更先进的架构设计,为构建具备工具调用能力的智能代理系统提供了技术基础,而传统同步LLM则更适合轻量级的即时响应需求。
四,开源代码通读
我读过了这篇代码对我有了很多启发
classDiagram
class Agent {
+mcp_clients: list[MCPClient]
+model: str
+llm: AsyncChatOpenAI
+system_prompt: str
+context: str
+init()
+cleanup()
+invoke(prompt: str)
}
class MCPClient {
+name: str
+command: str
+args: list[str]
+version: str
+init()
+cleanup()
+get_tools()
+call_tool(name: str, params: dict)
}
class AsyncChatOpenAI {+model: str+messages: list+tools: list[Tool]+system_prompt: str+context: str+chat(prompt: str, print_llm_output: bool)+get_tools_definition()+append_tool_result(tool_call_id: str, tool_output: str)
}class EembeddingRetriever {+embedding_model: str+vector_store: VectorStore+embed_query(query: str)+embed_documents(document: str)+retrieve(query: str, top_k: int)
}class VectorStore {+items: list[VectorStoreItem]+add(item: VectorStoreItem)+search(query_embedding: list[float], top_k: int)
}class ALogger {+prefix: str+title(text: str, rule_style: str)
}Agent --> MCPClient
Agent --> AsyncChatOpenAI
Agent ..> EembeddingRetriever
EembeddingRetriever --> VectorStore
Agent ..> ALogger
AsyncChatOpenAI ..> ALogger
通过调用上面几个类来对大模型进行异步处理
参考代码
其中我想要重点说明mcp代码
"""
MCP (Model Context Protocol) 客户端实现该模块提供了与MCP服务进行交互的异步客户端实现,支持通过标准输入输出(stdio)与外部工具服务通信。
基于 https://modelcontextprotocol.io/quickstart/client 修改实现。主要功能:
1. 管理MCP服务进程的生命周期
2. 提供工具发现和调用接口
3. 处理异步通信和资源清理典型使用场景:
- 在AI Agent系统中集成外部工具
- 构建可扩展的工具调用框架
"""import asyncio
from typing import Any, Optional
from contextlib import AsyncExitStackfrom mcp import ClientSession, StdioServerParameters, Tool
from mcp.client.stdio import stdio_clientfrom rich import print as rprintfrom dotenv import load_dotenvfrom augmented.mcp_tools import PresetMcpTools
from augmented.utils.info import PROJECT_ROOT_DIR
from augmented.utils.pretty import RICH_CONSOLE# 加载环境变量
load_dotenv()class MCPClient:"""MCP协议客户端实现属性:name: 客户端名称标识command: 启动服务端的命令args: 服务端启动参数version: 协议版本session: MCP会话连接exit_stack: 异步资源管理器tools: 可用的工具列表"""def __init__(self,name: str,command: str,args: list[str],version: str = "0.0.1",) -> None:"""初始化MCP客户端Args:name: 客户端名称(如"filesystem")command: 启动服务端的命令(如"python -m mcp.filesystem")args: 服务端启动参数列表version: 协议版本号"""self.session: Optional[ClientSession] = Noneself.exit_stack = AsyncExitStack()self.name = nameself.version = versionself.command = commandself.args = argsself.tools: list[Tool] = []async def init(self) -> None:"""初始化客户端连接"""await self._connect_to_server()async def cleanup(self) -> None:"""清理资源并关闭连接"""try:await self.exit_stack.aclose()except Exception:rprint("Error during MCP client cleanup, traceback and continue!")RICH_CONSOLE.print_exception()def get_tools(self) -> list[Tool]:"""获取可用工具列表Returns:当前可用的工具列表"""return self.toolsasync def _connect_to_server(self) -> None:"""建立与MCP服务端的连接1. 配置服务端参数2. 建立stdio通信管道3. 初始化MCP会话4. 获取可用工具列表"""server_params = StdioServerParameters(command=self.command,args=self.args,)# 建立stdio通信通道stdio_transport = await self.exit_stack.enter_async_context(stdio_client(server_params),)self.stdio, self.write = stdio_transport# 创建MCP会话self.session = await self.exit_stack.enter_async_context(ClientSession(self.stdio, self.write))# 初始化会话await self.session.initialize()# 获取并存储可用工具列表response = await self.session.list_tools()self.tools = response.toolsrprint("\nConnected to server with tools:", [tool.name for tool in self.tools])async def call_tool(self, name: str, params: dict[str, Any]) -> Any:"""调用指定工具Args:name: 工具名称params: 工具参数字典Returns:工具执行结果"""return await self.session.call_tool(name, params)async def example() -> None:"""使用示例演示如何初始化文件系统和网络请求工具客户端"""for mcp_tool in [PresetMcpTools.filesystem.append_mcp_params(f" {PROJECT_ROOT_DIR!s}"),PresetMcpTools.fetch,]:# 打印服务启动命令(调试用)rprint(mcp_tool.shell_cmd)# 创建并初始化客户端mcp_client = MCPClient(**mcp_tool.to_common_params())await mcp_client.init()# 获取并打印工具列表tools = mcp_client.get_tools()rprint(tools)# 清理资源await mcp_client.cleanup()if __name__ == "__main__":# 运行示例asyncio.run(example())
总结
简单来说mcp是使用异步操作对大模型的api进行异步操作,和mcp客户端来选择将要使用的tool。mcp是一种标准化的协议可以将模型与浏览器进行直接操作而没有那么多的限制了。
相关文章:
mcp+llm+rag
MCPRAG简介 前言一、MCP是什么?二、MCP工作原理(1. MCP Hosts(主机)(2.MCP Clients(客户端)(3. MCP Servers(服务端)(4. Local Data Sources(本地数据源&…...
Seata RM的事务提交与回滚源码解析
文章目录 前言一、RM提交事务二、RM回滚事务2.1、undo校验逻辑2.2、执行回滚逻辑 总结RM 的事务提交与回滚行为说明(基于 Seata AT 模式)1. 提交阶段(Phase Two Commit)2. 回滚阶段(Phase Two Rollback) 前…...
Ubuntu 24.04 完整Docker安装指南:从零配置到实战命令大全
Ubuntu 24.04 完整Docker安装指南:从零配置到实战命令大全 文章目录 Ubuntu 24.04 完整Docker安装指南:从零配置到实战命令大全1. 安装 Docker2. 配置 Docker 镜像加速器2.1 配置 Docker 镜像源2.2 重启 Docker 服务 3. Docker 常用命令3.1 Docker 常用命…...
设计模式简述(十七)备忘录模式
备忘录模式 描述组件使用 描述 备忘录模式用于将对象的状态进行保存为备忘录,以便在需要时可以从备忘录会对象状态;其核心点在于备忘录对象及其管理者是独立于原有对象之外的。 常用于需要回退、撤销功能的场景。 组件 原有对象(包含自身…...
【ICMP协议深度解析】从网络诊断到安全实践
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键报文类型说明协议版本对比 二、实战演示环境配置要求核心实验实现实验1:标准ping流程实验2:traceroute路径发现实验3:自定义ICMP…...
《应用开发突围指南:敏捷开发的实战精髓》
如何在应用开发中精准且深入地应用敏捷开发方法呢?让我们一同深入探索。 敏捷开发,绝非仅仅是一种开发流程,更是一种蕴含深刻智慧的理念与思维方式。它与传统开发模式有着本质的区别,传统开发模式如同严谨的线性旅程,…...
【Mytais系列】SqlSession
MyBatis 的 SqlSession 是框架的核心接口之一,它是应用程序与 MyBatis 交互的顶层 API,用于执行 SQL 命令、管理事务和访问数据库。以下是关于 SqlSession 的详细说明: 1. 核心功能 (1) 执行 SQL 操作 增删改查:通过方法如 sele…...
【掌握 DDL】:SQL 中的数据库与表管理
掌握 DDL:SQL 中的数据库与表管理 掌握 DDL:SQL 中的数据库与表管理数据库 DDL创建数据库查看数据库查看所有数据库查看数据库创建语句 进入数据库删除数据库备份数据库备份恢复 查看数据库连接深入理解数据库创建与删除数据库字符集与校验规则 表 DLL创…...
第43周:GAN总结
目录 摘要 Abstract 计算机视觉中的分类 架构变体 损失变体 时间序列中的GAN 连续型GAN 离散型GAN 总结 摘要 本周总结了GAN的变形,主要从图像处理和时间序列生成两部分入手,分别找出了其中比较经典的几种GAN变种模型,简单分析了…...
安卓基础(MediaProjection)
1. Display 类 作用:代表显示设备(手机屏幕、外接显示器)常用方法: display.getRotation() // 获取屏幕方向(横屏/竖屏) display.getRefreshRate() // 获取屏幕刷新率(如&…...
Android Compose 物联网(IoT)UI 组件库封装指南
Android Compose 物联网封装组件 在物联网(IoT)应用开发中,使用Jetpack Compose可以创建现代化、响应式的用户界面。以下是一些针对物联网场景的Compose封装组件思路和实现方法: 常用物联网组件封装 1. 设备状态指示器 Composable fun DeviceStatusI…...
实用在线工具箱OmniTools
简介 OmniTools 是一个自托管的网络应用,提供多种在线工具,旨在简化日常任务。它包含了一系列独立的、小型但实用的工具,涵盖了文件处理、文本操作、网络请求、系统监控等多个方面。 OmniTools 的设计理念是简单、易用、可定制,方…...
【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用。
【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用? 【AI大模型学习路线】第一阶段之大模型开发基础——第三章(大模型实操与API调用)单轮对话与多轮对话调用&…...
数字化转型进阶:26页华为数字化转型实践分享【附全文阅读】
本文分享了华为数字化转型的实践经验和体会。华为通过数字化变革,致力于在客户服务、供应链、产品管理等方面提高效率,并把数字世界带入每个组织,构建万物互联的智能世界。华为的数字化转型愿景是成为行业标杆,通过推进数字化战略、构建面向业务数字化转型的IT组织阵型、坚…...
Go语言的优势与应用场景 -《Go语言实战指南》
一、 Go语言的五大核心优势 1. 语法简洁,开发高效 Go语言借鉴了C语言的表达方式,但去掉了多余复杂的特性(如继承、多态、异常处理等),语法风格清晰明了,极大地降低了学习成本: • 无需头文件…...
3D人物关系图开发实战:Three.js实现自动旋转可视化图谱(附完整代码)
3D人物关系图开发实战:Three.js实现自动旋转可视化图谱 效果核心解析场景初始化自动旋转控制器节点创建(带图片和标签)关系连线动画循环数据格式说明 代码 效果 本文将带您使用Three.js实现一个带自动旋转功能的3D人物关系图谱,核…...
文件操作-
1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化…...
硬件零基础入门(尚硅谷)
1 一个碳原子有一个自由电子。所以能够导电。 金刚石四个都是都弄成共价键了,所以没有自由电子不能自由电子。 2 新的电子进来,因为互斥电荷进行了定向运动,产生了能量。两边电子平衡就停止了。所以电池的负极有电子。 电荷就是质子和电…...
【Ai零件】高德开放平台MCP的API-key注册
前言 基本操作文档,为n8n等平台,调用高德MCP服务做准备,本文记录其API-Key的生成步骤。 操作步骤 高德开发平台官网:https://lbs.amap.com/ 完成后,进入控制台界面: 创建新应用 进入【应用管理】,点击页…...
安卓基础(startActivityForResult和onActivityResult)
onActivityResult 方法有三个参数: requestCode:启动 Activity 时传入的请求码,用于区分不同的启动请求。resultCode:返回结果的状态码,通常为 RESULT_OK 或 RESULT_CANCELED。data:一个 Intent 对象&…...
安卓基础(悬浮窗)
悬浮窗 import android.app.Service; import android.content.Context; import android.graphics.PixelFormat; import android.os.IBinder; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager…...
《windows GCC 版本升级到9以上》
《windows GCC 版本升级到9以上》 在 Windows 系统上升级 GCC 到 9 以上版本通常有两种主流方案:MinGW-w64 和 WSL(Windows Subsystem for Linux)。以下是具体操作步骤: 方案一:使用 MinGW-w64(原生 Windows 环境) 步骤 1:安装 MSYS2 MSYS2 是 Windows 上的软件分发…...
LeetCode —— 102. 二叉树的层序遍历
😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️…...
Python面向对象编程实战:从类定义到高级特性的进阶之旅(2/10)
摘要:本文介绍面向对象编程基础概念,包括类与对象、封装、继承和多态等。以Python语言为例,详细讲述了类的定义与使用、构造函数与析构函数、类的访问控制等。面向对象编程通过将数据和操作封装在一起,提高代码的模块化和可维护性…...
【AI论文】DeepCritic:使用大型语言模型进行有意识的批判
摘要:随着大型语言模型(LLMs)的快速发展,对其输出提供准确的反馈和可扩展的监督成为一个紧迫而关键的问题。 利用LLM作为评判模型来实现自动化监督是一种有前景的解决方案。 在这项工作中,我们专注于研究和提高LLM的数…...
硬件工程师面试常见问题(12)
第五十六问:PCI总线基本知识 关于PCI总线的描述,错误的是:(A)(4分) A.PCI总线是一个16位宽的总线。 B.PCI的地址线与数据线是复用的。 C.PCI是一种独立于处理器的总线标准,可以支持多种处理器。 D.PCI支持即插即用功能。 解释: …...
大数据Spark(五十八):Spark Pi介绍
文章目录 Spark Pi介绍 Spark Pi介绍 Spark Pi是Apache Spark官方提供的一个示例程序,该案例使用 Spark 进行分布式计算,通过蒙特卡罗方法估算圆周率(π)的值,其估算π原理如下: 上图中,正方形…...
深入理解 HttpExchange_Java 中构建 HTTP 服务的基础组件
1. 引言 1.1 Java 中的轻量级 HTTP 服务需求 随着微服务、工具类应用和嵌入式系统的兴起,开发者对轻量级 HTTP 服务的需求日益增长。相比引入庞大的框架(如 Spring Boot),使用 JDK 原生 API 构建 HTTP 服务成为一种快速、低依赖的替代方案。 JDK 提供了 com.sun.net.htt…...
MaC QT 槽函数和Lambda表达式
在C Qt框架中,槽函数(Slot)是一种特殊的成员函数,用于响应信号(Signal)的触发,从而实现对象间的通信和事件处理。 #include<QMessageBox>//包含槽函数的头文件 //定义槽函数 响应特定的信…...
JMM 与 JVM 运行时数据区有什么区别和联系?
JMM(Java Memory Model)和 JVM 运行时数据区(JVM Runtime Data Areas)是 Java 内存管理中的两个不同但密切相关的概念。 1. JVM 运行时数据区 (JVM Runtime Data Areas) 是什么? JVM 运行时数据区是 JVM 在程序执行过程…...
LeetCode Hot100题解
目录 一、数组 & 字符串 1. 两数之和(简单) 2. 删除有序数组中的重复项(简单) 3. 移除元素(简单) 4. 合并两个有序数组(简单) 5. 买卖股票的最佳时机(简单&…...
基于Jenkins的DevOps工程实践之Jenkins共享库
文章目录 前言Jenkins共享库结构1、共享库演示2、知识点补充3、实践使用共享库格式化输出日志4、groovy基础语法4.1、 什么是 Groovy?4.2、groovy特点4.3、运行方法4.4、标识符4.5、基本数据类型4.5.1、string类型4.5.2、list类型 4.6、函数使用4.7、正则表达式 5、…...
【安装指南】Docker 安装最新版 Nginx 并进行项目的编排
目录 一、Nginx 的介绍 1.1 开源版 Nginx ① 访问路由 ② 反向代理 ③ 负载均衡 ④ 内容缓存 ⑤ 可编程 1.2 商业版 Nginx Plus ① 负载均衡 ② 动态管理 ③ 安全控制 ④ 状态监控 ⑤ Kubernetes Ingress Controller ⑥ 流媒体 1.3 扩…...
MFC自定义控件开发与使用指南
MFC自定义控件开发与使用指南 1. 概述 MFC(Microsoft Foundation Classes)框架提供了丰富的内置控件,但在实际开发中,我们常常需要创建自定义控件来满足特定的界面需求。本文将详细介绍如何在MFC中开发自定义控件,并以CCustomTextControl为例,展示自定义控件的实现和使…...
Learning vtkjs之PolyDataNormals
法线可视化 介绍 polydata法线可视化 效果 核心代码 主要流程 const fullScreenRenderer vtkFullScreenRenderWindow.newInstance({background: [0, 0, 0],rootContainer: vtkContainerRef.current,});const renderer fullScreenRenderer.getRenderer();const renderWind…...
DeepSeek辅助学术写作之提交和出版以及评审过程分析提示词分享祝你顺利毕业~
目录 1.提交和出版 2.评审过程 大家好这里是AIWritePaper官方账号,官网👉AIWritePaper~ 宝子们可以使用小编精选的“ChatGPT研究论文提示词”集合来创建研究论文。利用DeepSeek的智能回应生成详尽有效的内容,这样可以加快研究论文的策划、创…...
基于机器学习的心脏病数据分析与可视化(百度智能云千帆AI+DeepSeek人工智能+机器学习)健康预测、风险评估与数据可视化 健康管理平台 数据分析与处理
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Kubernetes(k8s)学习笔记(四)--入门基本操作
本文通过kubernetes部署tomcat集群,来学习和掌握kubernetes的一些入门基本操作 前提条件 1.各个节点处于Ready状态; 2.配置好docker镜像库(否则会出现ImagePullBackOff等一些问题); 3.网络配置正常(否则即使应用发布没问题,浏…...
在Java项目中实现本地语音识别与热点检测,并集成阿里云智能语音服务
引言 随着语音交互技术的发展,如何高效地处理用户的语音输入成为许多应用的重要课题。本文将详细介绍如何在一个Java项目中同时实现: 基于Vosk的本地语音识别:无需调用云端API即可完成语音到文本的转换。本地热点语音内容识别:对…...
C++八股--5--设计模式--适配器模式,代理模式,观察者模式
3. 观察者模式(也叫做观察者-监听者模式,发布-订阅模式) 主要关注对象的一对多关系,也就是多个对象都依赖于一个对象,当该对象状态改变时,其余对象都能得到对应的通知 如:一组数据(数…...
Ubuntu下安装Node.js
一、引言 Ubuntu下安装Node.js主要有两种方式:通过apt安装和通过源码安装。本文主要讲解通过apt安装Node.js的方法。 二、通过apt安装Node.js 安装Node.js: apt install nodejs 我之前已经安装过了,所以提示:“nodejs 已经是最…...
用单目相机和apriltag二维码aruco实现单目定位
目录 一、核心流程与代码框架 1. 环境准备 2. ArUco定位实现 3. AprilTag定位实现(需额外安装Apriltag库) 二、关键优化点 1.亚像素角点优化 2 多标签联合定位 三、性能指标(实测) 四、常见问题 检测失败…...
AIGC算力消耗白皮书:Stable Diffusion vs Midjourney的架构成本差异
引言:文生图模型的算力经济学悖论 当Midjourney单日处理超过4000万张图像请求时,其云服务算力成本却低于Stable Diffusion开源方案的37%。这揭示了一个核心矛盾:开源模型的架构自由度与闭源系统的商业优化之间存在根本性博弈。本文基于H800 …...
介绍 PHP-FPM 和 Python WSGI
我来详细介绍 PHP-FPM 和 Python WSGI,它们是现代Web开发中替代传统CGI的高性能解决方案,分别针对PHP和Python优化。 1. PHP-FPM(FastCGI Process Manager) 是什么? PHP-FPM 是PHP的 FastCGI 进程管理器,…...
赛季7靶场 -- Checker --User flag
本系列仅说明靶场的攻击思路,不会给出任何的详细代码执行步骤,因为个人觉得找到合适的工具以实现攻击思路的能力也非常重要。root要逆向,没做了,但是user flag也有借鉴意义,关于2FA的绕过我们有必要了解 1.首先Nmap扫描…...
【c语言】数据在内存中的存储
一、 大小端字节序 大端字节序:数据的低字节内容存放在内存的高地址处,数据的高字节内容存放在内存的低地址处,对于0x11223344 小端字节序:数据的低字节内容存放在内存的低地址处,数据的高字节内容存放在内存的高地…...
【Unity】XLua访问C#文件
创建NPC.cs: public class NPC { public string name; public int age; public void Say() { Debug.Log("Say:我是未被修改的"); } public static void Say() { Debug.Log("Static Say:我是未被修改的"); } public void Say2(int a) { Debug.Lo…...
Python实例题:Python获取房天下数据
目录 Python实例题 题目 实现思路 代码实现 代码解释 get_fangtianxia_data 函数: 主程序: 运行思路 注意事项 Python实例题 题目 Python获取房天下数据 实现思路 请求网页:使用 requests 库向房天下二手房页面发送请求…...
Milvus(12):分析器
1 分析器概述 在文本处理中,分析器是将原始文本转换为结构化可搜索格式的关键组件。每个分析器通常由两个核心部件组成:标记器和过滤器。它们共同将输入文本转换为标记,完善这些标记,并为高效索引和检索做好准备。 在 Milvus 中&a…...
小程序滚动条隐藏(uniapp版本)
单独指定页面隐藏(找到对应的scroll-view) <style> /* 全局隐藏滚动条样式 */ ::-webkit-scrollbar { display: none; width: 0; height: 0; color: transparent; background: transparent; } /* 确保scroll-view组件也隐藏滚动条 */ …...