视觉Agent新突破 | PyVision实现多轮代码生成,Claude-4.0在VLMsAreBlind准确率跃升31.1%

大模型向量数据库机器学习

点击下方名片,关注「集智书童」公众号


picture.image

精简阅读版本

本文主要解决了什么问题

视觉推理中工具使用的静态性与局限性 :现有视觉推理方法通常依赖于预定义的固定工具集和单轮工作流程,限制了模型在动态环境中的适应性和创造性。

缺乏对视觉任务中动态工具生成能力的系统研究 :尽管大语言模型(LLMs)在文本生成和推理方面表现出色,但在视觉推理中,如何利用模型动态生成Python代码来构建定制化工具仍缺乏有效框架。

视觉任务与多模态Agent能力之间的鸿沟 :当前视觉推理系统未能充分利用MLLMs在编码、推理和交互式任务规划方面的潜力,限制了其在真实世界复杂视觉任务中的应用。

本文的核心创新是什么

提出PyVision框架 :构建了一个交互式、多轮的视觉推理框架,使多模态大语言模型(MLLM)能够自主生成、执行和优化针对具体任务的Python代码工具。

动态工具生成机制 :不同于依赖静态工具集的方法,PyVision利用Python丰富的库生态(如OpenCV、Pillow、NumPy等),让模型在多轮对话中动态创建定制化视觉处理工具。

工具分类体系的建立 :作者构建了一个基于聚类分析的工具分类体系,识别出五类主要的视觉处理工具(基础图像处理、High-Level图像处理、视觉Prompt、数值分析、长尾操作),并分析其在不同任务中的使用模式。

系统Prompt与运行时设计 :设计了支持多轮代码生成与执行的系统Prompt机制,并实现了一个隔离、持久且安全的Python运行时环境,保障代码执行的稳定性和交互连续性。

结果相较于以前的方法有哪些提升

性能提升显著

  • • 在V*基准上,PyVision-GPT-4.1将性能提升了7.8%。
  • • 在VLMsAreBlind-mini基准上,PyVision-Claude-4.0-Sonnet的性能从48.1%提升至79.2%,提升幅度达31.1%。
  • • 在VisualPuzzles基准上提升了8.3%。

任务与领域适应性增强

  • • PyVision能够根据任务类型(如数学、逻辑、医学图像、遥感)自动调整工具使用策略,展现出高度的灵活性。
  • • 在医学图像分析中使用对比度增强工具,在遥感任务中使用分割工具,体现领域敏感性。

动态工具的可解释性与透明性

  • • 生成的代码工具具有可读性,使得推理过程具备更高的透明度,便于分析与验证。

局限性总结

对MLLM编码能力的依赖性高 :PyVision的效果在很大程度上依赖于MLLM本身生成可执行Python代码的能力。对于编码能力较弱的模型,可能难以生成有效的工具。

运行效率受限 :每次代码执行需要启动隔离的Python子进程,可能带来一定的延迟,影响实时性。

幻觉与错误代码生成问题 :尽管系统设计增强了代码执行的稳定性,但模型仍可能生成逻辑错误或无效的代码片段,导致结果偏差。

应用场景受限于Python生态 :工具生成局限于Python及其库的支持范围,某些特定视觉任务可能需要其他语言或平台支持的工具。

总结

PyVision通过引入动态工具生成机制,推动了视觉推理向更具Agent特性的方向发展,为未来构建更通用、灵活和可解释的多模态AI系统提供了新思路。

深入阅读版本

导读

大语言模型(LLMs)正越来越多地被部署为Agent,这些Agent具备规划、推理和动态调用外部工具的能力。然而,在视觉推理领域,现有方法在很大程度上仍受限于预定义的工作流程和静态的工具集。在本报告中,作者提出了PyVision,一个交互式、多轮的框架,它使MLLM能够自主生成、执行和优化针对具体任务的Python工具,从而实现灵活且可解释的问题解决。作者开发了一个PyVision创建的工具分类体系,并分析了这些工具在不同基准测试中的使用情况。定量结果表明,PyVision实现了持续的性能提升,在V*上将GPT-4.1提升了7.8%,在VLMsAreBlind-mini上将Claude-4.0-Sonnet提升了31.1%。这些结果指向一个更广泛的转变:动态工具使模型不仅能够使用工具,还能创造工具,推动视觉推理向更具Agent的方向发展。

  1. 引言

AIAgent,即能够自主规划和执行任务的系统,在现代人工智能研究中正迅速获得关注。大语言模型(LLMs)最初为文本生成而构建,现已迅速进化为能够制定计划、与环境交互,并调用外部工具或函数以在极少人工监督下解决复杂问题的强大Agent[3, 13, 15, 26-29, 31-33, 39]。但除了使用工具之外,更深层次的突破在于Agent创造工具的能力,例如根据其任务或环境动态生成定制化的代码片段。这种即时创建问题解决工具的能力不仅强大,更是智能的基础。本杰明·富兰克林曾言:"人类是制造工具的动物"。

有趣的是,使用外部计算模块进行复杂推理的想法并非新颖,尤其在视觉领域。早期工作如神经模块网络[1]引入了一个解析器,该解析器协调一组预定义函数,采用神经符号方法进行视觉推理。这一系列工作启发了后续一系列有影响力的继承者(表1)。与端到端模型不同,这些系统明确表示每个推理步骤,并生成透明且可检查的中间输出,为解决复杂和组合式视觉推理问题提供了有前景的途径。

picture.image

然而,现有工作通常依赖于单轮框架内的预定义工作流程和静态工具集,这限制了现代LLMAgent通过动态工具实现灵活性、创造性和适应性。随着当代MLLMs在编码和推理能力上的不断增强,作者现在可以超越这些在视觉推理方面的限制:模型可以在多轮设置中动态生成代码片段,即时构建针对具体任务的定制工具。

近期的发展,如OpenAI的"Thinking with Images" [36],突显了这一潜力,但它们并未提供对这一过程实际运作方式的有限可见性。在本报告中,作者展示并分析了具备强大编码能力的High-Level多模态大语言模型(MLLM),以作者的案例GPT-4.1 [34]和Claude-4.0-Sonnet [2],如何动态创建和利用基于Python的视觉工具。作者介绍了PyVision,一个交互式框架,其中模型能够根据多模态用户 Query 自主生成、执行和迭代优化Python代码。为支持这一动态工具循环,作者基于Python丰富的成熟库生态系统,并精心设计系统 Prompt 和运行时环境,以实现MLLM与Python解释器之间的无缝、多轮交互。

作者随后深入分析了PyVision生成的工具。为此,作者构建了一个分类体系,将工具分为四大类:基础图像处理、High-Level图像处理、视觉 Prompt 与草图绘制,以及数值与统计分析,此外还有一系列创意性、任务特定的操作(图1)。该框架使作者能够考察不同基准测试和领域如何引发不同的工具使用模式。例如,感知密集型任务常触发裁剪和对比度增强等操作,而数学和逻辑基准测试则更多地依赖视觉草图绘制和数值分析。这些发现突显了动态工具生成的强大功能:它赋予模型适应每项任务和领域独特需求的策略灵活性。

picture.image

主要基准测试的结果表明,PyVision始终提升了强大后端模型的性能。显著的改进包括:使用PyVision-GPT-4.1在V* [51]上提升了7.8%,在视觉谜题[42]上提升了8.3%,并在VLMsAreBlindmini [40]上实现了巨大飞跃,PyVision-Claude-4.0-Sonnet的性能从48.1%提升至79.2%,标志着31.1%的显著增长。作者的结果表明,PyVision充当了后端模型固有优势的放大器:在与感知能力强的模型(如GPT-4.1)结合时,在感知任务上获得更多提升;在与Claude-4.0-Sonnet结合时,在抽象推理上表现更佳。简而言之,动态工具并未超越模型能力,而是释放了它们。

最终,具有动态工具的自主式PyVision不仅提供了实际性能优势,还标志着多模态推理的更广泛转变。通过赋予模型即时发明新计算工具的能力,作者更接近于能够在真实世界视觉推理场景中适应的通用、自主且真正具有创造力的AI系统。

  1. PyVision

作者提出了PyVision,一个交互式、多轮的跨模态推理框架。PyVision赋予多模态大语言模型(MLLM)在推理过程中动态生成和执行Python代码的能力。在每次会话中,MLLM接收输入,生成Python代码,并在隔离的Python运行时环境中执行。生成的输出——文本、视觉或两者兼有——被反馈到MLLM的上下文中,使其能够在多轮中迭代和优化其推理,直到生成最终答案。

与依赖固定工具集的先前方法不同,例如检测模型[24]或分割模型[20],PyVision仅提供Python作为工具构建模块。这种设计利用了Python丰富的科学和视觉库生态系统,例如OpenCV[6]、Pillow[7]、NumPy[12]、Pandas[30]、Scikit-learn[37]和Scikit-image[47]。通过访问这样一个多功能的生态系统,模型能够生成高度自适应的工具,以满足多样化的任务需求。

系统 Prompt 设计。为了指导MLLM的推理和代码生成,PyVision除了用户 Query 外,还使用了一个精心设计的系统 Prompt 。系统 Prompt 编码了操作指令,指定了如何访问输入图像、结构代码以及返回最终答案。关键组件包括:

  • • 鼓励MLLM生成代码以解决任务。
  • • 输入图像或视频帧预先作为名为image_clue_i的变量加载,其中i表示图像索引。这允许模型无需额外的加载代码即可引用图像。作者还提供了图像分辨率,以帮助执行裁剪等操作。
  • • 代码的输出应通过特定函数进行:使用 print() 函数输出文本结果,使用 plt.show() 函数进行图像可视化。
  • • 每个生成的代码块都被包裹在 <code> 标签中以实现可靠的解析。
  • • 最终答案被包含在标签中以实现一致的评估。

采用该设计,作者实验中使用的两个MLLM,GPT-4.1 [34] 和 Claude-4.0-Sonnet [2],能够可靠地生成可解析且可执行的代码块,且极少崩溃。完整的系统 Prompt 语包含在附录A中。

运行时与MLLM的多轮交互。如图2所示,PyVision在MLLM与隔离的Python运行时之间运行一个多轮Agent循环。在第i轮中,MLLM生成代码块code_block_i,执行后产生多模态结果mm_response_i。这些结果被追加到MLLM的上下文中,使其能够在下一轮中更新其推理。该循环持续进行,直到MLLM自动决定输出最终带框答案。

picture.image

为支持MLLM与Python运行环境的稳健有效多轮交互,PyVision结合了以下几个设计原则:

进程隔离:每个代码片段都在由主进程动态创建的子进程中执行,确保一个执行中的崩溃或副作用不会影响整体推理会话。

跨回合持久性:运行时环境跨回合保留变量和状态。这允许模型重用或修改先前回合中中间Python代码执行的结果,例如先裁剪图像,然后应用滤镜,最后计算几何特征以完成任务。

文件系统安全I/O:运行时与MLLM之间的通信通过结构化变量传递[8, 10, 52]进行,并由系统 Prompt 引导。这避免了直接依赖于主机文件系统。

这些机制共同使PyVision成为一个灵活、安全且强大的平台,用于多模态推理任务中的动态工具生成。

  1. 动态生成的工具

不同任务和领域的示例。作者通过图4至图8展示了PyVision在不同任务和领域中的示例,以此开始作者的分析。这些示例说明了PyVision如何自主创建针对特定任务和特定领域的工具,以应对每个独特的挑战,这些工具自发地出现在PyVision的多轮代码生成和执行过程中。

picture.image

picture.image

3.1. 工具分类法

为了更好地理解PyVision生成的工具类型,作者基于其在不同任务和领域生成的代码构建了一个分类体系(第4节)。具体而言,作者从推理会话中收集生成的代码片段,使用OpenAI的API通过text-embedding-3-1arge [35]进行嵌入,并对嵌入结果进行聚类以识别涌现的工具类别。通过检查和解释生成的聚类结果,作者识别出四大工具类别:(1)基础图像处理,(2)High-Level图像处理,(3)视觉 Prompt 与草图绘制,(4)数值与统计分析,以及(5)长尾操作。下面对每一类进行详细说明。

基础图像处理。这些工具是视觉操作和感知的基础。它们使模型能够以改进下游推理的方式清理、对齐和突出图像内容。

  • • 裁剪:对于高分辨率或杂乱的输入,PyVision 通常会裁剪并放大感兴趣的区域。通过推理选择坐标,它有效地执行软目标检测,将注意力集中在最关键的地方。(图3)

picture.image

  • • 旋转:未对齐的图像(例如旋转的地图、倾斜的文档)甚至可能使强大的模型感到困惑。PyVision 将输入旋转到标准方向,使文本、空间布局或方向性线索更容易解读。
  • • 增强:在视觉细微的领域(如医学影像),PyVision 会应用对比度调整和其他增强手段,使潜在结构更加显著。(图4)

High-Level图像处理。这些工具反映了 PyVision 执行中到高等级图像处理的能力。

  • • 分割:通过阈值处理或边缘检测来隔离特定区域,PyVision可以从背景噪声中提取前景目标。

: 检测:PyVision生成边界框或进行边缘检测以定位场景中的目标。这支持后续操作,如计数或测量。(图5)。

picture.image

OCR:不依赖外部API,PyVision自身提取文本内容(例如,标志、标签),实现混合视觉-语言推理。(图3)

视觉 Prompt 和素描。在某些任务中,仅仅感知图像是不够的——模型必须“视觉化思考”[4, 14, 53, 58]。为了帮助自身推理,PyVision在图像上添加辅助 Token ,本质上创建视觉笔记或素描。

  • • 渲染 Token :在物体计数或枚举任务中,PyVision 通常用点或符号 Token 项目。这种外部存储充当计数辅助工具,帮助其跟踪已计数的内容。(图6)。渲染线条:在几何或空间任务(例如迷宫)中,PyVision 绘制辅助线以协助推理,例如显示迷宫中的移动方向。

数值与统计分析。为了超越感知并进入解释阶段,PyVision 调用工具对视觉输入进行定量推理。

  • • 图像直方图:通过绘制像素强度分布,PyVision能够分析光照、对比度等,这对于直方图具有实际意义的领域至关重要(图4)。 数值分析:在解决视觉数学问题或比较量值时,PyVision会编写脚本计算面积、长度或其他指标,用于符号推理(图5)

该 Agent 在三个迭代回合中生成自定义Python代码,基于视觉反馈优化基于坐标的裁剪工具,最终隔离出用户 Query 所需的广告牌。随后, Agent 执行OCR并提取关键文本如"YOGA",正确识别该商业场所为瑜伽工作室。

长尾操作。PyVision还发明了一些难以归类的创新工具。这些一次性操作展示了其在新颖约束下进行创造性推理的能力。例如,在图7中,为了解决“找出差异”任务,PyVision直接对两张图像的像素值进行相减并可视化结果。这种零样本问题分解和工具合成反映了动态工具在视觉推理中的强大功能和灵活性。

picture.image

基于 Agent 工具的视频推理。与静态图像任务相比,视频理解面临着独特的挑战。PyVision 在这种情况下展现了强大的潜力,它将视频视为一系列决策点,而不是一个整体输入。在图8中,PyVision 并非穷尽分析所有帧,而是动态选择并处理仅包含不同类型表的帧。然后提取视觉证据并支持推理。这种 Agent 式、多步骤的工作流程使 PyVision 能够更像人类分析师一样运作:根据中间结果进行浏览、采样和细化其理解。

首先,PyVision生成一个可视化工具,该工具对关键区域应用直方图均衡化以增强对比度,这是医学图像分析中的标准技术。随后,它创建第二个工具绘制强度直方图,以确认不存在异常峰值。经过几次迭代,PyVision从零构建了一个定制的诊断流程,正确地得出结论:不存在特定异常。这突显了PyVision生成可解释、领域自适应工具以处理复杂医学任务的能力。

这是一个来自VLMsAreBlind [40]的嵌套正方形计数任务。首先,PyVision使用skimage.measure.find_contours进行边缘检测,并识别出十个轮廓。然后,它推理轮廓的数量对应五个嵌套正方形,因为每个正方形都贡献一个内边缘和一个外边缘。为了验证这一点,模型进行了数值分析,并打印出检测到的轮廓的排序周长。在第三阶段,它进行双重检查,并自信地确认正确答案是五个嵌套正方形。

在MathVision [48]的示例中,PyVision被要求计算四张桌子排成一排可以容纳多少人。该模型首先绘制桌子的布局草图,用 Token 表示四张相连的桌子和围绕它们坐着的人。从草图中,它推理出可以容纳十个人。在第二轮中,PyVision生成一个示意图来解释和验证座位逻辑,识别出不适合坐人的位置。

PyVision首先制定了一个多步骤策略:将图像分割为左右两半,计算绝对像素级差异,并生成差异图以突出变化。随后,它将原始图像与计算出的差异可视化并并排显示,以辅助分析。基于此,PyVision继续枚举已识别的差异。尽管最终结果并非完全正确,但该模型采用像素级差异计算并组织推理流程的尝试值得注意。该案例既展示了自主视觉推理的创造性潜力,也反映了缓解幻觉问题的持续挑战。

PyVision首先通过分析视频来检测包含表的候选帧。随后,它选择并展示关键帧,每帧展示一种不同的表,包括餐桌、书桌、咖啡桌和边桌,以支持其推理。通过综合多个视角下的视觉证据和文本推理,PyVision得出结论,房间内有四个不同的表。

在数学和逻辑相关的基准测试中,例如MathVision [48]、MathVista [25]、MMMU [56]和VisualPuzzles [42],数值和统计工具占据了主要的使用部分,而视觉 Prompt 相对更常用。在符号视觉任务VLMsAreBlind [40]中,High-Level图像处理工具占据主导地位。在

[51]中的视觉搜索任务中,PyVision主要依赖裁剪来促进详细的视觉 Query ,这占用了所有使用工具的83%以上。

工具偏好也具有领域敏感性:在医学图像[17]中,对比度增强工具被频繁调用。在遥感[22]中,分割工具更为常见。

这些观察结果突出了灵活且动态的工具对于支持现实世界中多样化视觉任务需求的重要性。

3.2. 跨任务和领域分析工具模式

基准测试。为了评估PyVision在多种基准测试和领域中的有效性,作者选择了六个基准测试。详细信息如下:

多模态数学:MathVista [25] 和 MathVision [48] 向模型提出结合视觉感知和数值推理的数学问题。领域与逻辑推理:MMMU [56] 使用多模态输入测试跨学科的特定领域推理,通常需要大学水平的知识。视觉谜题 [42] 专注于逻辑,任务涵盖算法、类比、演绎、归纳和空间推理,最小化领域依赖性同时最大化抽象性。符号视觉:VLMs Are Blind [40] 包含设计的符号视觉谜题,探索解析和推理抽象、结构化视觉原语的能力极限。细粒度视觉搜索:

[51] 包含191个高分辨率样本,要求根据细致的 Query 定位微妙的视觉细节,是测试注意力和空间推理的强有力平台。

作者还评估了两个特殊领域,即医学影像问答(Medical Imaging VQA)[17]和遥感问答(Remote Sensing VQA)[22],以探究不同领域的工具使用模式。

工具分布。为了理解PyVision如何根据不同问题调整其工具集,作者在图9中分析了工具类别在不同基准测试和领域的分布情况。

picture.image

实验结果表明存在明显的任务和领域特定偏好。在MathVista [25]、MathVision [48]、MMMU [56]和VisualPuzzles [42]等数学和逻辑密集型基准测试中,PyVision频繁生成数值和统计工具以支持符号和定量推理。这些工具通常伴随着视觉 Prompt 和草图绘制,有助于将抽象逻辑与视觉线索相结合。在符号视觉任务如VLMsAreBlind [40]中,High-Level图像处理工具占主导地位,反映了结构提取和视觉解析的需求。对于

[51]等细粒度视觉搜索任务,裁剪操作占据绝对主导地位,占比超过83%,因为模型将注意力集中于局部区域。

领域也起着重要作用:在医学图像[17]中,对比度增强通常用于揭示微妙的视觉模式,而在遥感[22]中,分割工具帮助在大规模场景中界定物体。

这些结果强调了动态工具生成的重要性,使模型能够灵活地调整其策略以适应当前任务。

  1. 多样化基准测试结果

Baseline 实验。为评估PyVision在多样化多模态场景中的有效性,作者在包含GPT-4.1[34]和Claude-4.0-Sonnet[2]等MLLM的多种基准测试上进行了测试。作者采用纯思维链 Prompt [21, 49]作为 Baseline 。推理参数设置和 Prompt 细节见附录A。

结果。表2展示了PyVision动态工具的添加如何持续提升两个强大的后端模型在多样化的基准测试套件上的表现。对于GPT-4.1,PyVision在所有数据集上都带来了均匀的提升,从以数学为中心的任务上的适度改进:在MathVista上提升

,在MMMU上提升

,到在细粒度视觉搜索基准

上显著的

。Claude-4.0-Sonnet则显示出更明显的模式:虽然数学和一般推理任务提升了大约

,但在VLMsAreBlind-mini上的符号视觉性能大幅提升了

。简而言之,动态工具生成带来了广泛且任务相关的提升,这也取决于后端模型的能力,下文将进行讨论。

picture.image

PyVision放大了后端MLLM在推理或感知方面的优势。为了更好地理解PyVision性能提升与后端模型固有优势之间的关系,作者聚焦于两个代表性基准:MathVision-mini [48],该基准强调抽象推理;以及

[51],该基准突出感知能力。Claude-4.0- Sonnet在抽象推理方面表现更强,其MathVision-mini性能更高(48.0% vs. GPT-4.1的46.4%),因此从PyVision中获得更大的提升(+3.3%),而GPT-4.1的提升相对保守(+2.3%)。相反,GPT-4.1在感知任务(如

)中表现更优(68.1% vs. Claude-4.0-Sonnet的56.5%),通过PyVision实现了显著改进(+7.8% vs. 仅+0.3%)。这种互补模式表明,PyVision提供的动态工具的有效性,关键取决于后端模型在推理和感知方面的基础优势。

进一步支持这一假设,对Qwen2.5-VL-72B [5]进行的实验产生了相似的结果:较弱的抽象推理能力(在MathVision-mini上为18.4%)导致改进有限(+1.7%),而更强的感知性能(在

上为67.0%)则带来了显著提升(+10.0%)。这些见解强调了PyVision放大了现有后端模型的强项,使得推理与感知的相互作用对于释放动态多模态工具的全部潜力至关重要。

MLLMs生成代码的频率和数量?图10展示了在六个基准测试中,每个用户 Query 生成的代码块数量的分布情况,比较了基于GPT-4.1的PyVision和Claude-4.0-Sonnet。每个子图展示了模型在多轮推理过程中使用代码的频率,图例标明了包含任何代码生成的 Query 会话的百分比。作者观察到,Claude-4.0-Sonnet在所有领域都始终生成比GPT-4.1更多的代码,每个 Query 通常具有更长的工具链,并达到100%的代码覆盖率。相反,GPT-4.1倾向于使用较少的代码块。这些趋势表明了在 Agent 行为上的差异,反映了每个MLLM解析复杂性和利用代码支持推理的方式上的根本差异。

  1. 相关工作

多模态工具使用。为了以更透明和可解释的方式解决组合式视觉问答(VQA)任务,早期工作NMN [1] 采用启发式方法,而IEP [19] 训练LSTM网络作为程序生成器。在大语言模型(LLM)时代,使用预训练的LLM,例如GPT-4,来生成程序。

视觉ChatGPT [50]、MM-REACT [55]、HuggingGPT [41]、图像思维 [60] 和 VAT [23] 设计工作流程以处理VQA输入并生成最终答案。在 VisProg [11] 和 ViperGPT [46] 中,研究行人为特定视觉任务预定义静态工具集,并 Prompt LLM或MLLM生成调用这些工具的程序以支持推理。随着LLM编码能力的提升,视觉草图板 [16] 预定义工具集并 Prompt LLM动态编程和执行代码,提供更高的灵活性。这些先前工作依赖于包含各种视觉解析器 [9](例如检测模型 GroundingDINO [24] 和分割模型 SAM [20])的静态工具集,这限制了跨视觉任务的泛化性,并使外部模型成为 Bottleneck 。相比之下,PyVision 将Python作为唯一的原始工具。凭借当代MLLM的先进编码和多模态理解能力,例如 Claude-4.0 [2] 和 GPT-4.1 [34],它们可以编写Python代码动态构建和执行复杂工具,实现更通用和灵活的推理。

参考

[1]. PyVision: Agentic Vision with Dynamic Tooling

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论