一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式

发布于 2025-5-12 01:04
浏览
0收藏

根据谷歌官方的描述,在代码能力、多模态能力方面显著增强,特别是交互式 Web 应用程序,也就是说,现在你可以用这个模型去做各种动态网页,甚至可以直接复刻。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

优势主要体现在前端和 UI 开发、基本编码任务以及创建Agent工作流。

本次测评主要聚焦于编程、推理能力以及多模态理解能力方面。

一、编程能力

非常善于处理代码疑难问题。

首先在前端Web开发方面表现优秀,并且已经支持cursor的代码编程。

Gemini 2.5 Pro 模型目前在 WebDev Arena 排行榜上领先。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

说一说这个排行榜是干嘛的。

它主要是用来衡量人类对模型构建优美的 Web 应用程序能力的评分。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

第二,Gemini 2.5 Pro 在前端开发中能够独立开发出新功能,并且与整体风格保持一致。

传统开发情况下,在没有使用 Gemini 2.5 Pro 时,开发者实现新功能需要手动进行一系列繁琐的操作。

你还要深入研究设计文件,理解设计意图。

还要检查组件的样式属性,比如颜色、字体、填充、边距和边框等。

最后要手动编写 CSS 代码,以确保开发的页面或组件能够准确地复制设计文件中的视觉效果。

这样,一整天就过去了。

使用 Gemini 2.5 Pro 可以大大简化这个过程。

开发者可以在集成开发环境(IDE)中利用 Gemini 2.5 Pro 的功能,让模型自动生成新功能所需的代码。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

例如,官方给的一个示例中,如果需要添加一个与其他应用程序风格一致的视频播放器,开发者只需通过 Gemini 2.5 Pro 的工具,而无需手动编写大量代码来匹配样式属性。

并且,Gemini 2.5 Pro 能够帮助开发者快速将想法(概念)转化为实际可用的 Web 应用程序。

使用链接:​​https://gemini.google.com/app​

提示词:还原设计稿。

原图是canvas可画国际版的首页图。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

最终呈现出这样的UI。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

通常,从想法到实际应用需要经过设计、开发、测试等多个复杂步骤,而 Gemini 2.5 Pro 提供了一种更高效的方式,减少了中间环节的工作量。

如果是设计初期的草图,它会不会也帮我还原出设计稿?

我找了一个APP的UI设计草稿图,有点模糊不清,考验模型的多模态理解能力。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

最终为我生成了其中三个的示例:

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

二、推理能力

用于解决复杂问题和数学问题,非常实用。

解释单词:fomo 


假设你自己是 Z 世代的一员,要向祖父母解释这一概念。 


请详细描述这个词的含义、起源,以及实际应用场景。语言简洁,同时语气轻松。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

完整的内容如下:

好嘞,爷爷奶奶!今天我来给你们解释一个我们年轻人(嗯,就是我这样的Z世代)嘴边常挂着的一个词儿:FOMO

你们听着哈,FOMO 呢,其实是几个英文单词的缩写,F-O-M-O,就是 "Fear Of Missing Out"。

这是啥意思呢?

翻译过来呀,就是“害怕错过”或者“担心掉队”的焦虑感。就是那种感觉,好像别人都在经历一些特别棒、特别有趣的事情,而你呢,却不在场,或者不知道,心里就有点痒痒的,甚至有点小焦虑,生怕自己错过了什么精彩瞬间或者重要消息。

打个比方,就像以前你们年轻的时候,可能邻居家买了最新的黑白电视机,大家都跑去看,要是你没去成,心里是不是也会有点小失落,怕错过大家讨论的内容?FOMO 就有点像那个感觉,但是现在因为手机和网络,这种感觉被放大了好多倍!

它是怎么来的呢?

这个词儿呢,其实也不是特别新,但因为现在手机和社交媒体(就是我们天天刷的朋友圈、微博、抖音这些)太发达了,所以大家就把它挂在嘴边了。你想啊,以前可能就是听邻居说哪儿开了个新铺子,没去有点遗憾。现在呢,我们随时随地都能在朋友圈、微博上看到朋友们在聚会、在旅游、在吃好吃的,信息一下子就涌过来了。

看到别人发出来的照片和视频,哇,那个地方看起来好好玩!哇,那个活动看起来好热闹!哇,他们吃的那个东西看起来好好吃!如果自己没参与,就很容易产生“哎呀,我是不是错过了什么好玩的?”“我是不是out了?”这样的想法。这种感觉,就是FOMO在作祟。

实际生活里怎么用呢?

这种场景可太多了!

社交活动:比如啊,周末我本来想在家歇着,结果刷朋友圈看到同学们都去一个新开的网红店打卡了,照片看起来特别好玩。这时候,我可能就会突然不想歇了,也想去凑个热闹,这就是FOMO在作祟。生怕自己不去,下次大家聊天都插不上嘴。

热门话题/潮流:或者看到大家都在讨论一个新出的电影、一首新歌,或者玩一个新的游戏,你完全不知道是啥,就可能会觉得有点“out”了(就是落伍的意思),想要赶紧去了解一下,这也是一种FOMO。怕自己跟不上潮流,和朋友没共同语言。

信息焦虑:还有就是,有些人会不停地刷手机,看社交媒体,生怕错过任何一条朋友的动态、任何一个热点新闻。几分钟不看手机就觉得不舒服,这也是FOMO的一种表现。

做决定的时候:有时候,它甚至会影响我们的决定。比如有好几个朋友约你,时间有点冲突,你哪个都舍不得推掉,因为怕错过任何一个聚会的精彩内容,结果把自己搞得特别累。

总结一下:

FOMO 就是一种因为害怕错过别人正在经历的有趣或重要的事情而产生的焦虑感,特别是在社交媒体时代,这种感觉更容易出现。它会让我们想要不断地查看信息,参与各种活动,有时候甚至会让我们感到压力。

当然啦,这种“害怕错过”有时候也能激励我们去尝试新事物,认识新朋友,也不是完全不好。但如果太严重,总是担心自己错过了什么,就会活得很累。所以我们年轻人也常常互相提醒,要活在当下,别太FOMO啦!

爷爷奶奶,这下你们明白FOMO是啥意思了吗?是不是还挺形象的?

Gemini 2.5 Pro 对代码的深刻理解,结合强大的推理能力,使得模型能力超越claude3.7。

测试:让它帮我诊断一段代码的错误。

用户输入的代码片段,这段代码其实存在多个问题,比如说异常处理不完善、数据完整性缺失和可读性差等问题。例如,未处理文件读取权限,未记录问题数据,数据丢失风险高,且缺少日志功能,不利于调试。同时,文件路径硬编码,灵活性不足。

我有一段代码需要你进行审查和改进。请仔细检查代码中的问题,并提出改进建议。你可以直接输出改进后的代码,或者列出需要修改的地方和原因。

可以完整看到他的思维链。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

在模型昨晚做完代码审查之后,会及时给出改进方面,应该怎么解决。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

最终给出了修复之后的代码:

import json
import logging
from typing import List, Dict, Any, Optional


# 配置日志记录器
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')


# 定义常量
KEY_NAME = "name"
KEY_AGE = "age"
MIN_AGE = 18


class DataProcessingError(Exception):
    """自定义异常,用于处理数据处理过程中的特定错误。"""
    pass


def read_data_from_file(file_path: str) -> Optional[List[Dict[str, Any]]]:
    """
    从 JSON 文件中读取数据。


    Args:
        file_path: 输入 JSON 文件的路径。


    Returns:
        包含数据的列表,如果文件未找到或 JSON 无效则返回 None。
    """
    try:
        with open(file_path, "r", encoding="utf-8") as file: # 明确指定 encoding
            data = json.load(file)
            if not isinstance(data, list):
                logging.error(f"文件 {file_path} 中的顶层 JSON 结构不是列表。")
                return None
            return data
    except FileNotFoundError:
        logging.error(f"错误:输入文件未找到: {file_path}")
        return None
    except json.JSONDecodeError:
        logging.error(f"错误:输入文件中的 JSON 格式无效: {file_path}")
        return None
    except Exception as e: # 捕获其他潜在的读取错误
        logging.error(f"读取文件 {file_path} 时发生意外错误: {e}")
        return None


def process_data(data: Optional[List[Dict[str, Any]]]) -> List[Dict[str, Any]]:
    """
    处理数据,筛选年龄不小于 MIN_AGE 的条目。


    Args:
        data: 从 JSON 文件读取的数据列表。


    Returns:
        处理后的数据列表。
    """
    if data is None:
        return []


    results: List[Dict[str, Any]] = []
    for index, item in enumerate(data):
        if not isinstance(item, dict):
            logging.warning(f"条目 {index} 不是一个字典,已跳过:{item}")
            continue
        try:
            name = item[KEY_NAME]
            age_raw = item[KEY_AGE]


            if not isinstance(age_raw, (int, float)): # 确保 age 是数字类型
                raise ValueError(f"条目 {index} 的年龄不是有效的数字类型: '{age_raw}'")
            age = int(age_raw) # 转换为整数以进行比较


            if age < MIN_AGE:
                logging.info(f"条目 {index} ('{name}') 由于年龄 ({age}) 小于 {MIN_AGE} 而被跳过。")
                # 这里不抛出异常,而是简单地跳过不符合条件的条目
            else:
                results.append({KEY_NAME: name, KEY_AGE: age})
        except KeyError as e:
            logging.warning(f"条目 {index} 中缺少键: {e}。条目内容: {item}")
        except ValueError as e: # 捕获由 age 类型转换或自定义检查引发的 ValueError
            logging.warning(f"条目 {index} 处理时发生值错误: {e}。条目内容: {item}")
        except Exception as e: # 捕获其他潜在错误
            logging.error(f"处理条目 {index} ({item}) 时发生意外错误: {e}")
    return results


def save_results_to_file(results: List[Dict[str, Any]], file_path: str) -> bool:
    """
    将处理结果保存到 JSON 文件。


    Args:
        results: 要保存的处理后的数据。
        file_path: 输出 JSON 文件的路径。


    Returns:
        如果保存成功则返回 True,否则返回 False。
    """
    try:
        with open(file_path, "w", encoding="utf-8") as file: # 明确指定 encoding
            json.dump(results, file, indent=4, ensure_ascii=False) # ensure_ascii=False 以支持非 ASCII 字符
        logging.info(f"处理完成。结果已保存到 {file_path}")
        return True
    except IOError as e:
        logging.error(f"无法将结果写入文件 {file_path}: {e}")
        return False
    except Exception as e: # 捕获其他潜在的写入错误
        logging.error(f"保存结果到 {file_path} 时发生意外错误: {e}")
        return False


def main(input_file: str = "input.json", output_file: str = "output.json") -> None:
    """
    主函数,协调数据的读取、处理和保存。


    Args:
        input_file: 输入 JSON 文件的名称。
        output_file: 输出 JSON 文件的名称。
    """
    logging.info(f"开始处理文件: {input_file}")
    data = read_data_from_file(input_file)


    if data is not None:
        processed_data = process_data(data)
        if processed_data: # 仅当有有效数据处理后才保存
            save_results_to_file(processed_data, output_file)
        elif not data: # 输入数据为空
            logging.info("输入数据为空,无需处理。")
            save_results_to_file([], output_file) # 创建一个空的输出文件或按需处理
        else: # 所有数据都被过滤掉了
            logging.info("没有数据符合处理条件。")
            save_results_to_file([], output_file) # 创建一个空的输出文件或按需处理
    else:
        logging.warning("由于读取错误,无法进行数据处理。")


if __name__ == "__main__":
    # 你可以在这里通过命令行参数等方式更改文件名
    # 例如:
    # import argparse
    # parser = argparse.ArgumentParser(descriptinotallow="Process JSON data.")
    # parser.add_argument("-i", "--input", default="input.json", help="Input JSON file")
    # parser.add_argument("-o", "--output", default="output.json", help="Output JSON file")
    # args = parser.parse_args()
    # main(input_file=args.input, output_file=args.output)
    main()

三、多模态能力

利用长上下文分析大型数据集、代码库或者文档。

Gemini 2.5 Pro 模型提供最先进的视频理解,与编码能力相结合,可以实现以前版本无法实现的新流程。

目前这个网址不支持视频上传,改用Google ai studio。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

到这里,我大概录制了十秒左右的操作扣子空间的视频。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

经过我的实测,需要将视频上传到YouTube,然后将链接传到Google AI studio,处理的速度会快一点。

step1:主要还是图标这块没有处理好。

它可以设计大概的网页框架。

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

step2:使用@orange橘子 老师的提示词:

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

一文实测Gemini 2.5 Pro:视频驱动的代码生成,打造交互式开发应用新范式-AI.x社区

视频理解,目前Gemini 2.5 Pro 模型表现的不是很好,

不过在业内属于首创,全新的多模态+代码编程能力

未来或许或许会有即时的代码编程,左边是你的演示区,右边就是AI为你创作的区域;

这就是2025年的多模态范式编码。

真正的人与AI协作的时代即将到来了,家人们。

本文转载自​AIGC新知​,作者:绛烨

已于2025-5-12 11:07:43修改
收藏
回复
举报
回复
相关推荐