最简单的天气查询agent

基于langchain的Agent(实现实时查询天气) 智能体 阅读详情

使用ollama实现一个最简单的天气查询agent,使用了qwen3:0.6b模型,可以作为入门学习,所有代码由deepseek完成。案例在ubuntu完成。

一、安装ollama

参考菜鸟教程 https://www.runoob.com/ollama/ollama-install.html

安装完成后执行ollama serve启动ollama服务,然后使用ollama pull qwen3:0.6b下载一个模型

二、执行Python程序

安装ollama python库:

pip install ollama

命令行执行:python3 weather-agent.py

所有代码如下:

import json
import requests
import ollama
from datetime import datetime

class WeatherAgent:
    def __init__(self, model_name='qwen3:0.6b', country_code='CN'):
        """
        初始化天气Agent
        
        Args:
            model_name: Ollama使用的模型名称
            country_code: 默认国家代码(CN=中国)
        """
        self.model_name = model_name
        self.country_code = country_code
        self.geocoding_url = "https://geocoding-api.open-meteo.com/v1/search"
        self.weather_url = "https://api.open-meteo.com/v1/forecast"
        
    def get_coordinates(self, city_name):
        """
        通过Open-Meteo Geocoding API查询城市的经纬度
        
        Args:
            city_name: 城市名称
            
        Returns:
            tuple: (纬度, 经度, 完整城市名, 时区) 或 (None, None, None, None)
        """
        params = {
            "name": city_name,
            "count": 1,
            "language": "zh",
            "countryCode": self.country_code
        }
        
        try:
            response = requests.get(self.geocoding_url, params=params)
            response.raise_for_status()
            data = response.json()
            
            if data and data.get("results"):
                location = data["results"][0]
                latitude = location["latitude"]
                longitude = location["longitude"]
                full_name = location.get("name", city_name)
                timezone = location.get("timezone", "Asia/Shanghai")
                return latitude, longitude, full_name, timezone
            else:
                return None, None, None, None
                
        except requests.exceptions.RequestException as e:
            print(f"❌ Geocoding API调用失败: {e}")
            return None, None, None, None
        except json.JSONDecodeError as e:
            print(f"❌ 解析地理编码数据失败: {e}")
            return None, None, None, None
    
    def get_weather(self, latitude, longitude, timezone, date=None):
        """
        获取天气数据
        
        Args:
            latitude: 纬度
            longitude: 经度
            timezone: 时区
            date: 可选,指定日期(格式:YYYY-MM-DD)
            
        Returns:
            dict: 天气数据或None
        """
        params = {
            "latitude": latitude,
            "longitude": longitude,
            "current_weather": "true",
            "timezone": timezone,
            "hourly": "temperature_2m,relativehumidity_2m,windspeed_10m"
        }
        
        # 如果指定了日期,添加每日预报
        if date:
            params["daily"] = "temperature_2m_max,temperature_2m_min,weathercode"
        
        try:
            response = requests.get(self.weather_url, params=params)
            response.raise_for_status()
            return response.json()
            
        except requests.exceptions.RequestException as e:
            print(f"❌ Weather API调用失败: {e}")
            return None
    
    def extract_parameters(self, user_query):
        """
        使用Ollama从用户问题中提取查询参数
        
        Args:
            user_query: 用户输入的自然语言问题
            
        Returns:
            dict: 包含city和date的字典
        """
        prompt = f"""
你是一个参数提取助手。从以下用户问题中提取天气查询所需的信息。
请只返回一个JSON对象,包含以下字段(如果信息缺失则填null):
- city: 城市名称(中文,例如"北京"、"上海"、"杭州")
- date: 查询的日期(格式为YYYY-MM-DD,如果未指定则填null)

用户问题: "{user_query}"

示例输出: {{"city": "北京", "date": null}}
重要:只返回JSON,不要有其他解释性文字。
"""
        try:
            response = ollama.chat(model=self.model_name, 
                                 messages=[{'role': 'user', 'content': prompt}])
            content = response['message']['content']
            
            # 提取JSON部分
            start = content.find('{')
            end = content.rfind('}') + 1
            if start != -1 and end != 0:
                params = json.loads(content[start:end])
            else:
                params = json.loads(content)
            
            return params
            
        except Exception as e:
            print(f"⚠️ 参数提取失败: {e}")
            return {"city": None, "date": None}
    
    def format_weather_response(self, weather_data, city_name, user_query, error=None):
        """
        使用Ollama将天气数据转化为自然语言回复
        
        Args:
            weather_data: API返回的天气数据
            city_name: 城市名称
            user_query: 用户原始问题
            error: 错误信息(如果有)
            
        Returns:
            str: 自然语言回复
        """
        if error:
            prompt = f"""
用户问: '{user_query}'
发生错误: {error}
请礼貌地告知用户无法获取天气信息,并建议稍后重试或检查城市名称是否正确。
用友好、体贴的中文回复。
"""
        else:
            # 提取当前天气信息
            current = weather_data.get('current_weather', {})
            temp = current.get('temperature')
            wind_speed = current.get('windspeed')
            weather_code = current.get('weathercode')
            
            # 天气代码说明
            weather_desc = {
                0: "晴天☀️", 1: "主要晴天🌤️", 2: "局部多云⛅", 
                3: "阴天☁️", 45: "雾🌫️", 51: "小雨🌧️", 
                61: "雨🌧️", 71: "雪❄️"
            }.get(weather_code, "未知天气")
            
            # 获取小时温度
            hourly = weather_data.get('hourly', {})
            current_hour = datetime.now().hour
            temps = hourly.get('temperature_2m', [])
            
            prompt = f"""
用户问: "{user_query}"
查询城市: {city_name}

当前天气数据:
- 温度: {temp}°C
- 风速: {wind_speed} km/h  
- 天气状况: {weather_desc}

请用自然、友好的中文回复用户。回复应该:
1. 先直接回答天气情况
2. 给出温度感受建议(如是否需要添衣、带伞等)
3. 语气亲切,可以适当使用表情符号

回复要简洁明了,不要超过3句话。
"""
        
        try:
            response = ollama.chat(model=self.model_name, 
                                 messages=[{'role': 'user', 'content': prompt}])
            return response['message']['content']
        except Exception as e:
            print(f"⚠️ 生成回复失败: {e}")
            return f"抱歉,我暂时无法生成友好的回复。当前{city_name}的温度是{temp}°C。"
    
    def process_query(self, user_query):
        """
        处理用户查询的主流程
        
        Args:
            user_query: 用户输入的问题
            
        Returns:
            str: 最终回复
        """
        print(f"🔍 正在分析: {user_query}")
        
        # 步骤1: 提取参数
        params = self.extract_parameters(user_query)
        city = params.get('city')
        date = params.get('date')
        
        if not city:
            return "🤔 抱歉,我没能从您的话中识别出城市名称。\n💡 请尝试说:'北京今天天气怎么样?'"
        
        print(f"📍 查询城市: {city}, 日期: {date or '今天'}")
        
        # 步骤2: 获取经纬度
        lat, lon, full_name, tz = self.get_coordinates(city)
        if lat is None:
            return f"❌ 抱歉,未能找到城市 '{city}' 的坐标信息。\n💡 请确认城市名称是否正确,或尝试使用更知名的城市名。"
        
        print(f"✅ 找到城市: {full_name} ({lat:.4f}, {lon:.4f})")
        
        # 步骤3: 获取天气数据
        weather_data = self.get_weather(lat, lon, tz, date)
        if weather_data is None:
            return f"❌ 获取 {full_name} 的天气数据失败,请稍后重试。"
        
        print(f"✅ 成功获取天气数据")
        
        # 步骤4: 生成友好回复
        reply = self.format_weather_response(weather_data, full_name, user_query)
        return reply
    
    def run_interactive(self):
        """运行交互式命令行界面"""
        print("=" * 50)
        print("🌤️  天气查询Agent启动")
        print("=" * 50)
        print(f"📦 使用模型: {self.model_name}")
        print(f"🌍 默认国家: {self.country_code}")
        print("💡 输入 'exit' 或 'quit' 退出程序")
        print("-" * 50)
        
        # 检查Ollama服务
        try:
            ollama.list()
            print("✅ Ollama服务连接正常")
        except Exception:
            print("❌ 无法连接到Ollama服务")
            print("请确保:")
            print("1. Ollama已安装 (访问 https://ollama.com)")
            print("2. Ollama正在后台运行")
            print("3. 已下载模型: ollama pull " + self.model_name)
            return
        
        while True:
            try:
                user_input = input("\n🤔 您想问: ").strip()
                
                if user_input.lower() in ['exit', 'quit', '退出']:
                    print("👋 再见!")
                    break
                
                if not user_input:
                    print("💡 请输入问题,例如:'上海今天天气怎么样?'")
                    continue
                
                # 处理查询
                response = self.process_query(user_input)
                print(f"\n🤖 助手: {response}")
                
            except KeyboardInterrupt:
                print("\n\n👋 再见!")
                break
            except Exception as e:
                print(f"❌ 发生意外错误: {e}")
                print("💡 请重试或检查网络连接")

def main():
    """主函数"""
    # 可以修改这里的参数
    agent = WeatherAgent(
        model_name='qwen3:0.6b',  # 使用的Ollama模型
        country_code='CN'      # 国家代码(CN=中国)
    )
    agent.run_interactive()

if __name__ == "__main__":
    main()
Qwen-Agent的使用示例-天气查询(function calling) 天气查询-function call 阅读详情

相关推荐

【基于 LangChain 的异步天气查询5】多轮对话天气智能助手

本项目是一个智能聊天和天气查询助手,结合了文本和语音输入/输出功能,提供互动式对话体验。主要功能包括:1. 天气查询:通过GeoNames和OpenWeatherMap API获取天气数据,支持中文城市名查询,返回天气描述、温度、湿度、风速等信息。2. 多轮对话:使用RunnableWithMessageHistory和ChatMessageHistory实现多轮对话,保存聊天记录,确保对话连贯性。3. 语音交互:通过speech_recognition和pyttsx3库实现语音输入和输出,提升用户体验。4

qq_62223405的博客 2327

08-5分钟用langchain实现一个能查天气的Agent

Agent可以经过反复调研为我们出股票分析报告,可以根据我们的需求和预算帮我们制定旅游计划,甚至可以根据我们的需求帮我们写一个网站。它不再是简单的只能对话的“玩具”,而是可以规划和执行的帮手。也就是具有了Resoning + Action的能力。能根据模型的推理和规划,来调用工具,完成复杂任务,这就是对Agent最基本的理解。重点是根据模型的推理和规划来调用工具,而不是人为硬编码固定流程来调用工具,后者我们一般称为workflow。

错位竞争,单点突破。 1463

Qwen-Agent的使用示例-天气查询(MCP)

天气查询- MCP协议实现大模型与外部天气服务的解耦调用

jsut_rick的博客 1536

Ai大模型丨清华大学104页pdf分享《DeepSeek从入门到精通》

最近,一份重磅资料在 AI 圈引发广泛关注 ——《DeepSeek 从入门到精通》。这本长达 104 页的专业文档,由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后团队精心撰写。余梦珑博士后团队在人工智能领域有着深厚的学术造诣和丰富的实践经验,长期致力于元宇宙、人工智能技术与应用等方向的研究。他们凭借对 DeepSeek 深入的研究和理解,将大量专业知识和实用技巧融入到这份文档中,为读者呈现出一个全面且深入的 DeepSeek 世界。

weixin_72959097的博客 2069

LangChain Agent实战:构建智能天气查询助手

本文详细介绍了如何使用LangChain Agent框架构建一个智能天气查询助手。通过理解Agent的“思考-行动-观察”核心机制,文章指导读者从环境搭建、自定义天气工具开发,到集成大语言模型与记忆模块,最终组装并调试一个能理解上下文、进行多轮对话的智能体。实战案例展示了Agent如何精准调用工具实现实时查询天气,并提供了性能优化与常见问题解决方案。

weixin_29292431的博客 246

LangChain Agent实战:构建多轮对话天气查询助手

本文详细介绍了如何使用LangChain框架构建一个多轮对话天气查询助手。通过整合Agent和Memory组件,实现了上下文感知的天气查询功能,支持自然语言输入和多城市对比查询。文章涵盖环境配置、工具创建、记忆管理以及性能优化等实战技巧,帮助开发者快速实现智能对话式天气查询应用。

weixin_42522552的博客 400

Langchain编写一个简单的天气查询Agent

本文介绍了一个基于LangChain的天气查询助手实现方案。系统使用阿里云百炼模型(qwen3.5-27b)作为基础模型,通过集成天气API工具函数get_weather()获取实时天气数据。实现要点包括:1) 使用@tool装饰器定义天气查询工具;2) 配置ChatOpenAI连接阿里云API;3) 设计友好的系统提示词规范输出格式;4) 采用create_agent创建具备工具调用能力的智能体。该系统能够将原始JSON数据转化为自然语言回答,为用户提供简洁明了的天气信息查询服务。

storyseekee的博客 260

天气查询 Agent 进阶教程

本文是本地Qwen3-4B天气查询Agent进阶教程,分模型下载、API服务、LangGraph智能体三脚本搭建完整链路,遵循循序渐进学习路径。文档讲解软硬件环境配置、Python基础、FastAPI接口、大模型推理与Agent工具循环逻辑,提供全套代码、运行步骤与排错方案,搭建兼容OpenAI标准、可自主调用天气API的本地AI问答程序。

桃李不言下自成蹊 469

一分钟学会一个上班摸鱼的OpenClaw Skill技能之每日天气推送

摘要:本文介绍如何利用OpenClaw Skill实现每日天气自动推送功能。通过定时任务、数据获取和消息推送三个核心能力,系统可自动查询百度天气并发送至QQ/企业微信等平台。实现步骤包括创建Skill目录、编写配置文件、实现核心逻辑和设置定时任务(如cron表达式0 8 * * *)。该功能能节省每日手动查询时间,自动提供穿衣建议和降雨提醒,提升工作效率。(149字)

yinjl123456的博客 298

天气查询 Agent 零基础教程

本教程以「天气查询 Agent」为项目,采用零跳跃学习原则,引导零基础读者从环境搭建到代码实现,完整构建一个基于 LangGraph + Ollama 本地大模型的 AI Agent。教程共 9 步,涵盖工具函数定义、状态管理、模型初始化、图构建与运行,并在动手前提供执行流程总览和数据流向说明,确保读者先理解再编码、逐步掌握 Agent 核心机制。

桃李不言下自成蹊 826

SPAD 单光子雪崩二极管

SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。

qq_42786033的博客 1万+

掌握大模型工具调用:轻松实现查天气、做计算,小白也能学会并收藏!

对于正在迷茫择业、想转行提升,或是刚入门的程序员、编程小白来说,有一个问题几乎人人都在问:未来10年,什么领域的职业发展潜力最大?答案只有一个:人工智能(尤其是大模型方向)当下,人工智能行业正处于爆发式增长期,其中大模型相关岗位更是供不应求,薪资待遇直接拉满——字节跳动作为AI领域的头部玩家,给硕士毕业的优质AI人才(含大模型相关方向)开出的月基础工资高达5万—6万元;即便是非“人才计划”的普通应聘者,月基础工资也能稳定在4万元左右。

大模型研究中心 399

MitoZ|动物线粒体基因组组装注释软件

一、MitoZ是什么 是基于python3开发的可以自动过滤双端测序的原始数据、mt基因组组装、mt基因组注释以及mt基因组可视化的工具。 官方的说明文档地址:https://gitee.com/CHANyp/MitoZ#citation 二、MitoZ的安装 git clone https://gitee.com/CHANyp/MitoZ.git cd MitoZ/version_2.4-alpha tar -jxvf release_MitoZ_v2.4-alpha.tar.bz2 三、运行Mito

qq_50637636的博客 1万+

python机器人Agent编程——实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent

在本文中,我们将逐步实现一个手机号归属地天气查询agent。这个agent将能够接收用户的手机号输入,自动查询该手机号的归属地,并进一步根据获取的城市信息查询该地区的实时天气信息。我们将使用Python语言,并结合qwen_agent库,及fastapi服务来实现这个功能。最后,我们创建一个Assistant实例,这个agent将使用我们定义的工具来处理用户的输入,并返回归属地和天气信息。# 配置LLM'model': 'qwen',#这里可以根据自己的大模型类型修改配置参数。

JAMES费的空间 1670

固定资产报废的损失鉴定怎么做?

在社会生产的日常中,企业经常会遇到固定资产报废的损失鉴定,那么怎么去做鉴定?哪些情况下能申请固定资产报废损失鉴定呢? 今天,华碧鉴定就和大家说一说固定资产报废损失鉴定那些事儿。 符合下列条件之一的固定资产可申请报废: 1、使用年限过长,功能丧失,完全失去使用价值,或不能使用并无修复价值的; 2、产品技术落后,质量差,耗能高,效率低,已属淘汰且不适于继续使用,或技术指标已达不到使用要求的; 3、严重损坏,无法修复的或虽能修复,但累计修理费已接近或超过市场价值的; 4、主要附件损坏,无.

weixin_50362670的博客 2116

Android系统开发工程师面试指南与参考答案

本文整理了Android系统开发工程师面试常见问题与参考答案。核心内容涵盖:1)Framework层定制方法,如修改HAL和系统服务;2)ANR问题分析工具(systrace)与解决方案;3)性能优化实践,包括开机加速和功耗管理;4)四大组件工作机制与应用案例;5)Native崩溃调试技巧。文章强调通过AOSP源码研究、工具使用和项目案例准备来提升面试表现,重点考察应聘者的系统开发深度和实操能力。参考答案均基于实际开发经验,提供可量化的优化成果说明。

郑伟强dev的专栏 257

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

MCP,即Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年底推出的一项创新技术协议。在它刚问世时,并未引起太多关注,反响较为平淡。然而,随着今年智能体Agent领域的迅猛发展,MCP逐渐进入大众视野并受到广泛关注。今年2月,Cursor宣布正式支持MCP功能,这无疑为MCP的推广按下了加速键,使其迅速走进了众多开发人员的视野。从本质上讲,MCP是一种在智能体Agent开发过程中被广泛认可并遵循的规范。

hooksten的博客 6185

京东/淘宝商品评论情感分析:基于Python的大规模评论爬取与NLP情感分析实战

在当今电商蓬勃发展的时代,用户评论已成为影响消费者购买决策的关键因素。本文将详细介绍如何使用Python最新技术栈爬取京东和淘宝商品评论,并运用先进的自然语言处理技术对评论进行情感分析,识别用户的好评与差评倾向。通过完整的代码实现和深入的技术解析,帮助读者掌握从数据采集到情感分析的全流程。本文详细介绍了如何使用Python最新技术栈实现京东和淘宝商品评论的爬取与情感分析。通过结合异步爬虫、反爬策略、BERT情感分析等先进技术,我们构建了一个完整的评论分析系统。高效爬取。

2201_76125261的博客 1403

天气查询Agent实现

本文介绍了一个基于MCP和A2A架构的天气查询系统。系统由MCP服务器、MCP客户端、A2A服务器和A2A客户端组成,通过SSE/Stadio/Streamable方式实现工具调用。第二章详细说明了天气查询MCP的实现,包括MCP服务器搭建(提供get_weather工具)、A2A服务器实现(处理天气查询任务)和客户端调用流程。第三章阐述了完整执行流程:客户端发送任务到A2A服务器,通过MCP客户端调用MCP服务器工具,最后将结果返回给客户端。整个系统实现了从客户端请求到服务端处理的完整闭环。

2401_84059420的博客 416

Marvell 88Q6113 如何制作一个完整的量产固件88Q6113_flash.bin并进行烧录

本章节介绍如何基于Marvell工具链,制作一个完整的量产固件88Q6113_flash.bin,集成用户自定义的配置文件 config.bin,用于88Q6113的Flash烧录。注:Marvell 88Q5072 与 Marvell 88Q6113 的配置流程是一样的。

老板来份猪脚拼叉烧的博客 2011

GD32F103 -- LIN从机通讯 -- 程序代码 (精简版)

注意!!!注意!!!这是GD32从机通讯!!!GD32!!!GD32!!!

晴朗luo的博客 2501

Qwen-Agent的使用示例-天气查询

本文展示了如何使用Qwen-Agent实现天气查询功能。主要包含三个部分:1)使用lru_cache优化的天气查询函数get_weather;2)通过注册自定义工具类WeatherTool封装查询接口;3)创建Assistant实例并配置模型参数。代码演示了完整的交互流程:用户提问"广州是否需要带伞"→Agent自动调用天气工具→整合信息生成建议。整个过程体现了参数传递、工具调用和响应处理的完整机制,可作为Qwen-Agent功能扩展的参考模板。

jsut_rick的博客 1077

基于matlab的图像HOG特征提取算法仿真

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 730

如何利用LangChain1.0快速进行天气查询

本文介绍了一个基于LangChain1.0框架的智能天气查询系统,通过通义千问大语言模型和知心天气API实现自然语言交互。系统包含Agent代理模块和天气工具模块,支持用户用中文查询指定城市天气。核心功能包括API数据获取、信息格式化处理以及错误机制,采用模块化设计和环境变量管理。文章详细说明了系统架构、代码实现、依赖库及使用方法,并提出了扩展建议。

junming4的专栏 1116

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

AI Agent(六)- Dify 自定义工具实战 - 基于百度天气 API 搭建天气查询 Agent(天气智查助手)

本文介绍了基于百度天气API和Dify平台开发天气查询AI助手的完整流程。主要内容包括:1) 申请百度地图开放平台AK密钥;2) 编写符合OpenAPI 3.1.0规范的接口描述文件;3) 在Dify平台配置自定义工具并封装天气查询功能;4) 通过Agent系统提示词设计实现智能天气查询。该方案支持查询实况天气、多日预报、小时预报等数据,适用于各类AI助手集成天气功能的需求。

zcs2312852665的博客 798

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

用LangGraph三行代码打造天气查询Agent:从工具封装到云端部署全流程

本文详细介绍了如何使用LangGraph框架快速构建天气查询智能体。通过封装天气查询工具,利用`create_react_agent`仅需三行代码即可创建具备自主规划和执行能力的Agent。文章还涵盖了利用LangSmith进行调试优化,以及使用LangGraph CLI完成从本地测试到云端部署的全流程,为开发者提供了高效、低门槛的Agent开发与部署实践指南。

y9z0a1b的博客 753

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 解决ubuntu下搜狗输入法在浏览器不可用的问题
SimpleForest
博客等级 码龄10年 171粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值