Gemini 2.0 Flash 现已通过 Gemini 开发者 API 和 Google AI Studio 以实验性预览版的形式发布。该模型引入了新功能和增强型核心功能:
- Multimodal Live API:此新 API 可帮助您使用工具创建实时视觉和音频流式传输应用。
- 速度和性能:与 1.5 Flash 相比,Gemini 2.0 显著缩短了第一个令牌到达时间 (TTFT)。
- 质量:该模型的质量与 Gemini 1.5 Pro 等大型模型相当。
- 增强了代理功能:Gemini 2.0 改进了多模态理解、编码、遵循复杂指令和函数调用功能。这些改进相辅相成,可提供更出色的代理体验。
- 新模态:Gemini 2.0 引入了原生图片生成和可控文本转语音功能,支持图片编辑、本地化海报图片制作和富有表现力的讲故事功能。
为了支持新模型,我们还将发布一个新 SDK。
如需了解 Gemini 2.0 的技术详情,请参阅 Gemini 模型。
Google Gen AI SDK(实验性)
新版 Google Gen AI SDK 通过 Vertex AI 上的 Gemini Developer API 和 Gemini API 提供了一个统一的 Gemini 2.0 接口。除了少数例外情况外,在一个平台上运行的代码在另一个平台上也能运行。这意味着,您可以使用开发者 API 对应用进行原型设计,然后将应用迁移到 Vertex AI,而无需重写代码。
Gen AI SDK 还支持 Gemini 1.5 模型。
新版 SDK 目前提供 Python 和 Go 版本,Java 和 JavaScript 版本即将推出。
您可以开始使用 SDK,如下所示。
- 安装新 SDK:
pip install google-genai
- 然后,导入库、初始化客户端并生成内容:
from google import genai
client = genai.Client(
vertexai=False,
api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
model='gemini-2.0-flash-experimental', contents='How does AI work?'
)
print(response.text)
(可选)设置环境变量
或者,您也可以使用环境变量初始化客户端。首先,设置适当的值并导出变量:
# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
export GOOGLE_GENAI_USE_VERTEXAI=False
然后,您可以不使用任何参数来初始化客户端:
client = genai.Client()
Multimodal Live API
Multimodal Live API 支持与 Gemini 进行低延迟的双向语音和视频互动。借助 Multimodal Live API,您可以为最终用户提供自然的人声对话体验,并让用户能够使用语音指令中断模型的回答。该模型可以处理文本、音频和视频输入,并可以提供文本和音频输出。
Multimodal Live API 在 Gemini API 中以 BidiGenerateContent
方法提供,并基于 WebSockets 构建。
下面是一个简单的文本到文本示例,可帮助您开始使用多模态实时 API:
MODEL = "models/gemini-2.0-flash-exp"
CONFIG = {"generation_config": {"response_modalities": ["TEXT"]}}
async with client.aio.live.connect(model=MODEL, config=CONFIG) as session:
message = "Hello? Gemini, are you there?"
print("> ", message, "\n")
await session.send(message, end_of_turn=True)
# For text responses, when the model's turn is complete it breaks out of the loop.
async for response in session.receive():
print("- ", response.text)
主要功能:
- 多模态:该模型可以看到、听到和说话。
- 低延迟实时互动:提供快速响应。
- 会话记忆:该模型会保留单个会话中的所有互动记忆,从而回想之前听到或看到的信息。
- 支持函数调用、代码执行和将搜索用作工具:支持与外部服务和数据源集成。
- 自动语音活动检测 (VAD):该模型可以准确识别用户何时开始和停止说话。这样,用户就可以进行自然的对话式互动,并随时中断模型。
语言:
- 仅提供英文版
限制:
- 音频输入和音频输出都会对模型使用函数调用的能力产生负面影响。
如需详细了解该 API 的功能和限制,请参阅 Multimodal Live API 参考指南。
您可以在 Google AI Studio 中试用 Multimodal Live API。如需开始开发,您可以尝试使用Web 控制台(使用 React 编写)。对于 Python 开发者,请尝试使用起始代码(记事本和 .py 文件)。您可能会发现,从记事本入手最为简单,但从终端运行实时 API 效果最佳。
搜索即工具
通过将“接地”与 Google 搜索搭配使用,您可以提高模型回答的准确性和时效性。从 Gemini 2.0 开始,Google 搜索可用作工具。也就是说,模型可以决定何时使用 Google 搜索。以下示例展示了如何将 Google 搜索配置为工具。
from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch
client = genai.Client()
model_id = "gemini-2.0-flash-exp"
google_search_tool = Tool(
google_search = GoogleSearch()
)
response = client.models.generate_content(
model=model_id,
contents="When is the next total solar eclipse in the United States?",
config=GenerateContentConfig(
tools=[google_search_tool],
response_modalities=["TEXT"],
)
)
for each in response.candidates[0].content.parts:
print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...
# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)
“将搜索用作工具”功能还支持多轮搜索和多工具查询(例如,将“着陆点”与 Google 搜索和代码执行结合使用)。
将搜索用作工具,可实现需要规划、推理和思考的复杂提示和工作流:
- 建立依据,以提高事实性和新近性,并提供更准确的回答
- 从网络检索工件,以便进一步分析
- 查找相关图片、视频或其他媒体,以协助执行多模态推理或生成任务
- 编码、技术问题排查和其他专门任务
- 查找特定地区的信息或协助准确翻译内容
- 查找相关网站以供进一步浏览
您可以先试用搜索工具笔记本,开始上手使用。
改进后的工具
Gemini 2.0 改进了函数调用和工具,更好地支持代理式体验。
组合函数调用
Gemini 2.0 支持一项新的函数调用功能:组合函数调用。通过组合函数调用,Gemini API 可以在生成回答的过程中自动调用多个用户定义的函数。例如,为了响应提示 "Get the temperature in my current location"
,Gemini API 可能会同时调用 get_current_location()
函数和 get_weather()
函数,并将位置作为参数。
带有代码执行的组合函数调用需要双向流式传输,并且仅由新的 Multimodal Live API 支持。以下示例展示了如何将组合函数调用、代码执行和多模态实时 API 搭配使用:
turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}
prompt = """
Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
"""
tools = [
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python 开发者可以在 Live API Tool Use 笔记本中试用此功能。
多功能工具使用
借助 Gemini 2.0,您可以同时启用多种工具,模型将决定何时调用这些工具。下面的示例展示了如何在使用 Multimodal Live API 的请求中启用两种工具:“使用 Google 搜索进行初始化”和“代码执行”。
prompt = """
Hey, I need you to do three things for me.
1. Turn on the lights.
2. Then compute the largest prime palindrome under 100000.
3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.
Thanks!
"""
tools = [
{'google_search': {}},
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python 开发者可以在 Live API Tool Use 笔记本中试用此功能。
边界框检测
在此次实验性发布中,我们为开发者提供了一款强大的工具,可用于在图片和视频中检测和定位对象。通过使用边界框准确识别和描绘对象,开发者可以实现各种应用,并提升项目的智能化程度。
主要优势:
- 简单:无论您是否具备计算机视觉方面的专业知识,都可以轻松将对象检测功能集成到您的应用中。
- 可自定义:根据自定义说明(例如“我想查看此图片中所有绿色对象的边界框”)生成边界框,而无需训练自定义模型。
技术详情:
- 输入:您的问题和相关图片或视频帧。
- 输出:
[y_min, x_min, y_max, x_max]
格式的边界框。左上角是原点。x
和y
轴分别为水平轴和垂直轴。坐标值会归一化为 0-1000(每个图片)。 - 可视化:AI Studio 用户会在界面中看到绘制的边界框。Vertex AI 用户应通过自定义可视化代码可视化其边界框。
对于 Python 开发者,请尝试使用2D 空间理解笔记或实验性 3D 指向笔记。
语音生成(抢先体验/许可名单)
Gemini 2.0 支持一种新的多模态生成功能:文本转语音。借助文本转语音功能,您可以提示模型生成听起来像人声的高品质音频输出 (say "hi everyone"
),还可以通过引导语音进一步优化输出。
图片生成(抢先体验/许可名单)
Gemini 2.0 支持输出带内嵌图片的文本。这样,您就可以使用 Gemini 以对话方式编辑图片或生成多模态输出(例如,在单次对话中生成包含文本和图片的博文)。以前,这需要将多个模型串联起来。
图片生成功能目前以私有实验版的形式提供。它支持以下模态和功能:
- 文本转图片
- 示例提示:“生成一张背景为烟花的埃菲尔铁塔图片。”
- 文本转换为图片和文本(交错)
- 示例提示:“生成带插图的西班牙海鲜饭食谱。”
- 图片和文本改为图片和文本(交错)
- 问题示例:(显示家具摆设的房间图片)“我的空间适合哪些其他颜色的沙发?您能更新一下图片吗?”
- 图片编辑(文本和图片到图片)
- 示例提示:“将此图片编辑成卡通图片”
- 示例提示:[猫的图片] + [枕头的图片] +“在这个枕头上用十字绣制作我猫的图案”。
- 多轮图片编辑(聊天)
- 示例提示:[上传一张蓝色汽车的图片。]“将这辆车改装成敞篷车。”“现在将颜色更改为黄色。”
- 添加水印 (synthID)
限制:
- 不允许生成人物图片,也不允许编辑上传的人物图片。
- 图片生成功能仅支持以下语言:英语、西班牙语(墨西哥)、日语、简体中文、印地语。
- 图片生成功能不支持音频或视频输入。
- 图片生成功能未必总会触发以下操作:
- 模型可能只会输出文本。尝试明确要求输出图片(例如“生成图片”“随时提供图片”“更新图片”)。
- 模型可能会在中途停止生成。请重试或尝试使用其他提示。