使用 Gemini API 產生文字

Gemini API 可根據各種輸入內容類型產生文字輸出內容,包括 像是文字、圖片、影片和音訊在各種情境中 應用程式,其中包括:

  • 創意寫作
  • 描述或解讀媒體素材資源
  • 文字補全
  • 產生任意形式文字的摘要
  • 互譯語言
  • 聊天機器人
  • 你的新奇用途

本指南將說明如何使用 generateContentstreamGenerateContent。 或您選擇的伺服器端 SDK重點在於輸出 文字和圖片輸入進一步瞭解多模態提示 搭配影片和音訊檔案,請參閱 使用媒體檔案發出提示

事前準備:設定專案和 API 金鑰

呼叫 Gemini API 前,請先設定專案並設定 您的 API 金鑰。

從純文字輸入來生成文字

最簡單的方式就是提供模型,以便使用 Gemini API 生成文字 和單一文字輸入,如以下範例所示:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

在這種情況下,提示 (「撰寫有關魔術背包的故事」) 並附上任何輸出範例、系統指示或格式設定資訊。 這是零樣本 。在某些用途中 one-shot少量樣本提示 可能會產生更符合使用者期望的輸出內容在某些情況下 建議一併提供 系統操作說明 或遵循特定指南

依據文字和圖片輸入內容生成文字

Gemini API 支援結合文字與媒體檔案的多模態輸入功能。 以下範例說明如何透過輸入文字和圖片來生成文字:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

如同純文字提示,多模態提示可以採用多種做法 和修正項目根據這個範例的輸出內容 在提示中新增步驟,或是在指示中更具體地說明。如要瞭解詳情 請參閱檔案提示策略

產生文字串流

根據預設,模型會在完成整段文字後傳回回應 產生程序與其等待 全部結果,並改用串流處理部分結果。

以下範例顯示如何使用 streamGenerateContent 方法, 透過純文字輸入提示來生成文字

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

建立互動式聊天

您可以使用 Gemini API 為使用者打造互動式對話體驗。 使用 API 的即時通訊功能可讓您收集各回合的問題 方便使用者逐步尋求答案或取得協助 多部分問題此功能非常適合需要 持續溝通,例如聊天機器人、互動式家教或客戶服務 像聊天助理一樣 以自然語言回答具體的開發或雲端相關問題

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

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
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)

設定文字產生功能

您傳送至模型的每個提示都包括 參數 控管模型產生回應的方式別擔心!您可以使用 GenerationConfig 到 設定這些參數如未設定參數,模型就會 使用預設選項,該選項可能因模型而異

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

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount 會指定要傳回的回應數。 這個值目前只能設為 1。如未設定,這個項目會預設為 1。

stopSequences 會指定一組字元序列 (最多 5 個) 將 停止產生輸出內容如果有指定,API 會在首次出現時停止 stop_sequence 內。停止序列不會納入 回應。

maxOutputTokens 會設定要加入候選符記的數量上限。

temperature 控管輸出內容的隨機程度。輸入較高的值即可瀏覽更多內容 和較低的值,以獲得更有確定性的回應。值 可以介於 [0.0, 2.0] 之間

您也可以設定對 generateContent 的個別呼叫:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

模型建構函式上個別呼叫覆寫值設定的任何值。

後續步驟

本指南說明 generateContentstreamGenerateContent。 ,根據輸入文字、文字和圖像生成文字輸出。瞭解詳情 參閱下列資源,瞭解如何使用 Gemini API 生成文字:

  • 使用媒體檔案發出提示: Gemini API 支援透過文字、圖片、音訊和影片資料提示使用者 稱為「多模態提示」
  • 系統操作說明:系統 指示能讓您根據具體的 需求和用途
  • 安全指南:生成式 AI 有時 模型會產生非預期的輸出內容 任何偏見或令人反感的內容後續處理和人工評估 以降低這類輸出的傷害風險