Gemini API 可根據各種輸入內容類型產生文字輸出內容,包括 像是文字、圖片、影片和音訊在各種情境中 應用程式,其中包括:
- 創意寫作
- 描述或解讀媒體素材資源
- 文字補全
- 產生任意形式文字的摘要
- 互譯語言
- 聊天機器人
- 你的新奇用途
本指南將說明如何使用
generateContent
和
streamGenerateContent
相互整合重點在於文字輸出和文字和圖像。目的地:
如需進一步瞭解影片和音訊檔案的多模態提示,請參閱
檔案提示策略。
事前準備:設定專案和 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,
)
)
模型建構函式上個別呼叫覆寫值設定的任何值。
後續步驟
本指南說明
generateContent
和
streamGenerateContent
,根據輸入文字、文字和圖像生成文字輸出。瞭解詳情
參閱下列資源,瞭解如何使用 Gemini API 生成文字: