Gemini 2.0 (實驗功能)

Gemini 2.0 Flash 現已推出實驗性預覽版,可透過 Gemini Developer API 和 Google AI Studio 取得。這項模型推出了新功能和強化的核心功能:

  • 多模態即時 API:這個全新 API 可協助您使用工具,建立即時視覺和音訊串流應用程式。
  • 速度和效能:Gemini 2.0 的首次符記時間 (TTFT) 大幅改善,優於 1.5 Flash。
  • 品質:在大多數基準測試中,效能優於 Gemini 1.5 Pro。
  • 改良的代理功能:Gemini 2.0 改善了多模態理解、程式編寫、遵循複雜指示和呼叫函式的功能。
  • 新模式:Gemini 2.0 推出原生圖像生成功能和可控的文字轉語音功能。

為了提供更優質的開發人員體驗,我們也推出了新版 SDK。如需 Gemini 2.0 技術詳細資料,請參閱 Gemini 模型

Google Gen AI SDK (實驗功能)

新的 Google Gen AI SDK 透過 Gemini Developer API 和 Vertex AI 上的 Gemini API,提供 Gemini 2.0 的統一介面。除了少數例外狀況,在一個平台上執行的程式碼都能在兩個平台上執行。也就是說,您可以使用開發人員 API 製作應用程式原型,然後將應用程式遷移至 Vertex AI,而無需重寫程式碼。

Gen AI SDK 也支援 Gemini 1.5 模型。

新的 SDK 可用於 Python 和 Go,Java 和 JavaScript 版本即將推出。

您可以開始使用 SDK,如下所示。

  1. 安裝新 SDK:pip install google-genai
  2. 接著匯入程式庫、初始化用戶端,並產生內容:
from google import genai

client = genai.Client(
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)

(選用) 設定環境變數

或者,您也可以使用環境變數初始化用戶端。請先設定適當的值,然後匯出變數:

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY

接著,您可以不使用任何 args 初始化用戶端:

client = genai.Client()

Python 開發人員也可以在 Cookbook 中試用入門筆記本

Multimodal Live API

Multimodal Live API 可讓您透過 Gemini 進行低延遲的雙向語音和視訊互動。使用多模態即時 API,您可以為使用者提供自然流暢的語音對話體驗,並讓使用者能夠透過語音指令中斷模型的回應。這個模型可以處理文字、音訊和影片輸入內容,並提供文字和音訊輸出內容。

多模態即時 API 可在 Gemini API 中使用,做為 BidiGenerateContent 方法,並以 WebSockets 建構。

from google import genai

client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}

async with client.aio.live.connect(model=model_id, config=config) as session:
    message = "Hello? Gemini, are you there?"
    print("> ", message, "\n")
    await session.send(message, end_of_turn=True)

    async for response in session.receive():
        print(response.text)

主要功能:

  • 多模態:模型可看、聽和說。
  • 低延遲即時互動:提供快速回應。
  • 工作階段記憶體:模型會保留單一工作階段內的所有互動內容,回想先前聽到或看到的資訊。
  • 支援函式呼叫、程式碼執行和搜尋做為工具:可與外部服務和資料來源整合。
  • 自動語音活動偵測 (VAD):模型可準確辨識使用者何時開始和停止說話。這可讓使用者以自然的對話方式互動,並隨時中斷模型。

語言:

  • 僅限英文

限制:

  • 音訊輸入和音訊輸出都會對模型使用函式呼叫的功能造成負面影響。

如要進一步瞭解 API 的功能和限制,請參閱 多模態即時 API 參考指南

您可以在 Google AI Studio 中試用多模態即時 API。如要開始開發,您可以試試網頁版主控台 (以 React 編寫)。Python 開發人員可嘗試使用範例程式碼 (筆記本.py 檔案)。您可能會發現,從筆記開始最容易上手,但從終端機執行即時 API 的效果最好。

搜尋做為工具

使用 Google 搜尋的 Grounding 功能,可提高模型回覆的準確性和新鮮度。自 Gemini 2.0 起,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)

搜尋工具功能也支援多回合搜尋和多工具查詢 (例如將 Grounding 與 Google 搜尋和程式碼執行作業結合)。

搜尋功能可做為工具,用於需要規劃、推理和思考的複雜提示和工作流程:

  • 根據事實和最新資訊提供更準確的答案
  • 從網路上擷取構件,以便進一步分析
  • 找出相關圖片、影片或其他媒體,協助執行多模態推理或產生作業
  • 編碼、技術疑難排解和其他專業工作
  • 尋找特定區域的資訊,或協助正確翻譯內容
  • 找出相關網站以便進一步瀏覽

你可以試用搜尋工具的 Notebook 來開始使用。

改善工具

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 notebook 中試用這項功能。

多功能工具使用

使用 Gemini 2.0 時,您可以同時啟用多個工具,而模型會決定何時呼叫這些工具。以下範例說明如何在使用多模態即時 API 的請求中啟用兩個工具:Google 搜尋的 Grounding 和程式碼執行。

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 notebook 中試用這項功能。

定界框偵測

在這個實驗性推出的版本中,我們為開發人員提供強大的工具,可在圖片和影片中偵測及定位物件。開發人員可以使用定界框準確辨識及標示物件,進而開發出多種應用程式,並提升專案的智慧程度。

主要優點:

  • 簡單:無論您是否具備電腦視覺專業知識,都能輕鬆將物件偵測功能整合至應用程式。
  • 可自訂:根據自訂指示 (例如「我想查看這張圖片中所有綠色物件的邊界框框」) 產生邊界框,無須訓練自訂模型。

技術詳細資料:

  • 輸入內容:提示內容和相關圖片或影片影格。
  • 輸出:定界框,格式為 [y_min, x_min, y_max, x_max]。左上角是原點。xy 軸分別為水平和垂直。每張圖片的座標值都會正規化為 0 到 1000。
  • 視覺化:AI Studio 使用者會在 UI 中看到邊界框。Vertex AI 使用者應透過自訂視覺化程式碼來呈現邊界框。

Python 開發人員可以試試 2D 空間理解筆記本實驗性 3D 指標筆記本

語音產生 (搶先體驗/許可清單)

Gemini 2.0 支援全新的多模態生成功能:文字轉語音。您可以使用文字轉語音功能,讓模型產生高品質的音訊輸出內容,讓內容聽起來像人類的聲音 (say "hi everyone"),並透過語音導向進一步精進輸出內容。

圖像生成 (搶先體驗/許可清單)

Gemini 2.0 支援輸出內嵌圖片的文字。這樣一來,您就能使用 Gemini 透過對話編輯圖片,或產生多模態輸出內容 (例如在單一回合中提供文字和圖片的網誌文章)。這項功能先前需要將多個模型串連在一起。

圖片生成功能目前為私人實驗性版本。支援下列模式和功能:

  • 文字轉圖像
    • 提示範例:「生成艾菲爾鐵塔的圖片,背景有煙火。」
  • 文字轉圖和文字 (交錯)
    • 提示範例:「產生燉飯的插圖食譜」。
  • 圖片和文字轉換為圖片和文字 (交錯)
    • 提示範例: (含有房間內家具的圖片)「我房間內的沙發適合哪些顏色?你能更新圖片嗎?」
  • 圖片編輯 (文字和圖片轉圖片)
    • 提示範例:「請將這張圖片編輯成卡通風格」
    • 提示範例:[貓咪圖片] + [抱枕圖片] +「請在這個抱枕上製作我貓咪的十字繡圖案。」
  • 多輪圖片編輯 (聊天)
    • 提示範例:[上傳藍色汽車的圖片]「將這輛車改裝成敞篷車。」「現在將顏色改為黃色。」
  • 浮水印 (SynthID)

限制:

  • 不允許產生人物,也不得編輯上傳的人物圖片。
  • 為獲得最佳成效,請使用以下語言:英文 (EN)、西班牙文 (墨西哥)、日文 (日本)、中文 (簡體)、印地文 (印度)。
  • 圖片產生功能不支援音訊或影片輸入內容。
  • 圖片產生功能可能不會在下列情況下觸發:
    • 模型可能只會輸出文字。請嘗試明確要求圖片輸出內容 (例如「產生圖片」、「隨時提供圖片」、「更新圖片」)。
    • 模型可能會在中途停止產生內容。請再試一次或改用其他提示。