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

MCP-RAG 服务器:完整设置和使用指南

在快速发展的人工智能应用时代,结合静态领域知识和实时网络信息的系统需求比以往任何时候都更加迫切。传统的检索增强生成(RAG)模型通常依赖于预先索引的数据,这限制了它们对新发展的反应能力。MCP-RAG Server通过将基于语义的向量搜索(通过Qdrant)与实时网页搜索能力(通过Scrapeless)集成,弥补了这一差距,为智能问答系统提供了一个生产就绪的基础。无论您是构建内部知识代理的企业,还是正在实验LLM集成的开发人员,本指南将带您完成MCP-RAG的完整设置和使用——确保您能够部署一个现代化、响应灵敏的人工智能知识系统。

什么是MCP-RAG Server?

MCP-RAG Server是一个基于TypeScript的系统,结合了向量搜索能力和实时网络搜索,以创建增强的人工智能知识系统。它提供三个主要工具:

  1. 机器学习常见问题检索 - 通过您的向量数据库进行语义搜索
  2. 文档添加 - 使用新信息扩展知识库
  3. 网络搜索 - 从互联网上获取当前信息

该系统解决了关键的AI局限性:过时的知识、缺乏领域专长和低效的信息检索。

Scrapeless介绍:RAG的网页智能增强引擎

Scrapeless Google搜索抓取API是一个强大的网页抓取API,提供稳定的搜索引擎结果访问,而无需担心被传统爬虫阻塞。

为什么Scrapeless对RAG系统至关重要

传统的RAG系统受限于它们的静态知识库。Scrapeless通过以下方式转变了MCP-RAG Server:

  1. 实时信息检索:访问最新的网页信息
  2. 知识库增强:持续用当前数据更新您的向量数据库
  3. 补充搜索:在内部知识不足时填补空白
  4. 多元视角:从不同地理区域和语言中搜索

Scrapeless在MCP-RAG中的工作原理是什么?

Scrapeless通过TypeScript封装类ScrapelessClient与MCP-RAG Server集成,以实现以下功能:

Copy

export class ScrapelessClient {private api: AxiosInstance;constructor(config: ScrapelessConfig) {this.api = axios.create({baseURL: config.baseURL,headers: {"Content-Type": "application/json","x-api-token": config.token,},});}async searchWeb(params: WebSearchParams) {try {const response = await this.api.post("/api/v1/scraper/request", {actor: "scraper.google.search",input: {q: params.query,gl: params.country || "us",hl: params.language || "en",google_domain: params.domain || "google.com"}});return {query: params.query,results: response.data};} catch (error) {// 错误处理...}}
}

支持的高级功能

功能描述
Google搜索集成使用scraper.google.search角色获取搜索结果
地理目标定位使用gl参数控制国家/地区
多语言支持使用hl参数以不同语言返回结果
搜索引擎域名切换支持多个域名,如google.degoogle.fr
代理自动管理默认启用代理轮换以避免IP阻塞

智能问答系统部署指南(基于向量搜索 + 实时网页搜索)

第1步:初始化项目结构并安装依赖

克隆并设置项目:

Copy

git clone git@github.com:scrapeless-ai/mcp-rag-server.git
cd mcp-rag-server

分析项目结构:

Copy

mcp-rag-server/
├── src/
│   ├── config.ts
│   ├── index.ts
│   ├── server.ts
│   ├── qdrant-client.ts
│   └── scrapeless-client.ts
├── package.json
├── tsconfig.json
└── .env

安装依赖:

Copy

npm install

💡解决的问题:
确保TypeScript项目环境已准备就绪,必要的依赖(如@modelcontextprotocol/sdk、axios、zod等)已集成,并且开发所需的类型定义也已自动配置。

第2步:环境配置

创建.env文件:

Copy

QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=
QDRANT_COLLECTION=ml_faq_collection
SCRAPELESS_KEY=你的_scrapeless_api_key  
SCRAPELESS_BASE_URL=https://api.scrapeless.com  

理解配置(来自 config.ts):

Copy

const QDRANT_URL = process.env.QDRANT_URL?.trim() || "http://localhost:6333";  
const QDRANT_API_KEY = process.env.QDRANT_API_KEY?.trim() || "";  
const QDRANT_COLLECTION = process.env.QDRANT_COLLECTION?.trim() || "ml_faq_collection";  
const SCRAPELESS_KEY = process.env.SCRAPELESS_KEY?.trim();  
const SCRAPELESS_BASE_URL = process.env.SCRAPELESS_BASE_URL?.trim() || "https://api.scrapeless.com";

💡问题解决:

提供外部依赖项的正确连接参数(Qdrant 向量数据库和 Scrapeless 实时搜索)。配置代码中内置了默认值和 trim() 处理以防止变量格式错误。如果缺少 Scrapeless 密钥,将发出警告。

第 3 步:设置 Qdrant 向量数据库

使用 Docker 启动 Qdrant:

Copy

# 拉取 Qdrant 镜像  
docker pull qdrant/qdrant  # 运行具有数据持久性的 Qdrant 容器  
docker run -d \  --name qdrant-server \  -p 6333:6333 \  -p 6334:6334 \  -v $(pwd)/qdrant_storage:/qdrant/storage \  qdrant/qdrant  

创建 FAQ 向量集合:

Copy

curl -X PUT 'http://localhost:6333/collections/ml_faq_collection' \  -H 'Content-Type: application/json' \  --data-raw '{  "vectors": {  "size": 1536,  "distance": "Cosine"  }  }'  

💡问题解决:

配置语义向量检索存储,使用 1536 维和余弦相似度,并与嵌入生成器输出和 QdrantClient 调用兼容。

第 4 步:集成 Scrapeless 实时网页搜索

获取 Scrapeless API 密钥:

  1. 访问 Scrapeless 并创建一个帐户
  2. 从仪表板中检索您的 API 令牌

检索您的 API 令牌

  1. 将其添加到 .env 文件下的 SCRAPELESS_KEY

测试 Scrapeless 连接:

Copy

# 测试 API 连接(可选)  
curl -X POST 'https://api.scrapeless.com/api/v1/scraper/request' \  -H 'Content-Type: application/json' \  -H 'x-api-token: YOUR_API_KEY' \  -d '{"actor": "scraper.google.search", "input": {"q": "test query"}}'  

问题解决:此步骤确保 Scrapeless API 正确配置。系统包括验证以检查 API 密钥是否已设置,防止在网页搜索期间出现运行时错误。

第 5 步:构建 TypeScript 项目

将 TypeScript 编译为 JavaScript:

Copy

npm run build  

构建期间发生的事情(来自 package.json):

languageCopy

{  "scripts": {  "build": "tsc && chmod 755 build/index.js",  "start": "node build/index.js"  }  
}  

验证构建输出:

languageCopy

ls build/  
# 应显示:index.js, server.js, config.js, qdrant-client.js, scrapeless-client.js  

问题解决:

此步骤将 TypeScript 编译为 JavaScript,并确保主入口点可执行。构建过程输出与 Node.js 兼容的 ES 模块(如 package.json 中所指定的 "type": "module")。

第 6 步:启动 MCP 服务器

languageCopy

运行服务器:  
npm start  

启动期间发生的事情(来自 index.ts):

Copy

async function main() {  try {  console.log("启动 MCP Agentic RAG 服务器...");  const transport = new StdioServerTransport();  await server.connect(transport);  console.log("MCP 服务器正在端口 8080 上运行");  } catch (error) {  console.error("main() 中的致命错误:", error);  process.exit(1);  }  
}  

问题解决:

此步骤启动 MCP 服务器,使用 STDIO 传输进行通信。服务器以适当的错误处理和日志记录进行初始化。

通过遵循上述六个步骤,您将构建一个具有以下功能的 AI 驱动问答系统:

  • 语义问答能力(由 Qdrant 向量数据库提供支持)
  • 实时网页增强(通过 Scrapeless API 集成)
  • LLM 准备就绪的基础设施(基于 MCP 协议标准)
    这为企业或开发人员快速部署生产就绪的 RAG(检索增强生成)系统打下了坚实的基础。

核心组件的详细说明

QdrantClient:向量处理引擎

QdrantClient 提供嵌入生成和向量数据库交互功能。示例使用一种简单的确定性嵌入方法进行演示:

Copy

private generateEmbedding(text: string): number[] {  const seed = [...text].reduce((sum, char) => sum + char.charCodeAt(0), 0) % 10000;  const vector: number[] = [];  let value = seed;  for (let i = 0; i < 1536; i++) {  value = (value * 48271) % 2147483647;  vector.push((value / 2147483647) * 2 - 1);  }  return vector;  
}  

主要特点:

  • 简单的确定性嵌入生成
  • 添加文档的 Upsert 操作
  • 具有可配置评分阈值的语义搜索
  • 合适的错误处理和后备响应

ScrapelessClient:网络搜索引擎接口

ScrapelessClient 访问 Scrapeless API 以实现网络搜索,并支持高级搜索参数:

Copy

async searchWeb(params: WebSearchParams) {try {if (!this.api.defaults.headers.common["x-api-token"]) {throw new Error("Scrapeless API 密钥未设置");}const response = await this.api.post("/api/v1/scraper/request", {actor: "scraper.google.search",input: {q: params.query,gl: params.country || "us",hl: params.language || "en",google_domain: params.domain || "google.com"}});return {query: params.query,results: response.data};} catch (error) {// 错误处理...}
}

主要特点:

  • 通过 Scrapeless 集成谷歌搜索
  • 可配置的国家、语言和域名
  • 全面的错误处理
  • API 密钥验证

MCP 服务器工具

server.ts 文件定义了三个主要工具:

  1. machine-learning-faq-retrieval:
  • 在向量数据库中搜索 ML 概念
  • 使用语义相似度匹配
  • 返回带有分数的格式化结果
  1. add-document-to-faq:
  • 向知识库添加新文档
  • 支持元数据(类别、来源、标签)
  • 适当的错误处理,提供详细响应
  1. scrapeless-web-search:
  • 通过 Scrapeless API 执行网络搜索
  • 可配置的搜索参数
  • 实时信息检索

使用指南:使用 Scrapeless 系统

基本用法示例

搜索知识库:

使用 machine-learning-faq-retrieval 查找关于神经网络的信息

添加新信息:

使用 add-document-to-faq 添加以下内容:
文本:“随机森林是集成学习方法…”
类别:“集成方法”
标签:[“随机森林”,“集成学习”]

通过 Scrapeless 搜索网络:

使用 scrapeless-web-search 查找 AI 的最新进展

高级 Scrapeless 用法:

使用 scrapeless-web-search,参数如下:
查询:“最新的 PyTorch 特性”
国家:“uk”
语言:“en”
域名:“google.co.uk”

与 Scrapeless 集成的高级工作流程

知识库增强:

1. 使用 scrapeless-web-search 查找“最新的变压器模型2024”
2. 使用 add-document-to-faq 添加相关发现
3. 使用 machine-learning-faq-retrieval 验证信息是否可搜索

信息验证:

1. 使用 machine-learning-faq-retrieval 检查现有知识
2. 使用 scrapeless-web-search 查找当前信息
3. 对比并相应更新知识库

多语言知识构建:

1. 使用 scrapeless-web-search 的 country="de" 和 language="de" 查找德国的 AI 研究
2. 使用 add-document-to-faq 添加翻译摘要
3. 构建多语言知识库

与 Claude Desktop 集成

该项目包括 Claude Desktop 集成的示例配置:

{"mcpServers": {"MCP-RAG-app": {"command": "node","args": ["your-path/to/build/index.js"],"host": "127.0.0.1","port": 8080,"timeout": 30000,"env": {"QDRANT_URL": "http://localhost:6333","QDRANT_API_KEY": "","QDRANT_COLLECTION": "ml_faq_collection","SCRAPELESS_KEY": "SCRAPELESS_KEY"}}}
}

常见问题及解决方案

  1. 构建错误:
  • 确保 Node.js 版本 >= 18
  • 检查 TypeScript 编译:npx tsc --noEmit
  1. 运行时错误:
  • 验证 Qdrant 是否正在运行:curl http://localhost:6333/health
  • 检查环境变量是否正确设置
  • 确保 Scrapeless API 密钥有效
  1. Scrapeless 特定问题:
  • 验证 API 密钥是否在环境中正确设置
  • 检查 Scrapeless 控制面板中的 API 配额和限制
  • 确保正确配置 API 端点
  1. 连接问题:
  • 验证端口是否可用(Qdrant 的端口为 6333)
  • 检查防火墙设置
  • 确保 Docker 容器正在运行

组合系统的好处

Scrapeless 与 Qdrant 的集成创建了一个强大的混合系统:

  1. 静态 + 动态知识:将您的策划知识库与实时网络数据相结合
  2. 智能搜索:对内部数据使用语义搜索,对网络内容使用关键字搜索
  3. 持续增强:自动更新您的知识库,提供新信息
  4. 全球视角:获取来自不同地区和语言的信息
  5. 可靠性:Scrapeless 确保稳定的网络访问而无阻塞问题

结论

MCP-RAG 服务器与 Scrapeless 实现了一个高度可扩展、实时更新的智能问答系统。其核心价值包括:

  • 语义理解:通过向量相似度理解上下文
  • 实时信息访问:访问 Scrapeless 获取最新 web 内容
  • 标准协议集成:使用 MCP 协议,轻松连接到 Claude 等平台
  • 灵活配置:可定制的知识库集合和搜索工具
  • 面向未来的智能平台:支持动态知识增强、多语言支持和网络智能爬取。

Scrapeless的加入使系统不再仅仅是一个静态的知识库,而是一个具有全球视野和持续学习能力的AI知识引擎。

相关文章:

MCP-RAG 服务器:完整设置和使用指南

在快速发展的人工智能应用时代&#xff0c;结合静态领域知识和实时网络信息的系统需求比以往任何时候都更加迫切。传统的检索增强生成&#xff08;RAG&#xff09;模型通常依赖于预先索引的数据&#xff0c;这限制了它们对新发展的反应能力。MCP-RAG Server通过将基于语义的向量…...

裸金属服务器 VS 传统物理机

一&#xff1a;首先&#xff0c;我们先介绍一下&#xff0c;什么是裸金属服务器&#xff1f; 1.虚拟机的外表-平台可视化 可以通过后台管理界面查看当前所使用的全部信息包括&#xff1a;当前系统版本、CPU、内存、硬盘等相关信息。 2.虚拟机的外表-操作自动化 同样也可以在…...

React百日学习计划-Grok3

关键点 研究表明&#xff0c;100天内学习React是可行的&#xff0c;尤其是你已有HTML、JS和CSS基础。该计划包括基础知识、hooks、状态管理、路由、样式化及综合项目&#xff0c;适合初学者。建议每天花2-3小时学习&#xff0c;结合免费教程和社区支持。 开始学习 学习React…...

Android NDK 高版本交叉编译:为何无需配置 FLAGS 和 INCLUDES

引言&#xff1a;NDK 交叉编译的演进 Android NDK&#xff08;Native Development Kit&#xff09;是开发高性能C/C代码的核心工具链&#xff0c;而交叉编译&#xff08;在x86主机上生成ARM架构代码&#xff09;一直是NDK的核心功能。过去&#xff0c;开发者需要手动配置大量编…...

Java详解LeetCode 热题 100(15):LeetCode 189. 轮转数组(Rotate Array)详解

文章目录 1. 题目描述2. 理解题目3. 解法一&#xff1a;使用额外数组3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二&#xff1a;环状替换法&#xff08;原地算法&#xff09;4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 陷阱与注意事…...

出于PCB设计层面考虑,连排半孔需要注意哪些事项?

通过拼接作为后处理运行&#xff0c;用拼接联排半孔填充铜的自由区域。为了使通缝成为可能&#xff0c;必须在不同的层上有重叠的铜区域连接到指定的网上。铜的支持区域包括填充、多边形和动力平面。 高电流对电路板的潜在负面影响的另一个例子是电路板结构的物理失效。制造原始…...

JIT+Opcache如何配置才能达到性能最优

首先打开php.ini文件&#xff0c;进行配置 1、OPcache配置 ; 启用OPcache opcache.enable1; CLI环境下启用OPcache&#xff08;按需配置&#xff09; opcache.enable_cli0; 预加载脚本&#xff08;PHP 7.4&#xff0c;加速常用类&#xff09; ; opcache.preload/path/to/prel…...

VR和眼动控制集群机器人的方法

西安建筑科技大学信息与控制工程学院雷小康老师团队联合西北工业大学航海学院彭星光老师团队&#xff0c;基于虚拟现实&#xff08;VR&#xff09;和眼动追踪技术实现了人-集群机器人高效、灵活的交互控制。相关研究论文“基于虚拟现实和眼动的人-集群机器人交互方法” 发表于信…...

LabVIEW与PLC通讯程序S7.Net.dll

下图中展示的是 LabVIEW 环境下通过调用S7.Net.dll 组件与西门子 PLC 进行通讯的程序。LabVIEW 作为一种图形化编程语言&#xff0c;结合S7.Net.dll 的.NET 组件优势&#xff0c;在工业自动化领域中可高效实现与 PLC 的数据交互&#xff0c;快速构建工业监控与控制应用。相较于…...

【华为】现场配置OSPF

原创&#xff1a;厦门微思网络 实验目的 1、了解OSPF的运行原理 2、掌握OSPF的配置方法 实验拓扑 实验需求 1、根据实验拓扑图&#xff0c;完成设备的基本配置&#xff1b; 2、分别在R1、R2、R3上创建Loopback0接口&#xff0c;IP地址分别是1.1.1.1/32、2.2.2.2/32、3.3.3.…...

STM32-DMA数据转运(8)

目录 一、简介 二、存储器映像 三、DMA框图​编辑 四、DMA基本结构 五、两个数据转运的实例 一、简介 直接存储器存取简称DMA&#xff08;Direct Memory Access&#xff09;&#xff0c;它是一个数据转运小助手&#xff0c;主要用来协助CPU&#xff0c;完成数据转运的工作…...

课题推荐——低成本地磁导航入门,附公式推导和MATLAB例程运行演示

地磁导航利用地球磁场的自然特性&#xff0c;通过感知磁场变化&#xff0c;帮助机器人或无人设备实现定位和导航。相比于 GPS、激光雷达等导航方法&#xff0c;地磁导航具有以下优势&#xff1a; 低成本&#xff1a;使用地磁传感器&#xff08;如电子罗盘&#xff09;&#xff…...

微信小程序学习之底部导航栏

首先&#xff0c;我们在app.json中添加4个页面&#xff0c; "pages": ["pages/index/index","pages/category/category","pages/cart/cart","pages/user/user"], 其次我们把8张图片放到imaes文件夹下&#xff0c; 图标可…...

c++ std库中的文件操作学习笔记

1. 概述 C标准库提供了 头文件中的几个类来进行文件操作&#xff0c;这些类封装了底层的文件操作&#xff0c;提供了面向对象和类型安全的接口&#xff0c;使得文件读写更加便捷和高效。主要的文件流类包括&#xff1a; std::ifstream&#xff1a;用于从文件中读取数据。 st…...

多臂赌博机:探索与利用的平衡艺术

1. 引言 在机器学习领域&#xff0c;多臂赌博机&#xff08;Multi-Armed Bandit&#xff0c;MAB&#xff09;问题是强化学习的一个经典且基础的模型。这个名称源于赌场中的"单臂老虎机"&#xff08;One-armed Bandit&#xff09;&#xff0c;因为这种赌博机器像强盗…...

分布式异步强化学习框架训练32B大模型:INTELLECT-2

INTELLECT-2 模型详解 一、模型概述 INTELLECT-2 是一个拥有 320 亿参数的语言模型&#xff0c;其训练采用了一种创新的方式&#xff0c;即通过社区贡献的分布式、无需许可的 GPU 资源进行强化学习训练。该模型基于 qwen2 架构构建&#xff0c;因此与 vllm 或 sglang 等流行库…...

HTML应用指南:利用POST请求获取全国京东快递服务网点位置信息

京东快递作为中国领先的智能供应链与综合物流服务提供商,自2007年成立以来,始终致力于通过技术创新与高效运营,为客户提供安全、可靠、快速的物流解决方案。京东快递依托京东集团的强大资源支持,凭借其自营仓储、干线运输、末端配送一体化的物流网络,在激烈的市场竞争中脱…...

通过POI实现对word基于书签的内容替换、删除、插入

一、基本概念 POI&#xff1a;即Apache POI&#xff0c; 它是一个开源的 Java 库&#xff0c;主要用于读取 Microsoft Office 文档&#xff08;Word、Excel、PowerPoint 等&#xff09;&#xff0c;修改 或 生成 Office 文档内容&#xff0c;保存 为对应的二进制或 XML 格式&a…...

git进行版本控制时遇到Push cannot contain secrets的解决方法

git进行版本控制&#xff0c;push遇到Push cannot contain secrets的解决方法 最近在项目开发过程中&#xff0c;我遇到了一个让我头疼不已的问题。 问题的出现 一开始&#xff0c;我的项目远程仓库连接的是 Gitee&#xff0c;在开发过程中一切都很顺利&#xff0c;我也习惯…...

Java GUI 开发之旅:Swing 组件与布局管理的实战探索

在编程的世界里&#xff0c;图形用户界面&#xff08;GUI&#xff09;设计一直是提升用户体验的关键环节。Java 的 Swing 库为我们提供了强大的工具来构建跨平台的 GUI 应用。今天&#xff0c;我将通过一次实验&#xff0c;分享如何使用 Java Swing 开发一个功能丰富的 GUI 应用…...

OpenVLA (2) 机器人环境和环境数据

文章目录 前言1 BridgeData V21.1 概述1.2 硬件环境 2 数据集2.1 场景与结构2.2 数据结构2.2.1 images02.2.2 obs_dict.pkl2.2.3 policy_out.pkl 前言 按照笔者之前的行业经验, 数据集的整理是非常重要的, 因此笔者这里增加原文中出现的几个数据集和环境的学习 1 BridgeData V…...

【Ansible】基于windows主机,采用NTLM+HTTPS 认证部署

我们现在准备Linux centos7&#xff08;Ansible控制机&#xff09;和Windows&#xff08;客户机&#xff09;环境下的详细部署步骤&#xff1a; 一、Windows客户机配置 1. 准备SSL证书 1.1 生成自签名证书&#xff08;测试用&#xff09; 以管理员身份打开PowerShell&#…...

React19源码系列之 API(react-dom)

API之 preconnect preconnect – React 中文文档 preconnect 函数向浏览器提供一个提示&#xff0c;告诉它应该打开到给定服务器的连接。如果浏览器选择这样做&#xff0c;则可以加快从该服务器加载资源的速度。 preconnect(href) 一、使用例子 import { preconnect } fro…...

鸿蒙Next开发 获取APP缓存大小和清除缓存

1. 鸿蒙Next开发 获取APP缓存大小和清除缓存 1.1. 介绍 1.1.1. 文件系统分类 在最新的Core File Kit套件中&#xff0c;按文件所有者的不同。分为如下三类&#xff1a;   &#xff08;1&#xff09;应用文件&#xff1a;文件所有者为应用&#xff0c;包括应用安装文件、应用…...

PNG转ico图标(支持圆角矩形/方形+透明背景)Python脚本 - 随笔

摘要 在网站开发或应用程序设计中&#xff0c;常需将高品质PNG图像转换为ICO格式图标。本文提供一份基于Pillow库实现的&#xff0c;能够完美保留透明背景且支持导出圆角矩形/方形图标的格式转换脚本。 源码示例 圆角方形 from PIL import Image, ImageDraw, ImageOpsdef c…...

『大模型笔记』Langchain作者Harrison Chase专访:环境智能体与全新智能体收件箱

Langchain作者Harrison Chase专访:环境智能体与全新智能体收件箱 文章目录 摘要访谈内容什么环境智能体为什么要探索环境智能体怎么让人类能更方便地和环境智能体互动参考文献摘要 LangChain 的 CEO Harrison Chase 提出了_“环境智能体”(Ambient Agents)的概念,这是一种…...

GPT( Generative Pre-trained Transformer )模型:基于Transformer

GPT是由openAI开发的一款基于Transformer架构的预训练语言模型&#xff0c;拥有强大的生成能力和多任务处理能力&#xff0c;推动了自然语言处理&#xff08;NLP&#xff09;的快速发展。 一 GPT发展历程 1.1 GPT-1&#xff08;2018年&#xff09; 是首个基于Transformer架构…...

游戏引擎学习第275天:将旋转和剪切传递给渲染器

回顾并为今天的内容定下基调 我们认为在实现通用动画系统之前&#xff0c;先学习如何手写动画逻辑是非常有价值的。虽然加载和播放预设动画是合理的做法&#xff0c;尤其是在团队中有美术人员使用工具制作动画的情况下更是如此&#xff0c;但手动编写动画代码能让我们更深入理…...

conda 输出指定python环境的库 输出为 yaml文件

conda 输出指定python环境的库 输出为 yaml文件。 有时为了项目部署&#xff0c;需要匹配之前的python环境&#xff0c;需要输出对应的python依赖库。 假设你的目标环境名为 myenv&#xff0c;运行以下命令&#xff1a; conda env export -n myenv > myenv_environment.ym…...

ES6 语法

扩展运算符 … 口诀&#xff1a;三个点&#xff0c;打散数组&#xff0c;逐个放进去 例子&#xff1a; let arr [1, 2];let more [3, 4];arr.push(...more); // arr 变成 [1, 2, 3, 4]解构赋值 口诀&#xff1a;左边是变量&#xff0c;右边是值&#xff0c;一一对应 例子&…...

BFS算法篇——打开智慧之门,BFS算法在拓扑排序中的诗意探索(下)

文章目录 引言一、课程表1.1 题目链接&#xff1a;https://leetcode.cn/problems/course-schedule/description/1.2 题目分析&#xff1a;1.3 思路讲解&#xff1a;1.4 代码实现&#xff1a; 二、课程表||2.1 题目链接&#xff1a;https://leetcode.cn/problems/course-schedul…...

While语句数数字

import java.util.Scanner;public class Hello {public static void main(String[] args) {Scanner in new Scanner(System.in);int number in.nextInt();int count 0;while( number > 0 ){number number / 10;count count 1;}System.out.println(count);} }...

G1JVM内存分配机制详解

为什么堆内存不是预期的3G&#xff1f; 当您设置-XX:MaxRAMPercentage75时&#xff0c;JVM并不会简单地将容器内存(4G)的75%全部分配给堆&#xff0c;原因如下&#xff1a; 计算基准差异&#xff1a; 百分比是应用于"可用物理内存"而非"容器总内存" &q…...

“端 - 边 - 云”三级智能协同平台的理论建构与技术实现

摘要 随着低空经济与智能制造的深度融合&#xff0c;传统集中式云计算架构在实时性、隐私保护和资源效率上的瓶颈日益凸显。本文提出“端 - 边 - 云”三级智能协同平台架构&#xff0c;以“时空 - 资源 - 服务”三维协同理论为核心&#xff0c;构建覆盖终端感知、边缘计算、云端…...

【UAP】《Empirical Upper Bound in Object Detection and More》

Borji A, Iranmanesh S M. Empirical upper bound in object detection and more[J]. arXiv preprint arXiv:1911.12451, 2019. arXiv-2019 文章目录 1、Background and Motivation2、Related Work3、Advantages / Contributions4、Experimental Setup4.1、Benchmarks Dataset…...

Web Service及其实现技术(SOAP、REST、XML-RPC)介绍

一.概述 1.Web Service&#xff08;Web 服务&#xff09; Web Service 由万维网联盟 (W3C) 定义为一种软件系统&#xff0c;旨在支持通过网络进行可互操作的计算机间交互。 广义概念&#xff1a;基于 Web 技术&#xff08;如 HTTP 协议&#xff09;的跨平台、跨语言通信机制…...

基于Spring Boot+Layui构建企业级电子招投标系统实战指南

一、引言&#xff1a;重塑招投标管理新范式 在数字经济浪潮下&#xff0c;传统招投标模式面临效率低、透明度不足、流程冗长等痛点。本文将以Spring Boot技术生态为核心&#xff0c;融合Mybatis持久层框架、Redis高性能缓存及Layui前端解决方案&#xff0c;构建一个覆盖招标代理…...

【嵌入式】记一次解决VScode+PlatformIO安装卡死的经历

PlatformIO 是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境&#xff08;IDE&#xff09;&#xff0c;兼容 Arduino&#xff0c;ESP8266和mbed等。 开源库地址&#xff1a;https://github.com/platformio 在 VScode 中配置 PlatformIO 插件&#xff0c;记录…...

抗量子计算攻击的数据安全体系构建:从理论突破到工程实践

在“端 - 边 - 云”三级智能协同理论中&#xff0c;端 - 边、边 - 云之间要进行数据传输&#xff0c;网络的安全尤为重要&#xff0c;为了实现系统总体的安全可控&#xff0c;将构建安全网络。 可先了解我的前文&#xff1a;“端 - 边 - 云”三级智能协同平台的理论建构与技术实…...

【FMMT】基于模糊多模态变压器模型的个性化情感分析

遇到很难的文献看不懂,不应该感到气馁,应该激动,因为外审估计也看不太懂,那么学明白了可以吓唬他 缺陷一:输入依赖性与上下文建模不足​​ ​​缺陷描述​​: 传统自注意力机制缺乏因果关系,难以捕捉序列历史背景多模态数据间的复杂依赖关系未被充分建模CNN/RNN类模型在…...

力扣Hot100(Java版本)

1. 哈希 1.1 两数之和 题目描述&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同…...

Stream流简介、常用方法

Stream流的三类方法 获取Stream流 创建一条流水线&#xff0c;并把数据放到流水线上准备进行操作 中间方法 流水线上的操作一次操作完毕之后&#xff0c;还可以继续进行其他操作 终结方法 一个Stream流只能有一个终结方法是流水线上的最后一个操作 生成Stream流的方式 Collec…...

‌C# 集成 FastDFS 完整指南‌

‌1. 环境准备‌ ‌(1) 安装 FastDFS 服务端‌ 部署 Tracker 和 Storage 节点&#xff0c;确保服务正常运行。 配置 tracker_server 地址&#xff08;如 192.168.1.100:22122&#xff09;。 ‌(2) 添加 NuGet 包‌ 通过 NuGet 安装 FastDFS 客户端库&#xff1a; Install-Pack…...

重构门店网络:从“打补丁“到“造地基“的跨越

您是否遇到过这样的窘境&#xff1f; 新店开张要等一周&#xff0c;就为装根网线&#xff1b; 偏远地区门店三天两头断网&#xff0c;顾客排长队却结不了账&#xff1b; 总部想看实时数据&#xff0c;结果收到一堆乱码报错&#xff1b; 总部ERP系统升级&#xff0c;2000家门…...

TI的ADS1291代替芯片LH001-99

血管疾病严重威胁人类生命健康安全&#xff0c;随着人口老龄化进程的加快和社会压力等因素的增加&#xff0c;患病率正呈现逐年上升趋势&#xff0c;并且越来越年轻化。然而&#xff0c;心血管疾病大多由器官器质性病变引起&#xff0c;一旦患病很难完全康复&#xff0c;需要进…...

NPOI 操作 Word 文档

管理 NuGet 程序包 # word操作 NPOI# 图片操作 SkiaSharp Controller代码 using Microsoft.AspNetCore.Mvc; using NPOI.Util; using NPOI.XWPF.Model; using NPOI.XWPF.UserModel; using SkiaSharp;namespace WebApplication2.Controllers {[Route("api/Npoi/[action]…...

css3基于伸缩盒模型生成一个小案例

css3基于伸缩模型生成一个小案例 在前面学习了尚硅谷天禹老师的css3内容后&#xff0c;基于伸缩盒模型做的一个小案例&#xff0c;里面使用了 flex 布局&#xff0c;以及主轴切换&#xff0c;以及主轴平分等特性&#xff0c;分为使用css3 伸缩盒模型方式&#xff0c;已经传统的…...

精简大语言模型:用于定制语言模型的自适应知识蒸馏

Streamlining LLMs: Adaptive Knowledge Distillation for Tailored Language Models 发表&#xff1a;NAACL 2025 机构&#xff1a;德国人工智能研究中心 Abstract 诸如 GPT-4 和 LLaMA-3 等大型语言模型&#xff08;LLMs&#xff09;在多个行业展现出变革性的潜力&#xf…...

Rollup入门与进阶:为现代Web应用构建超小的打包文件

我们常常面临Webpack复杂配置或是Babel转译后的冗余代码&#xff0c;结果导致最终的包体积居高不下加载速度也变得异常缓慢&#xff0c;而在众多打包工具中Rollup作为一个轻量且高效的选择&#xff0c;正悄然改变着这一切&#xff0c;本文将带你深入了解这个令人惊艳的打包工具…...

博客系统技术需求文档(基于 Flask)

以下内容是AI基于要求生成的技术文档&#xff0c;仅供参考~ &#x1f9f1; 一、系统架构设计概览 层级 内容 前端层 HTML Jinja2 模板引擎&#xff0c;集成 Markdown 编辑器、代码高亮 后端层 Flask 框架&#xff0c;RESTful 风格&#xff0c;Jinja2 渲染 数据库 SQLi…...