- 博客(53)
- 收藏
- 关注
原创 FastAPI入门
FastAPI 已成为2025年Python主流Web框架,凭借高性能和异步处理优势,在AI应用和微服务领域占据领先地位。该框架基于Starlette和Pydantic构建,性能比Flask快2-5倍,支持自动生成API文档,强制类型安全验证。2025年最新版本0.127.0深度集成主流AI库,成为LLM服务的事实标准。与Flask和Django相比,FastAPI在高并发API场景表现突出,推荐用于新项目开发。框架支持模块化路由设计,开发效率极高,特别适合AI服务快速部署。相比Java的Spring MV
2025-12-23 09:05:55
838
原创 Spring AI/Spring AI Alibaba简介
Spring AI:Java生态的AI开发利器 Spring AI是Spring官方推出的开源框架,为Java开发者提供标准化接口,简化OpenAI、Azure等主流AI服务的集成。其核心优势在于与Spring Boot/Cloud无缝融合,支持多模态模型、向量数据库及抽象化API设计(如ChatClient、VectorStore),显著降低AI开发门槛。 Python vs Java vs Node.js AI技术栈选择 Python AI:生态最全(PyTorch/TensorFlow),适合算法研究
2025-12-22 22:43:19
842
原创 MCP Server + Agent入门示例
本文介绍了MCP(Multi-Channel Protocol)传输模式的三种实现方式及其应用场景。主要内容包括:1)stdio模式(标准输入输出),适用于本地开发,具有低延迟和高安全性;2)Streamable HTTP模式(2025新标准),支持远程部署和复杂网络环境;3)SSE模式(传统兼容),用于维护旧系统。文章提供了代码仓库链接(hello-agent和hello-mcp-server),详细说明了各模式的启动流程和配置方法,并附有流程图说明。开发建议指出,新项目应优先支持stdio和Stream
2025-12-21 20:50:27
665
原创 Python 生态中最受瞩目的“全能型”管理工具——uv
摘要:2025年Python生态迎来革命性工具uv,由Astral团队开发,是一款Rust编写的全能型管理工具。其核心优势包括:1) 极致速度,安装比pip快10-100倍;2) 整合pip、pyenv、virtualenv等5类工具功能;3) 支持现代项目管理标准。提供跨平台安装脚本,支持国内镜像配置。常用命令涵盖项目初始化、虚拟环境管理、依赖管理等功能,如uv init创建项目、uv venv管理环境、uv add安装依赖等。通过统一工具链大幅提升Python开发效率。
2025-12-21 10:28:59
271
原创 poetry 常用命令
本文总结了Poetry工具的核心命令,按功能分为四类:1)项目初始化与配置,包括创建项目、配置版本和环境路径;2)依赖管理,涵盖依赖安装、更新、移除及版本锁定;3)虚拟环境管理,涉及环境创建、激活、信息查看等操作;4)其他常用功能,如Poetry自身更新和项目发布。这些命令为Python项目提供了便捷的依赖管理和虚拟环境控制功能。
2025-12-14 23:18:04
295
原创 今天看点简单的——OpenAI API
OpenAI API提供多领域AI模型服务,包括文本生成(GPT系列)、代码处理(Codex)、图像生成(DALL·E)和语音识别(Whisper)等。API采用token计费机制,通过角色系统(system/user/assistant)管理对话上下文。在多轮对话中,token数量会随历史记录累积而线性增长,可能导致性能下降和成本上升。建议采用分段存储、内容压缩和动态监控等优化策略,如使用tiktoken库计算token数、保留最近对话、生成摘要等,以控制token消耗并避免超过模型限制(如GPT-4的8
2025-12-08 22:23:22
512
原创 python依赖管理(pipenv、poetry 与 pip freeze)
Python虚拟环境管理工具对比显示,Poetry凭借依赖管理、打包一体化和版本锁定功能成为当前最受欢迎的选择。Pipenv虽曾受官方推荐,但因性能问题热度下降,而pip freeze仅适合基础依赖导出。Poetry通过pyproject.toml统一管理依赖,自动生成poetry.lock确保环境一致性,支持开发依赖隔离和包发布,成为团队协作和开源项目的首选。Pipenv仍适用于快速开发,但大型项目可能面临性能瓶颈。最佳实践建议为每个项目创建独立虚拟环境,使用锁定文件确保依赖一致性,并根据项目规模选择工具
2025-12-07 21:21:17
599
原创 杂记:泛化
摘要:本文探讨了机器学习中的泛化能力及其提升方法,重点分析了常识推理与组合泛化的结合应用。文章首先定义了泛化能力,特别是推理泛化能力,强调其在处理新问题中的重要性。随后提供了增强泛化能力的实用技巧,包括数据扩充、模型简化和训练策略优化。核心部分深入剖析了常识推理与组合泛化的互补关系,提出通过神经符号系统、强化学习等方法来融合二者的优势。这种结合使AI既能运用常识进行逻辑判断,又能理解新概念组合,是实现通用人工智能的关键突破。
2025-12-07 18:10:54
877
原创 Agentic AI
Agentic AI:从被动响应到主动执行的智能范式 Agentic AI代表了AI技术的重大飞跃,通过五大工作模式实现自主任务处理: 反思模式:通过自我审查优化输出质量 工具调用:接入外部系统扩展能力边界 推理-行动:形成动态决策闭环 规划模式:拆解复杂任务为可执行步骤 多代理协作:多个专业AI协同工作 与单一AI Agent不同,Agentic AI更像"智能指挥官",能协调多个专业代理完成复杂流程。其框架包括AutoGen、CrewAI等,适用于医疗、金融等需要多领域协作的场景。学
2025-12-07 17:33:04
623
原创 RAG(Retrieval Augmented Generation)入门
RAG(检索增强生成)技术结合外部知识检索与语言模型生成,提升回答质量。其处理流程包括:文档分块(固定大小、语义或递归分块策略)、向量化存储、相似度检索、上下文集成与最终生成。LangChain作为开发框架,FAISS用于高效检索,DeepSeek负责生成回答。分块方法针对不同场景优化,如固定分块适合技术文档,语义分块保持连贯性,递归分块处理混合长度文本。该技术平衡检索精度与生成质量,避免信息丢失和语义断裂。
2025-12-07 15:01:51
922
原创 LangChain与模型
本文介绍了LangChain支持的主要模型类别和使用方法,包括: 支持的模型类型: OpenAI系列(GPT-4、GPT-3.5等) Anthropic系列(Claude-3等) 开源模型(LLaMA、Mistral等) 云端API模型(Google、Amazon等) 嵌入模型(OpenAI、Hugging Face等) 使用示例: 演示了如何调用OpenAI、Anthropic和开源模型 展示了嵌入模型的使用方法 提供了requirements.txt依赖配置 自定义模型封装: 通过继承LLM基类实现自定
2025-12-03 23:28:18
1033
原创 智能体(Agent)
智能体(Agent)是能自主感知环境、决策并执行任务的AI系统,其核心特征包括自主性、工具调用能力和持续学习能力。与传统AI相比,智能体具备闭环执行、复杂任务拆解和动态调整策略的能力。技术架构包含感知模块(采集环境信息)、决策引擎(大模型驱动推理)和执行单元(调用工具完成操作)。主要类型包括物理智能体(如工业机器人)和虚拟智能体(如ChatGPT)。当前面临认知规划能力不足、环境适应性差等技术挑战。主流开源平台如LangChain、AutoGen等提供了从架构搭建到工具集成的完整支持,适用于不同开发需求场景
2025-12-03 08:59:14
1356
原创 从PyTorch到Agent:一位中间件工程师的AI技术栈思考
本文探讨了AI技术栈的分层认知模型,从四层到七层架构逐步深入。作者作为中间件工程师,反思了过度聚焦算法模型层(如PyTorch)的局限,强调需要整体把握AI系统架构。重点分析了智能体层(Agent)的核心技术,包括自主决策、环境感知和多智能体协作等能力。同时指出数据层的基础作用和交互层的人机协作价值。最后提出学习路径重构建议:分层突破、经验迁移和实践落地,倡导用系统思维整合中间件经验与AI技术创新,实现从"零件"到"整车"的认知升级。
2025-12-02 23:01:19
962
原创 PyTorch数据加载与预处理
PyTorch数据处理工具核心功能解析 本文详细介绍了PyTorch中torch.utils.data模块的关键组件和使用方法。该模块提供了Dataset抽象类、DataLoader数据加载器以及多种Sampler采样策略,构建了完整的数据处理流水线。文章重点讲解了自定义数据集的实现方法,包括数据预处理、多进程加速和内存优化技巧。同时展示了图像数据和表格数据的预处理示例代码,以及常用数据集(如CIFAR-10、ImageNet、COCO等)的分类介绍。通过组合Dataset类和transforms模块,开发
2025-12-01 23:25:48
955
原创 PyTorch自动求导
本文系统介绍了求导的数学定义与PyTorch自动求导机制。数学部分阐述了导数的定义、几何意义及基本公式;PyTorch部分详细解析了自动求导的核心功能,包括动态计算图、requires_grad属性和梯度计算流程,并提供了实际应用示例。文章还对比了backward()和grad()函数的使用场景,解释了梯度控制方法和计算图机制,最后总结了PyTorch自动求导在简化代码、加速开发和提升灵活性方面的优势。内容涵盖从基础理论到实际应用的完整知识链。
2025-12-01 20:25:49
1096
原创 CSTA III包含的ECMA-*
本文摘要介绍了ECMA国际组织发布的CSTA(计算机支持电信应用)系列标准,重点关注Phase III相关规范。核心标准包括: ECMA-269(服务接口框架) ECMA-285(ASN.1协议) ECMA-323(XML协议实现) ECMA-354(应用会话服务) ECMA-366(Web服务扩展) ECMA-348(设备控制服务) 这些标准共同构建了计算机与电信系统集成的技术体系,支持呼叫控制、设备管理、会话服务等功能,适用于呼叫中心、企业通信等场景。Phase III在Phase II基础上扩展了能力
2025-11-30 23:50:27
915
原创 CSTA(Computer Supported Telecommunications Applications)
摘要: CSTA是ECMA制定的计算机与电信系统集成标准,通过统一接口实现跨网络互联。其演进分为三个阶段:CSTA I(1992)定义基础呼叫控制;CSTA II(1994)扩展会议/消息功能;CSTA III(1998)新增计费/多媒体服务并采用模块化设计。标准架构包含服务层(ECMA-217)、协议层(ECMA-218)和应用层,支持CTI中间件与交换机交互。CSTA作为CTI核心技术,通过屏蔽设备差异为呼叫中心提供智能路由、弹屏等标准化服务,并推动传统PBX向NGCC演进,显著降低系统集成成本。
2025-11-30 21:36:44
825
原创 CSTA学习清单
本文提供了一份系统化的CSTA标准学习清单,包含四个核心模块:基础理论(标准体系、通信协议)、技术实现(服务接口、开发工具)、应用实践(系统集成、故障排查)和扩展知识(新技术融合、行业认证)。推荐了官方文档、专业书籍和在线课程等学习资源,并建议分阶段完成学习路径:从概念掌握到项目实践,最终跟踪技术发展。该清单适合从入门到精通CSTA的学习需求,帮助开发者全面掌握计算机电信集成技术。
2025-11-30 21:32:28
929
原创 PyTorch基础概念
PyTorch框架核心概念与功能摘要: PyTorch是一个基于张量运算的深度学习框架,核心组件包括张量数据结构、自动求导机制和动态计算图。它提供丰富的神经网络构建模块,如预定义层、激活函数和优化器,支持完整的训练流程管理。框架特色包括GPU加速、模型并行训练、混合精度计算和内存优化技术。PyTorch生态系统完善,集成了计算机视觉、NLP和音频处理专用库,支持模型部署和跨框架转换。开发者可利用其灵活的API构建自定义网络层,并通过多种正则化技术和调试工具优化模型性能。
2025-11-29 18:02:41
1179
原创 PyTorch模型训练
PyTorch入门与实践指南 本文提供了PyTorch深度学习的完整入门路径,包含从基础理论到实践应用的全流程指导。主要内容包括: 学习资源:推荐了优快云博客和Bilibili视频教程 实践项目:手写数字识别代码示例,涵盖数据准备、模型定义、训练循环等核心步骤 关键概念:详细解释了前向传播、损失函数、反向传播和优化器的工作原理 数据加载:介绍了torchvision.datasets模块的使用方法 模型管理:说明了模型保存与加载的具体实现方式 文中通过代码示例和比喻解释,帮助初学者快速掌握PyTorch的
2025-11-29 00:01:02
544
原创 张量(Tensor)
张量是多维数组的数学抽象,是标量、向量和矩阵的高维扩展,按维度可分为0维标量到更高维张量,按数据类型包含整型、浮点型等。PyTorch提供丰富的张量操作,包括创建、形状变换、组合分割、数学运算及数据类型转换等。张量与数组的关键区别在于张量支持自动微分、GPU加速和计算图,而数组仅用于CPU数值计算。张量在现代计算中不可或缺,既能描述物理量,又能在AI领域高效存储数据、执行神经网络计算,并与硬件高度适配实现高性能运算。
2025-11-25 00:16:18
851
原创 PyTorch 入门到精通学习计划
摘要:这份6-12个月的PyTorch学习计划针对具有10年中间件经验的架构师设计,分为四个阶段:基础概念(1-2个月)、模型构建(2-3个月)、高级部署(2-3个月)和项目实战(2-4个月)。计划强调将中间件技能(如分布式系统、性能优化)迁移到深度学习领域,重点学习分布式训练、模型部署和高并发处理。推荐结合官方文档、在线课程和实践项目,并注重将中间件经验应用于数据管道优化、系统稳定性设计等方面。计划建议保持实践优先,持续关注PyTorch最新发展。(149字)
2025-11-24 00:26:32
863
原创 PyTorch
PyTorch是由Meta开源的深度学习框架,支持动态计算图、张量计算和自动求导,广泛应用于计算机视觉、自然语言处理等领域。它提供CPU和GPU版本,后者计算性能显著提升。PyTorch支持分布式训练,包括数据并行和模型并行,使用DDP等技术实现高效同步。安装时需注意CUDA版本匹配,可通过官网获取安装命令。PyTorch灵活高效,适合研究和开发各类深度学习模型。
2025-11-24 00:21:31
1158
原创 写Python代码前的基础知识
本文介绍了Python开发环境的完整搭建流程及工具链。主要内容包括:1) Windows11下使用pyenv安装和管理Python版本;2) pip包管理工具的核心功能与常用命令;3) requirements.txt文件的作用、生成方式及使用规范;4) Python虚拟环境的优势、常用工具(venv/virtualenv/pipenv)及操作示例。整套方案覆盖了从基础环境搭建到依赖管理的全流程,重点解决了版本隔离、环境一致性和依赖冲突等核心问题,为Python开发者提供了标准化的开发环境配置指南。
2025-11-20 23:19:54
967
原创 大模型评估
文章摘要 大模型评估体系包含多维度标准与方法。评估标准分为通用维度和行业规范:通用维度涵盖基础能力、功能性、使用性能和安全性等;行业规范包括《大模型应用成熟度评估方法》等具体标准。评估方法主要有自动评测(Rule-based和Model-based)和人工评测,前者效率高适合大规模测试,后者准确性优适用于安全敏感场景。评估指标则根据任务类型分为语言模型基础指标、综合能力指标、分类任务指标和多模态指标等。整体评估体系强调全面性、针对性和可操作性。
2025-11-20 08:58:26
836
原创 传统NLP算法
传统NLP算法与当前大模型的对比分析 传统NLP算法主要基于规则和统计模型(如HMM、CRF、SVM),依赖人工特征工程和领域知识,适合特定任务但泛化能力有限。其优势在于可解释性强、计算资源需求低。典型应用包括分词、命名实体识别和文本分类等。 现代大模型(如Transformer架构LLM)采用预训练-微调范式,通过海量数据自动学习语言表示,具备强大的生成能力和跨任务迁移性。它们能处理复杂任务如对话生成和多语言翻译,但需巨额计算资源。 二者存在技术演进关系:大模型继承了传统NLP的核心思想,但通过深度学习实
2025-11-19 22:00:52
849
原创 RAG(Retrieval-Augmented Generation、检索增强生成)
RAG(检索增强生成)是结合信息检索与生成式AI的技术框架,通过检索外部知识库提升生成内容的准确性。其发展经历了三个阶段:2020年Meta提出的朴素RAG(基于关键词匹配)、2021-2023年的进阶RAG(引入反馈闭环和模块化设计)、以及当前的知识增强与多模态融合阶段(采用知识图谱和智能体决策)。技术实现分为离线索引(文档分块和向量化)和在线生成(检索相关块并生成答案)两大流程,关键优化策略包括语义分块、查询转换和结果融合等。该技术特别适用于需要专业知识的垂直领域,能有效解决大模型知识滞后和幻觉问题。
2025-11-19 09:09:14
952
原创 LLMops与MLOps
随着AI技术的快速发展,各领域的运维实践不断演进。LLMOps专注于大语言模型全生命周期管理,强调数据可解释性和内容合规性;MLOps则针对传统机器学习模型,注重自动化部署和性能监控。二者在数据管理(质量vs规模)、评估指标(公平性vs准确率)及工具链(NLP专用vs通用ML)等方面存在显著差异。此外,DataOps聚焦数据工程领域,而DevOps则作为基础理念贯穿其中。这些实践共同推动着AI应用的高效开发和可靠运营,为不同场景的智能化转型提供支撑。(149字)
2025-11-12 23:32:14
1014
原创 大语言模型应用程序框架——LangChain
摘要: 大语言模型应用开发框架可分为通用型(如LangChain、Semantic Kernel)、检索增强(如LlamaIndex)、轻量级(如DSPy)和平台服务(如OpenAI API)四类。其中,LangChain作为开源框架,通过模块化设计(Chains/Agents/Memory)支持端到端应用开发,具备工具集成和记忆管理等特性,适用于问答系统、客服机器人等场景。开发者可通过安装配置、学习核心组件(Model IO/Retrieval)、参考官方文档快速入门,并利用LangSmith/LangS
2025-11-12 00:01:13
723
原创 机器学习概念
机器学习三要素包括模型、策略和算法:模型定义假设空间(线性模型、神经网络等),策略通过损失函数评估模型性能,算法实现参数优化(梯度下降等)。关键数学基础涵盖线性代数、概率统计、微积分优化和离散数学。传统机器学习依赖特征工程,适用于结构化数据;深度学习自动提取特征,适合非结构化数据;强化学习通过环境交互优化决策。三种学习方式在数据需求、特征工程和计算资源方面存在显著差异。
2025-11-10 23:41:00
535
原创 AI工程简介
AI工程是通过工程化方法系统开发AI软件的技术体系,包含数据处理、模型预训练和机器学习流水线等核心技术。其与传统机器学习的主要区别在于强调基于现有基础模型快速构建应用,而非从零开发算法。核心技术实现路径包括开发框架型和应用导向型两种模式,涉及预训练、微调、模型压缩等关键技术。AI工程师需掌握数学基础、编程能力、算法模型和工程实践等核心技能栈,进阶方向涵盖从传统模型训练到大模型微调、Agent开发等前沿领域。此外,AI工程开发需遵循伦理规范和法律法规,确保算法可解释性和数据隐私保护。
2025-11-10 21:44:16
535
原创 提示工程(Prompt Engineering)
摘要:提示工程是通过优化输入指令引导AI模型精准输出的关键技术。其核心在于设计清晰的提示词(如"角色+任务+要求"模板),通过分步拆解、上下文补充等方法提升输出质量。学习路径包括:①视频教程(B站系统课程)②文档资源(GitHub指南)③专业书籍(《深度对话GPT-4》等)。实战要点:明确指令(如限定字数/风格)、提供示例、迭代优化,需注意不同模型的响应差异和伦理风险。该技术已应用于电商文案、行业报告等领域,是人机协作的重要桥梁。
2025-11-09 22:31:48
472
原创 MySQL主从、 MGR及ProxySQL部署
本文主要介绍了MySQL 8.4.3在CentOS 8上的安装配置过程,包括: 通过rpm包安装MySQL服务端和客户端 修改root密码并配置远程访问 主从复制(异步/半同步)配置 慢查询日志设置 创建监控和备份专用账户 使用xtrabackup进行数据库备份与恢复 部署MySQL监控导出器 半同步复制的配置方法 文中详细记录了各环节的命令操作和参数设置,包括GTID配置、账户权限管理、复制状态控制等关键步骤。
2025-11-08 22:19:43
668
原创 入门概念、名词
AI的核心是数据+算法+算力的协同,通过机器学习实现智能。理解其技术边界(如当前无法真正“思考”)有助于合理应用。如需深入某个方向(如NLP或CV),可进一步探讨!1.太详细了!20分钟搞懂100个AI大模型常见的名词概念,内容通俗易懂,零基础小白大模型入门,少走99%弯路!大模型/LLM - 哔哩哔哩2.AI术语宝典:100+人工智能行业核心词汇 - 度小视3.人工智能行业,100个行业术语 - 新浪财经4.AI产品经理必知:100个专业术语,超全汇总!5.人工智能伦理是什么意思 - 知了爱学。
2025-11-08 22:17:24
778
原创 Spring 6.x
Spring 版本的核心模块及其核心组件如下:Spring Core 模块是 Spring 框架最基础的核心模块,主要提供 IoC(控制反转)容器 和 依赖注入(DI) 的基础实现,是其他所有模块的基石。Spring Core 模块的核心用途是管理对象的生命周期和依赖关系。它通过 IoC 容器将对象的创建和依赖关系的维护从代码中剥离出来,交由 Spring 管理,从而实现高内聚、低耦合的设计理念。Spring Core 模块包含以下核心组件:Spring Context 模块是 Spring 框架核心容器的
2025-11-05 23:46:31
990
原创 数据库客户端相关
MySQL与JDBC技术摘要 JDBC是Java连接数据库的标准API,核心流程包括驱动加载、连接建立、SQL执行和结果处理。通过DriverManager建立连接,推荐使用PreparedStatement防止SQL注入。连接参数如useSSL、serverTimezone等可配置安全性和时区处理。 DataSource接口取代DriverManager,支持连接池管理。Druid连接池提供连接复用、SQL监控和防火墙防护,通过预创建连接和LRU算法优化性能。HikariCP采用无锁架构和轻量化设计,在并
2025-10-25 23:57:32
851
1
原创 Arthas
Arthas是阿里巴巴开源的Java诊断工具,提供实时监控、动态诊断和远程管理能力,支持不重启应用进行问题排查。核心功能包括JVM指标监控、方法调用追踪和热修复等。部署方面,需先启动Tunnel Server服务端,客户端可通过Java Agent、Attach已有进程或SpringBoot集成三种方式接入。典型应用场景包括微服务监控、生产问题快速定位等。技术实现基于Java Instrumentation、ASM字节码操作等,通过Tunnel Server建立安全加密连接进行远程诊断。常用命令如heapd
2025-10-23 23:12:07
977
原创 ORM规范与实现
Java ORM技术概览 本文系统介绍了Java生态中的主要ORM规范与实现框架。规范方面重点对比了JPA、JDO和EJB 2.x Entity Beans三大标准,分析了各自的技术特性和适用场景,指出JPA已成为企业级开发的主流选择。框架部分详细比较了Hibernate、MyBatis、EclipseLink等10个活跃ORM工具,从类型、社区支持、映射方式等维度进行多角度评估,并给出选型建议:全自动ORM推荐Hibernate/EclipseLink,需要SQL控制可选MyBatis/JOOQ,轻量级场
2025-10-19 18:15:42
871
原创 微服务分布式事务
本文对比分析了分布式事务的常见方案与主流框架。方案方面,刚性事务(2PC/3PC/XA)适合强一致性场景但性能较差,柔性事务(TCC/Saga等)通过最终一致性实现高并发,还介绍了本地事务表、MQ事务消息等方案的特点与适用场景。框架方面,Seata因支持多种模式和无侵入AT特性成为Java生态首选,其他框架如Hmily、ByteTCC在特定场景下也有优势。技术选型需根据一致性要求、性能需求和开发复杂度综合考量,Seata因其成熟度和社区活跃度推荐作为微服务场景首选方案。
2025-10-11 01:04:27
276
原创 分布式任务调度组件
任务调度框架比较摘要:Quartz基础稳定但集群能力弱,Elastic-Job分片能力强但依赖ZK,XXL-JOB易用性突出,SchedulerX云原生集成好但绑定阿里云,PowerJob支持复杂工作流。Go实现相比Java在并发性能(goroutine更轻量)、启动速度(100ms级)和部署便利性(静态二进制)上有优势,但Java生态成熟(Quartz/XXL-JOB等框架完善),Go缺少同等成熟调度框架。现有Go实现项目活跃度普遍较低,选型需权衡技术栈和场景需求。
2025-10-09 21:48:40
401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅