文字生成

當 Gemini API 以文字、圖片、影片和音訊做為輸入內容時,便可產生文字輸出內容。

本指南將說明如何使用 generateContentstreamGenerateContent 方法產生文字。如要瞭解如何使用 Gemini 的視覺和音訊功能,請參閱「Vision」和「音訊」指南。

使用純文字輸入內容產生文字

使用 Gemini API 產生文字最簡單的方法,就是為模型提供單一純文字輸入內容,如以下範例所示:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=["How does AI work?"])
print(response.text)

在這種情況下,「說明 AI 運作方式」提示不會包含任何輸出範例、系統指示或格式資訊。這是一種零樣本方法。在某些用途中,單拍少拍提示可能會產生更符合使用者期待的輸出內容。在某些情況下,您可能也需要提供系統操作說明,協助模型瞭解任務或遵循特定指引。

使用文字和圖片輸入內容來生成文字

Gemini API 支援結合文字和媒體檔案的多模態輸入內容。以下範例說明如何根據文字和圖片輸入內容產生文字:

from PIL import Image
from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

image = Image.open("/path/to/organ.png")
response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[image, "Tell me about this instrument"])
print(response.text)

產生文字串流

根據預設,模型會在完成整個文字產生程序後傳回回應。您可以不等待整個結果,改用串流處理部分結果,藉此加快互動速度。

以下範例說明如何使用 streamGenerateContent 方法實作串流,從純文字輸入提示產生文字。

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content_stream(
    model="gemini-2.0-flash",
    contents=["Explain how AI works"])
for chunk in response:
    print(chunk.text, end="")

建立即時通訊對話

您可以使用 Gemini SDK 收集多輪問題和回覆,讓使用者逐步取得答案,或針對多重問題尋求協助。這個 SDK 功能提供一個介面,可追蹤對話記錄,但幕後會使用相同的 generateContent 方法建立回應。

以下程式碼範例顯示基本即時通訊實作方式:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

chat = client.chats.create(model="gemini-2.0-flash")
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)
for message in chat._curated_history:
    print(f'role - ', message.role, end=": ")
    print(message.parts[0].text)

你也可以使用串流直播搭配即時通訊,如以下範例所示:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

chat = client.chats.create(model="gemini-2.0-flash")
response = chat.send_message_stream("I have 2 dogs in my house.")
for chunk in response:
    print(chunk.text, end="")
response = chat.send_message_stream("How many paws are in my house?")
for chunk in response:
    print(chunk.text, end="")
for message in chat._curated_history:
    print(f'role - ', message.role, end=": ")
    print(message.parts[0].text)

設定文字產生

您傳送至模型的每個提示都含有參數,用來控制模型生成回覆的方式。您可以使用 GenerationConfig 設定這些參數。如果您未設定參數,模型會使用預設選項,這些選項可能因模型而異。

以下範例說明如何設定幾個可用的選項。

from google import genai
from google.genai import types

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=["Explain how AI works"],
    config=types.GenerateContentConfig(
        max_output_tokens=500,
        temperature=0.1
    )
)
print(response.text)

新增系統指示

系統指示可讓您根據特定需求和用途,引導模型的行為。

提供模型系統指示時,您會向模型提供額外脈絡資訊,讓模型瞭解任務、生成更符合需求的回應,並在與使用者互動時全程遵守特定指引。您也可以設定系統指示,以便指定產品層級行為,並與使用者提供的提示分開。

您可以在初始化模型時設定系統指令:

sys_instruct="You are a cat. Your name is Neko."
client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    config=types.GenerateContentConfig(
        system_instruction=sys_instruct),
    contents=["your prompt here"]
)

接著,您可以照常向模型傳送要求。

如需使用系統指令的互動式端對端範例,請參閱 系統指令 colab

後續步驟

瞭解 Gemini API 的基本概念後,您可以嘗試以下操作:

  • 視覺理解:瞭解如何使用 Gemini 的原生視覺理解功能處理圖片和影片。
  • 音訊理解:瞭解如何使用 Gemini 的原生音訊理解功能處理音訊檔案。