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

将天气查询API封装为MCP服务

下面我将展示如何将一个天气查询API封装为符合MCP协议的服务。我们将使用Python实现,包括服务端和客户端。

## 1. 服务端实现

```python
# weather_mcp_server.py
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Dict, List, Optional, Any
import httpx
import json
from datetime import datetime
import uuid

app = FastAPI()

# 模拟天气数据服务
class WeatherService:
    def __init__(self):
        self.api_key = "your_weather_api_key"
        self.base_url = "https://api.weatherapi.com/v1"
    
    async def get_weather(self, location: str, date: Optional[str] = None) -> Dict:
        """获取天气数据"""
        async with httpx.AsyncClient() as client:
            try:
                response = await client.get(
                    f"{self.base_url}/forecast.json",
                    params={
                        "key": self.api_key,
                        "q": location,
                        "days": 1
                    }
                )
                response.raise_for_status()
                return response.json()
            except Exception as e:
                raise HTTPException(status_code=500, detail=str(e))

# MCP协议处理器
class MCPHandler:
    def __init__(self):
        self.weather_service = WeatherService()
    
    def validate_mcp_request(self, request: Dict) -> bool:
        """验证MCP请求格式"""
        required_fields = ["protocol_version", "instruction", "content"]
        return all(field in request for field in required_fields)
    
    def extract_parameters(self, request: Dict) -> Dict:
        """从MCP请求中提取参数"""
        content = request.get("content", {})
        instruction = request.get("instruction", {})
        
        return {
            "location": content.get("location"),
            "date": content.get("date"),
            "format": instruction.get("output_format", "json")
        }
    
    def create_mcp_response(self, 
                          data: Any, 
                          request: Dict,
                          status: str = "success") -> Dict:
        """创建MCP响应"""
        return {
            "protocol_version": request.get("protocol_version", "1.0"),
            "session_id": request.get("session_id", str(uuid.uuid4())),
            "timestamp": datetime.now().isoformat(),
            "status": status,
            "content": {
                "output": data
            },
            "metadata": {
                "processing_time": "0.1s",
                "source": "weather_api"
            }
        }

mcp_handler = MCPHandler()

@app.post("/weather/mcp")
async def weather_mcp_endpoint(request: Dict):
    """MCP天气查询端点"""
    try:
        # 验证请求
        if not mcp_handler.validate_mcp_request(request):
            raise HTTPException(status_code=400, detail="Invalid MCP request format")
        
        # 提取参数
        params = mcp_handler.extract_parameters(request)
        
        # 获取天气数据
        weather_data = await mcp_handler.weather_service.get_weather(
            params["location"],
            params["date"]
        )
        
        # 格式化响应
        formatted_data = format_weather_data(weather_data, params["format"])
        
        # 创建MCP响应
        response = mcp_handler.create_mcp_response(formatted_data, request)
        
        return response
    
    except Exception as e:
        return mcp_handler.create_mcp_response(
            {"error": str(e)},
            request,
            status="error"
        )

def format_weather_data(data: Dict, format: str) -> Any:
    """根据指定格式格式化天气数据"""
    if format == "json":
        return data
    elif format == "text":
        current = data.get("current", {})
        location = data.get("location", {})
        return f"""
天气报告 - {location.get('name')}, {location.get('country')}
时间: {current.get('last_updated')}
温度: {current.get('temp_c')}°C
体感温度: {current.get('feelslike_c')}°C
天气状况: {current.get('condition', {}).get('text')}
湿度: {current.get('humidity')}%
风速: {current.get('wind_kph')} km/h
"""
    else:
        return data
```

## 2. 客户端实现

```python
# weather_mcp_client.py
from mcp_client import MCPClient, MCPTaskType, MCPOutputFormat
from typing import Optional, Dict, Any

class WeatherMCPClient:
    def __init__(self, api_endpoint: str, api_key: str):
        self.mcp_client = MCPClient(api_endpoint, api_key)
    
    def get_weather(self, 
                   location: str, 
                   date: Optional[str] = None,
                   output_format: MCPOutputFormat = MCPOutputFormat.JSON) -> Dict:
        """
        获取天气信息
        
        Args:
            location: 位置(城市名或坐标)
            date: 可选,查询日期
            output_format: 输出格式
            
        Returns:
            天气信息
        """
        # 构建MCP请求选项
        options = self.mcp_client.create_mcp_request(
            prompt="",  # 这里不需要prompt
            task_type=MCPTaskType.CUSTOM,
            output_format=output_format,
            custom_parameters={
                "service": "weather",
                "operation": "query"
            }
        )
        
        # 设置内容
        options["content"] = {
            "location": location,
            "date": date
        }
        
        # 发送请求
        response = self.mcp_client.send_request(options)
        return response

# 使用示例
def weather_example():
    # 初始化客户端
    client = WeatherMCPClient(
        api_endpoint="http://localhost:8000/weather/mcp",
        api_key="your_api_key"
    )
    
    # 获取JSON格式的天气信息
    weather_json = client.get_weather(
        location="Beijing",
        output_format=MCPOutputFormat.JSON
    )
    print("JSON格式天气信息:", weather_json)
    
    # 获取文本格式的天气信息
    weather_text = client.get_weather(
        location="Shanghai",
        output_format=MCPOutputFormat.TEXT
    )
    print("文本格式天气信息:", weather_text)
    
    # 获取特定日期的天气信息
    weather_date = client.get_weather(
        location="Guangzhou",
        date="2024-03-20",
        output_format=MCPOutputFormat.STRUCTURED
    )
    print("特定日期天气信息:", weather_date)

if __name__ == "__main__":
    weather_example()
```

## 3. 配置文件

```python
# config.py
class Config:
    # 服务配置
    SERVICE_HOST = "0.0.0.0"
    SERVICE_PORT = 8000
    
    # 天气API配置
    WEATHER_API_KEY = "your_weather_api_key"
    WEATHER_API_BASE_URL = "https://api.weatherapi.com/v1"
    
    # MCP配置
    MCP_VERSION = "1.0"
    MCP_ALLOWED_FORMATS = ["json", "text", "structured"]
    
    # 安全配置
    API_KEY_HEADER = "X-API-Key"
    RATE_LIMIT = 100  # 每分钟请求限制
```

## 4. 启动脚本

```python
# run_server.py
import uvicorn
from weather_mcp_server import app
from config import Config

if __name__ == "__main__":
    uvicorn.run(
        app,
        host=Config.SERVICE_HOST,
        port=Config.SERVICE_PORT
    )
```

## 5. 使用说明

1. **安装依赖**:
```bash
pip install fastapi uvicorn httpx pydantic
```

2. **配置服务**:
- 在`config.py`中设置天气API密钥
- 配置服务端口和其他参数

3. **启动服务**:
```bash
python run_server.py
```

4. **使用客户端**:
```python
from weather_mcp_client import WeatherMCPClient

# 创建客户端实例
client = WeatherMCPClient(
    api_endpoint="http://localhost:8000/weather/mcp",
    api_key="your_api_key"
)

# 查询天气
weather = client.get_weather("Beijing")
print(weather)
```

## 6. MCP协议适配要点

1. **请求格式标准化**:
```json
{
    "protocol_version": "1.0",
    "session_id": "uuid",
    "instruction": {
        "task_type": "custom",
        "output_format": "json",
        "execution_parameters": {
            "service": "weather",
            "operation": "query"
        }
    },
    "content": {
        "location": "Beijing",
        "date": "2024-03-20"
    }
}
```

2. **响应格式标准化**:
```json
{
    "protocol_version": "1.0",
    "session_id": "uuid",
    "timestamp": "2024-03-20T10:00:00Z",
    "status": "success",
    "content": {
        "output": {
            "location": {...},
            "current": {...},
            "forecast": {...}
        }
    },
    "metadata": {
        "processing_time": "0.1s",
        "source": "weather_api"
    }
}
```

3. **错误处理**:
```json
{
    "protocol_version": "1.0",
    "session_id": "uuid",
    "timestamp": "2024-03-20T10:00:00Z",
    "status": "error",
    "content": {
        "output": {
            "error": "Invalid location",
            "error_code": "LOCATION_INVALID"
        }
    }
}
```

## 7. 扩展功能

1. **缓存支持**:
```python
from functools import lru_cache
import time

class WeatherService:
    @lru_cache(maxsize=100)
    def get_weather_cached(self, location: str, timestamp: int) -> Dict:
        """带缓存的天气查询"""
        return self.get_weather(location)
```

2. **批量查询**:
```python
async def batch_get_weather(self, locations: List[str]) -> List[Dict]:
    """批量获取天气信息"""
    tasks = [self.get_weather(loc) for loc in locations]
    return await asyncio.gather(*tasks)
```

3. **数据转换器**:
```python
class WeatherDataConverter:
    @staticmethod
    def to_celsius(kelvin: float) -> float:
        return kelvin - 273.15
    
    @staticmethod
    def to_fahrenheit(celsius: float) -> float:
        return celsius * 9/5 + 32
```

这个示例展示了如何将一个天气查询API封装为MCP服务,包括:
- 服务端实现
- 客户端实现
- 配置管理
- 错误处理
- 数据格式化
- 扩展功能

通过这种方式,我们可以将任何现有的API服务转换为符合MCP协议的服务,实现标准化的接口和更好的可控性。

相关文章:

将天气查询API封装为MCP服务

下面我将展示如何将一个天气查询API封装为符合MCP协议的服务。我们将使用Python实现,包括服务端和客户端。 ## 1. 服务端实现 python # weather_mcp_server.py from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Di…...

JSON实现动态按钮管理的Python应用

在开发桌面应用程序时,动态生成用户界面元素并根据配置文件灵活管理是一项常见需求。本文将介绍如何使用Python的wxPython库结合JSON配置文件,开发一个支持动态按钮创建、文件执行和配置管理的桌面应用程序。该应用允许用户通过设置界面配置按钮名称和关…...

基于GA遗传优化TCN-BiGRU注意力机制网络模型的时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b(提供软件版本下载) 3.部分核心程序 (完整版代码包…...

MongoDB(docker版)备份还原

docker启动MongoDB docker run -d -p 27017:27017 --name my-mongo -v /mongodb/db:/data/db mongo备份MongoDB 使用mongodump备份数据库时,默认会将备份数据保存在当前工作目录下的dump文件夹中。 docker容器中默认备份在当前工作目录,所以此处指定当…...

[蓝桥杯 2025 省 Python B] 异或和

暴力(O(n^2)): def xor_sum(n, arr):total 0for i in range(n):for j in range(i 1, n):total (arr[i] ^ arr[j]) * (j - i)return total# 主函数 if __name__ "__main__":n int(input())arr list(map(int, input().split()…...

HTTP代理基础:网络新手的入门指南

目录 一、为什么需要了解HTTP代理? 二、HTTP代理的“中间人”角色 三、代理的三大核心类型 四、HTTP代理的5大实用场景 五、设置代理的三种方式 六、代理的优缺点分析 七、如何选择代理服务? 八、安全使用指南 九、未来趋势 结语 一、为什么需要…...

GRE 多层级网络数据处理系统

​ 一、整体架构​ 多层级网络数据处理系统,从底层硬件中断到上层协议处理,涵盖了数据包的接收、转发、解封装、路由决策和发送全流程。系统采用分层处理和模块化设计,结合了传统Linux网络协议栈与快速路径(Fast Path&#xff0…...

展望未来,楼宇自控系统如何全方位推动绿色建筑智能高效发展

在全球积极践行可持续发展理念的时代背景下,绿色建筑已成为建筑行业发展的必然趋势。绿色建筑追求在全生命周期内,最大限度地节约资源、保护环境和减少污染,为人们提供健康、舒适、高效的使用空间。而楼宇自控系统作为建筑智能化的核心技术&a…...

【计算机视觉】CV项目实战- Florence-SAM 多模态视觉目标检测+图像分割

Florence-SAM多模态视觉分析系统:技术解析与实战指南 一、项目架构与技术解析1.1 核心模型架构1.2 支持的任务模式 二、环境配置与部署实战2.1 本地部署指南2.2 运行演示系统 三、核心功能实战解析3.1 图像开放词汇检测3.2 视频目标跟踪 四、高级应用与二次开发4.1 …...

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …...

ZYNQ笔记(十三):双核 AMP 通信实验

版本:Vivado2020.2(Vitis) ZYNQ 裸机双核 AMP 实验: CPU0 接收串口的数据,并写入 OCM 中,然后利用软件产生中断触发 CPU1;CPU1 接收到中断后,根据从 OCM 中读出的数据控制呼吸灯的频…...

黑马Java基础笔记-3

短路逻辑运算符与逻辑运算符 逻辑运算符 符号作用说明&逻辑与(且)并且,两边都为真,结果才是真|逻辑或或者,两边都为假,结果才是假^逻辑异或相同为 false,不同为 true!逻辑非取反 短路逻辑…...

4.23学习总结

虽然之前写过的相关dfs和bfs的题,但方法忘的差不多了,重写了一遍相关的算法题,今天完成了岛屿数量的算法题,我利用的是bfs的算法,遍历每个结点,如果是1就count,然后再bfs向四周遍历并标记已经走过 初步看了…...

ElasticSearch:高并发场景下如何保证读写一致性?

在Elasticsearch高并发场景下,可以通过以下多种方式来保证读写一致性: 等待主分片和副本分片都确认(类似半同步机制) 设置consistency参数:在写操作时,可以设置consistency参数来控制写操作的一致性级别。…...

Qt基础007(Tcp网络编程)

文章目录 QTcp服务器的关键流程QTtcp客户端的关键流程TCP协议Socket QTcp服务器的关键流程 工程建立,需要在.pro加入网络权限 创建一个基于 QTcpServer 的服务端涉及以下关键步骤: 创建并初始化 QTcpServer 实例: 实例化 QTcpServer 。 调…...

visio导出的图片过大导致latex格式转成pdf之后很不清楚

联想电脑解决方法 右键打开方式选择【照片】,然后选择调整图片大小,将像素的宽度和高度调低。...

leetcode刷题——判断对称二叉树(C语言版)

题目描述: 示例 1: 输入:root [6,7,7,8,9,9,8] 输出:true 解释:从图中可看出树是轴对称的。 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 解释:从图中可看出最…...

STM32与i.MX6ULL内存与存储机制全解析:从微控制器到应用处理器的设计差异

最近做FreeRTos,以及前面设计的RVOS,这种RTOS级别的系统内存上的分布与CortexA系列里面的分布有相当大的区别,给我搞糊涂了。 目录 STM32(Cortex-M系列)的内存与存储机制 Flash存储内容RAM存储内容启动与运行时流程示例…...

经验分享-上传ios的ipa文件

.ipa格式的二进制文件,是打包后生成的文件,无论我们是放上去testflight测试还是正式上传到app store,都需要先上传到苹果开发者中心的app store connect上的构建版本上。 在app store connect上,上传构建版本的功能,它…...

Linux423 删除用户

查找 上面已查过:无法使用sudo 新开个终端试试 之前开了一个终端,按照deepseek排查 计划再开一个进程 开一个终端 后强制删除时显示:此事将被报告...

AI与Web3.0:技术融合

AI与Web3.0:技术融合 分享一下给大家一个从0开始学习ai 的网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 随着互联网技术的飞速发展,Web3.0作为下一代互联网形态,正以前所未有的速度改变着我们的生活方式和工作模式。Web3.0强…...

Python爬虫第18节-动态渲染页面抓取之Splash使用上篇

目录 引言 一、Splash 的简介与安装 1.1 简介 1.2 安装 二、Splash 的使用 三、Splash Lua 脚本开发 3.1 脚本入口与返回值 3.2 异步处理 四、Splash 对象属性 4.1 args 4.2 js_enabled 4.3 resource_timeout 4.4 images_enabled 4.5 scroll…...

Linux进程状态及转换关系

目录 1、就绪态(Ready) 2、运行态(Running) 3、僵尸态(Zombie) 4、可中断睡眠态(Interruptible Sleep) 5、不可中断睡眠态(Uninterruptible Sleep) 6、…...

Java基础:认识注解,模拟junit框架

认识注解 自定义注解 注解的原理 元注解 解析注解 应该场景-配合反射做juint框架 public static void main(String[] args) {AnnotationDemo4 a new AnnotationDemo4();Class clazz AnnotationDemo4.class;Method[] methods clazz.getDeclaredMethods();for (Method method …...

chrony服务器

时间有什么作用?约定干什么事情,会出问题,双方约定会达成 一旦有一方的时间不准确,约定都会达不成 不联网,计算机运行一个月,你的计算机就会和标准的时间差一两分钟 通常情况下,硬件时间的运…...

Springboot——Redis的使用

在当今的软件开发领域,缓存技术是提升应用性能的关键手段之一。Redis 作为一款高性能的键值对存储数据库,凭借其出色的读写速度和丰富的数据结构,在缓存场景中得到了广泛应用。Spring Boot 作为一款简化 Spring 应用开发的框架,与…...

【EasyPan】removeFile2RecycleBatch方法及递归操作解析

【EasyPan】项目常见问题解答(自用&持续更新中…)汇总版 文件批量转移到回收站方法解析 一、方法总述 removeFile2RecycleBatch方法实现将用户选中的文件/目录及其子内容批量移入回收站的业务逻辑,主要特点: 递归处理&…...

AIGC的伦理困境:机器生成内容是否该被监管?

AIGC的伦理困境:机器生成内容是否该被监管? 在当今数字时代,人工智能(AI)技术的发展日新月异,其中生成式人工智能(AIGC, AI-Generated Content)作为一项前沿技术,正以前…...

缓存一致性

什么是缓存一致性? 当数据库和缓存之间的额数据内容保持同步或最终一致,称为缓存一致性 为什么缓存不一致会发生? 因为缓存和数据库是两个独立系统,它们的更新过程不是原子操作,就可能发生以下情况: //…...

【Java学习方法】终止循环的关键字

终止循环的关键字 一、break 作用:跳出最近的循环(直接结束离break最近的那层循环) 使用场景:一般搭配if条件判断,如果满足某个条件,就结束循环,(场景:常见于暴力枚举中…...

bert学习

BERT Google在2018年提出的​​预训练语言模型​​,通过双向Transformer结构和大规模预训练。 核心特点 双向上下文 与传统模型(如LSTM或单向Transformer)不同,BERT通过同时考虑单词的​​左右上下文​​来捕捉更丰富的语义信息。…...

读书笔记:淘宝十年产品与技术演进史

作者:大淘宝技术 原文地址:读书笔记:淘宝十年产品与技术演进史 本文是对《淘宝十年产品事》与《淘宝技术这十年》两本书的阅读笔记总结。通过回顾淘宝过去十年在产品、技术、架构、中间件及开放平台等方面的发展历程,展现了其从初…...

ROS 快速入门教程02

5. Node 节点 以智能手机为例,当我们使用智能手机的某个功能时,大多时候在使用手机的某个APP。同样当我们使用ROS的某个功能时,使用的是ROS的某一个或者某一些节点。 虽然每次我们只使用ROS的某一个或者某一些节点,但我们无法下…...

卷积神经网络常用结构

空间注意力机制(Spatial Attention)详解 空间注意力机制(Spatial Attention)详解 空间注意力机制是计算机视觉中的重要组件,它使网络能够选择性地关注特征图中的重要空间区域,同时抑制不相关区域的影响。 空间注意力机制结构图 空间注意力机制详细解析…...

neo4j中节点内的名称显示不全解决办法(如何让label在节点上自动换行)

因为节点过多而且想让节点中所有文字都显示出来而放大节点尺寸 从neo4j中导出png,再转成PDF来查看时,要看清节点里面的文字就得放大5倍才行 在网上看了很多让里面文字换行的办法都不行 然后找到一个比较靠谱的办法是在要显示的标签内加换行符 但是我的节点上显示的是…...

容器化-Docker-进阶

一、自定义镜像:从基础部署到镜像定制​ (一)Linux 与 Docker 原生部署 Nginx 对比​ Linux 原生部署 Nginx # 安装依赖 sudo apt-get update && sudo apt-get install -y build-essential openssl libpcre3-dev zlib1g-dev # 下载Nginx源码 wget http://nginx.org…...

Sqlserver 自增长id 置零或者设置固定值

在 SQL Server 中,如果需要重置一个表的自增长(Identity)列的当前值,通常有几种方法可以实现。但是,值得注意的是,直接将自增长列的值设置为0并不是一个推荐的做法,因为这会破坏自增长列的连续性…...

状态模式(State Pattern)详解

文章目录 一、状态模式简介1.1 什么是状态模式?1.2 为什么需要状态模式?1.3 状态模式的核心思想二、状态模式的结构2.1 UML类图2.2 各个组件的详细说明2.3 交互过程三、状态模式的实现步骤(以Java为例)步骤1:创建状态接口步骤2:实现具体状态类步骤3:创建上下文类步骤4:…...

Shopee五道质检系统重构东南亚跨境格局,2025年电商游戏规则悄然改写

在2024年的东南亚跨境电商市场,一场以“质量”为核心的深度变革正在上演。作为头部平台的Shopee率先出招,以一套“五道质检流程”打破行业旧格局,不仅有效遏制高企的退货率,更引发从卖家结构到政策制度的连锁反应。 这场质量革命…...

Unity-无限滚动列表实现Timer时间管理实现

今天我们来做一个UI里经常做的东西:无限滚动列表。 首先我们得写清楚实现的基本思路: 所谓的无限滚动当然不是真的无限滚动,我们只要把离开列表的框再丢到列表的后面就行,核心理念和对象池是类似的。 我们来一点一点实现&#x…...

Python高级爬虫之JS逆向+安卓逆向1.6节: 函数基础

目录 引言: 1.6.1 理解函数 1.6.2 定义函数 1.6.3 调用函数 1.6.4 位置实参 1.6.5 关键字实参 1.6.6 爬虫不要进接单群 引言: 大神薯条老师的高级爬虫+安卓逆向教程: 这套爬虫教程会系统讲解爬虫的初级,中级,高级知识,涵盖的内容包括基础爬虫,高并发爬虫的设计与…...

集结号海螺捕鱼组件搭建教程与源码结构详解(第四篇)

本篇将聚焦“冰封领域”场景构建与性能优化策略。本节适合有Unity经验的技术团队,对大型特效场景优化、C与Unity协同通信及资源动态加载有深入需求的开发者。 一、冰封领域场景设计理念 冰封领域是高难度玩法场景,常用于高段位玩家房间,场景…...

02.Python代码Pandas - Series全系列分享(使用.特点.说明.取值.函数)

02.Python代码Pandas - Series全系列分享(使用.特点.说明.取值.函数) 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望…...

星火燎原:Spark技术如何重塑大数据处理格局

在数字化浪潮席卷全球的今天,数据已成为企业发展与社会进步的核心驱动力。面对海量且复杂的数据,传统的数据处理技术逐渐显得力不从心。而Apache Spark作为大数据领域的明星框架,凭借其卓越的性能与强大的功能,如同一束璀璨的星火…...

AI大模型和人脑的区别

为什么人脑没有幻觉,但是 AI 大语言模型有幻觉? 人脑和大型语言模型(LLM)在处理信息的方式上存在根本差异,这导致了幻觉现象主要出现在LLM中。LLM的幻觉是指模型生成了貌似合理但实际上错误或虚构的内容。 LLM的工作…...

第一章:基于Docker环境快速搭建LangChain框架的智能对话系统:从langchain环境搭建到多轮对话代码实现(大语言模型加载)

文章目录 前言一、langchain环境搭建1、docker容器搭建2、docker容器连接修改密码容器内容修改物理机修改 3、langchain安装 二、langchain构建简单智能对话示例1、基于deepseek的简单问答Demo2、langchain的invoke、stream与astream生成方法1、langchain的invoke、stream与ast…...

数据结构的学习(1)二分查找,利用二分查找找局部最小值,选择排序,冒泡排序,插入排序,位运算的基础知识

一、二分查找某个元素 (1)查找是否存在某个元素在数组中 思想: 1)先看中间位置的值 2)如果中间位置的值大于目标值说明目标值在整个数组中偏左的位置,改变右边界,即Right Mid - 1; 3&#xf…...

vue2+Vant 定制主题

参考文档:Vant主题定制-CSDV博客 vant提供了一套默认主题,若想完全替换主题是或者其他样式,则需要定制主题。 定制方法 1、main.js文件引入主题样式源文件 // 导入并安装 Vant 组件库 import Vant from vant // 切记:为了能够覆…...

【自然语言处理与大模型】大模型参数规模与部署配置调查2025第一季度

调查大模型参数规模与部署配置之间的关系。探讨如何在不同硬件和场景下优化大模型的部署。 一、 当前主流模型的参数规模对比 (1)当前主流模型有哪些 参考全球最大AI开源社区Hugging Face发布的榜单、上海AI实验室推出的开放评测体系OpenCompass和国内开…...

香港科技大学广州|先进材料学域博士招生宣讲会—南开大学专场

香港科技大学广州|先进材料学域博士招生宣讲会—南开大学专场 时间:2025年4月25日(星期五)10:00 地点:南开大学八里台校区中心实验室报告厅 宣讲嘉宾: 李昊翔 助理教授 TAN Chee Keong 助理教授 教授亲…...