テキスト生成

Gemini API は、テキスト、画像、動画、音声を入力として指定すると、テキスト出力を生成できます。

このガイドでは、generateContent メソッドと streamGenerateContent メソッドを使用してテキストを生成する方法について説明します。Gemini のビジョン機能と音声機能の使用方法については、ビジョン音声のガイドをご覧ください。

テキストのみの入力からテキストを生成する

Gemini API を使用してテキストを生成する最も簡単な方法は、次の例に示すように、モデルにテキストのみの入力を 1 つ指定することです。

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("How does AI work?")
print(response.text)

この場合、プロンプト(「AI の仕組みを説明してください」)には、出力の例、システムの手順、フォーマット情報は含まれません。これはゼロショット アプローチです。ユースケースによっては、1 ショットまたは少数ショットのプロンプトを使用すると、ユーザーの期待に沿った出力が生成される場合があります。場合によっては、モデルがタスクを理解したり、特定のガイドラインに従ったりできるように、システム指示を提供することもあります。

テキストと画像の入力からテキストを生成する

Gemini API は、テキスト ファイルとメディア ファイルを組み合わせたマルチモーダル入力をサポートしています。次の例は、テキストと画像の入力からテキストを生成する方法を示しています。

import google.generativeai as genai
import PIL.Image

genai.configure(api_key="GEMINI_API_KEY")

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

テキスト ストリームを生成する

デフォルトでは、モデルはテキスト生成プロセス全体が完了した後にレスポンスを返します。結果全体を待たずに、ストリーミングを使用して部分的な結果を処理することで、インタラクションを高速化できます。

次の例は、streamGenerateContent メソッドを使用してストリーミングを実装し、テキストのみの入力プロンプトからテキストを生成する方法を示しています。

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Explain how AI works", stream=True)
for chunk in response:
    print(chunk.text, end="")

チャット会話を作成する

Gemini SDK を使用すると、複数のラウンドの質問と回答を収集できます。これにより、ユーザーは回答に段階的に近づいたり、複数の問題についてサポートを受けたりできます。この SDK 機能は、会話履歴を追跡するためのインターフェースを提供しますが、バックグラウンドでは同じ generateContent メソッドを使用してレスポンスを作成します。

次のコード例は、基本的なチャットの実装を示しています。

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

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)
response2 = chat.send_message("How many paws are in my house?")
print(response2.text)

次の例に示すように、チャットとストリーミングを併用することもできます。

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

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.", stream=True)
for chunk in response:
    print(chunk.text, end="")

response2 = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response2:
    print(chunk.text, end="")

print(chat.history)

テキスト生成を構成する

モデルに送信するすべてのプロンプトには、モデルがレスポンスを生成する方法を制御するパラメータが含まれています。これらのパラメータは GenerationConfig を使用して構成できます。パラメータを構成しない場合、モデルはデフォルトのオプションを使用します。このオプションはモデルによって異なる場合があります。

次の例は、使用可能ないくつかのオプションを構成する方法を示しています。

import google.generativeai as genai

genai.configure(api_key="GEMINI_API_KEY")

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Explain how AI works",
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

print(response.text)

次のステップ

Gemini API の基本を理解したので、次のことを試すことができます。

  • 画像認識: Gemini のネイティブな画像認識を使用して画像と動画を処理する方法を学びます。
  • 音声の理解: Gemini のネイティブ音声理解を使用して音声ファイルを処理する方法を学びます。