Gemini API

Vertex AI Gemini API は、入力としてマルチモーダル プロンプトをサポートし、テキストまたはコードを出力します。

POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-pro:streamGenerateContent
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-pro-vision:streamGenerateContent

次のリージョンがサポートされています。

  • アイオワ(us-central1
  • ラスベガス、ネバダ州(us-west4
  • モントリオール、カナダ(northamerica-northeast1
  • 北バージニア(us-east4
  • オレゴン(us-west1
  • ソウル、韓国(asia-northeast3
  • シンガポール(asia-southeast1
  • 東京、日本(asia-northeast1

詳細については、streamGenerateContent メソッドをご覧ください。

モデルの最新バージョンを使用するには、バージョン番号なしでモデル名を指定します(例: gemini-progemini-pro-vision)。

詳細については、モデルのバージョンとライフサイクルをご覧ください。

リクエストの本文には、次の構造のデータが含まれます。

{
 
"contents": [
   
{
     
"role": string,
     
"parts": [
       
{
         
// Union field data can be only one of the following:
         
"text": string,
         
"inlineData": {
           
"mimeType": string,
           
"data": string
         
},
         
"fileData": {
           
"mimeType": string,
           
"fileUri": string
         
},
         
// End of list of possible types for union field data.

         
"videoMetadata": {
           
"startOffset": {
             
"seconds": integer,
             
"nanos": integer
           
},
           
"endOffset": {
             
"seconds": integer,
             
"nanos": integer
           
}
         
}
       
}
     
]
   
}
 
],
 
"tools": [
   
{
     
"functionDeclarations": [
       
{
         
"name": string,
         
"description": string,
         
"parameters": {
            object
(OpenAPI Object Schema)
         
}
       
}
     
]
   
}
 
],
 
"safetySettings": [
   
{
     
"category": enum (HarmCategory),
     
"threshold": enum (HarmBlockThreshold)
   
}
 
],
 
"generationConfig": {
   
"temperature": number,
   
"topP": number,
   
"topK": number,
   
"candidateCount": integer,
   
"maxOutputTokens": integer,
   
"stopSequences": [
     
string
   
]
 
}
}

次のパラメータを使用します。

パラメータ 説明
role コンテンツに関連付けられた会話でのロール。単一ターンのユースケースでも、ロールの指定が必要です。有効な値は次のとおりです。
  • USER: 送信するコンテンツを指定します。
  • MODEL: モデルのレスポンスを指定します。
parts 入力を構成する順序付きのパーツ。パーツによって MIME タイプが異なる場合があります。

gemini-pro の場合、text フィールドのみが有効です。トークンの上限は 32k です。

gemini-pro-vision には、テキストのみ、テキストと 16 個までの画像、またはテキストと 1 個の動画を指定できます。トークンの上限は 16k です。
text プロンプトに含めるテキストの指示またはチャットの会話。
inlineData 画像または動画のシリアル化されたバイトデータ。inlineData で指定できる画像は 1 個だけです。16 個までの画像を指定するには、fileData を使用します。
mimeType data フィールドまたは fileUri フィールドで指定された画像や動画のメディアタイプ。有効な値は次のとおりです。
  • image/png
  • image/jpeg
  • video/mov
  • video/mpeg
  • video/mp4
  • video/mpg
  • video/avi
  • video/wmv
  • video/mpegps
  • video/flv


動画の長さの上限: 2 分。

画像解像度に制限はありません。
data プロンプトにインラインで含める画像または動画の base64 エンコード。メディアをインラインで含める場合は、MIMETYPE も指定する必要があります。

サイズの上限: 20 MB。

fileUri プロンプトに含める画像または動画の Cloud Storage URI。ファイルを格納するバケットは、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在する必要があります。MIMETYPE も指定する必要があります。

サイズの上限: 20 MB。

videoMetadata 省略可。動画入力の場合、動画の開始と終了のオフセットは Duration 形式で指定します。たとえば、1:00 から 10 秒間のクリップを指定するには、"start_offset": { "seconds": 60 }"end_offset": { "seconds": 70 } を設定します。
tools システムが外部システムと対話して、モデルの知識や範囲外のアクションまたは一連のアクションを実行できるようにするコード。
functionDeclarations 1 つ以上の関数宣言。各関数宣言には、以下を含む 1 つの関数に関する情報が含まれます。
  • name: 呼び出す関数の名前。先頭は英字またはアンダースコアにする必要があります。a~z、A~Z、0~9 にする必要があり、アンダースコアとダッシュを含めることができます。最大長は 64 です。
  • description(省略可)。関数の説明と目的。モデルはこれを使用して、関数の呼び出し方法と呼び出すかどうかを決定します。最良の結果を得るために、説明を含めることをおすすめします。
  • parameters: この関数のパラメータは、OpenAPI スキーマと互換性がある形式で指定します。

詳細については、関数の呼び出しをご覧ください。
category しきい値を構成する安全性カテゴリ。有効な値は次のとおりです。
  • HARM_CATEGORY_SEXUALLY_EXPLICIT
  • HARM_CATEGORY_HATE_SPEECH
  • HARM_CATEGORY_HARASSMENT
  • HARM_CATEGORY_DANGEROUS_CONTENT
threshold 確率に基づいて、指定された安全性カテゴリに属する可能性のあるレスポンスをブロックするためのしきい値。
  • BLOCK_NONE
  • BLOCK_LOW_AND_ABOVE
  • BLOCK_MED_AND_ABOVE
  • BLOCK_HIGH_AND_ABOVE
temperature 温度は、レスポンス生成中にサンプリングするために使用されます。レスポンス生成は、topP と topK が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、自由度や創造性を抑えた決定的なレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度 0 は決定論的で、確率が最大のレスポンスが常に選択されます。

範囲: 0.0 - 1.0

gemini-pro のデフォルト: 0.9

gemini-pro-vision のデフォルト: 0.4
maxOutputTokens レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。

レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。


gemini-pro の範囲: 1-8192(デフォルト: 8192

gemini-pro-vision の範囲: 1-2048(デフォルト: 2048
topK Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が 1 の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3 の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(Temperature を使用します)。

トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンは Top-P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。


範囲: 1-40

gemini-pro のデフォルト: 32

gemini-pro-vision のデフォルト: none
topP Top-P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(Top-K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 で、Top-P が 0.5 だとします。このとき、モデルは次のトークンとして A か B を Temperature を使って選択し、C は候補から外します。

ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。


範囲: 0.0 - 1.0

Default: 1.0
candidateCount 返すレスポンス バリエーションの数。

値は 1 にする必要があります。
stopSequences レスポンスでいずれかの文字列が検出された場合に、テキストの生成を停止するようモデルに指示する文字列のリストを指定します。レスポンスで文字列が複数回出現する場合、レスポンスでは最初に見つかった箇所が切り捨てられます。文字列では大文字と小文字が区別されます。

たとえば、stopSequences が指定されていない場合に、次のレスポンスが返されたとします。

public static string reverse(string myString)

stopSequences["Str", "reverse"] に設定されている次のレスポンスが返されます。

public static string

リスト内の最大アイテム数は 5 です。

レスポンスの本文

{
 
"candidates": [
   
{
     
"content": {
       
"parts": [
         
{
           
"text": string
         
}
       
]
     
},
     
"finishReason": enum (FinishReason),
     
"safetyRatings": [
       
{
         
"category": enum (HarmCategory),
         
"probability": enum (HarmProbability),
         
"blocked": boolean
       
}
     
],
     
"citationMetadata": {
       
"citations": [
         
{
           
"startIndex": integer,
           
"endIndex": integer,
           
"uri": string,
           
"title": string,
           
"license": string,
           
"publicationDate": {
             
"year": integer,
             
"month": integer,
             
"day": integer
           
}
         
}
       
]
     
}
   
}
 
],
 
"usageMetadata": {
   
"promptTokenCount": integer,
   
"candidatesTokenCount": integer,
   
"totalTokenCount": integer
 
}
}
レスポンス要素 説明
text 生成されたテキスト。
finishReason モデルがトークンの生成を停止した理由。空の場合、モデルはトークンの生成を停止していません。
  • FINISH_REASON_UNSPECIFIED: 終了の理由は指定されていません。
  • FINISH_REASON_STOP: モデルの自然な停止点、または指定された停止シーケンス。
  • FINISH_REASON_MAX_TOKENS: リクエストで指定されたトークンの上限に達しました。
  • FINISH_REASON_SAFETY: 安全上の理由からレスポンスにフラグが付けられたため、トークンの生成が停止されました。コンテンツ フィルタが出力をブロックしている場合、Candidate.content は空になります。
  • FINISH_REASON_RECITATION: 未承認の引用でレスポンスにフラグが付けられたため、トークンの生成が停止されました。
  • FINISH_REASON_OTHER: その他の理由でトークンが停止されました。
category しきい値を構成する安全性カテゴリ。有効な値は次のとおりです。
  • HARM_CATEGORY_SEXUALLY_EXPLICIT
  • HARM_CATEGORY_HATE_SPEECH
  • HARM_CATEGORY_HARASSMENT
  • HARM_CATEGORY_DANGEROUS_CONTENT
probability コンテンツ内が有害である確率のレベル。
  • HARM_PROBABILITY_UNSPECIFIED
  • NEGLIGIBLE
  • LOW
  • MEDIUM
  • HIGH
blocked boolean フラグ。モデルの入力または出力がブロックされたかどうかを示す安全性属性に関連するフラグです。blockedtrue の場合、レスポンスの errors フィールドには 1 つ以上のエラーコードが含まれます。blockedfalse の場合、レスポンスに errors フィールドは含まれません。
startIndex コンテンツ内での引用の開始位置を示す整数。
endIndex content の中で引用の終了位置を示す整数。
url 引用元の URL。引用元の URL ソースとしては、ニュースサイトや GitHub リポジトリなどがあります。
title 引用元のタイトル。引用元のタイトルとしては、ニュース記事や書籍などがあります。
license 引用に関連付けられているライセンス。
publicationDate 引用が公開された日付。有効な形式は、YYYYYYYY-MMYYYY-MM-DD です。
promptTokenCount リクエスト内のトークン数。
candidatesTokenCount レスポンス内のトークン数。
totalTokenCount リクエストとレスポンス内のトークンの数。

サンプル リクエスト

サーバー送信イベント(SSE)を有効にし、Vertex AI API を使用してテキスト プロンプトをテストするには、URL の末尾が ?alt=sse の POST リクエストをパブリッシャー モデル エンドポイントに送信します。

リクエストのデータを使用する前に、次のように置き換えます。

他のフィールドについては、リクエストの本文の表をご覧ください。

HTTP メソッドと URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse

リクエストの本文(JSON):

{
  "contents": {
    "role": "user",
    "parts": {
        "text": "Give me a recipe for banana bread."
    },
  },
  "safety_settings": {
    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
    "threshold": "BLOCK_LOW_AND_ABOVE"
  },
  "generation_config": {
    "temperature": 0.2,
    "topP": 0.8,
    "topK": 40
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content

レスポンスの例のような JSON レスポンスが返されます。

チャット プロンプト リクエストを送信する(Gemini)もご覧ください。

サーバー送信イベント(SSE)を有効にし、Vertex AI API を使用してチャット プロンプトをテストするには、URL の末尾が ?alt=sse の POST リクエストをパブリッシャー モデル エンドポイントに送信します。

リクエストのデータを使用する前に、次のように置き換えます。

他のフィールドについては、リクエストの本文の表をご覧ください。

HTTP メソッドと URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse

リクエストの本文(JSON):

{
  "contents": [
    {
      "role": "USER",
      "parts": { "text": "Hello!" }
    },
    {
      "role": "MODEL",
      "parts": { "text": "Argh! What brings ye to my ship?" }
    },
    {
      "role": "USER",
      "parts": { "text": "Wow! You are a real-life priate!" }
    }
  ],
  "safety_settings": {
    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
    "threshold": "BLOCK_LOW_AND_ABOVE"
  },
  "generation_config": {
    "temperature": 0.2,
    "topP": 0.8,
    "topK": 40,
    "maxOutputTokens": 200,
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content

レスポンスの例のような JSON レスポンスが返されます。

マルチモーダル プロンプト リクエストを送信するもご覧ください。

Vertex AI API を使用してマルチモーダル プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

他のフィールドについては、リクエストの本文の表をご覧ください。

HTTP メソッドと URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro-vision:streamGenerateContent

リクエストの本文(JSON):

{
  "contents": {
    "role": "user",
    "parts": [
      {
        "fileData": {
          "mimeType": "image/png",
          "fileUri": "gs://cloud-samples-data/ai-platform/flowers/daisy/10559679065_50d2b16f6d.jpg"
        }
      },
      {
        "text": "Describe this picture."
      }
    ]
  },
  "safety_settings": {
    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
    "threshold": "BLOCK_LOW_AND_ABOVE"
  },
  "generation_config": {
    "temperature": 0.4,
    "topP": 1.0,
    "topK": 32,
    "maxOutputTokens": 2048
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro-vision:streamGenerateContent"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro-vision:streamGenerateContent" | Select-Object -Expand Content

レスポンスの例のような JSON レスポンスが返されます。

関数の呼び出しもご覧ください。

Vertex AI API を使用して関数プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

他のフィールドについては、リクエストの本文の表をご覧ください。

HTTP メソッドと URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent

リクエストの本文(JSON):

{
  "contents": {
    "role": "user",
    "parts": {
      "text": "Which theaters in Mountain View show Barbie movie?"
    }
  },
  "tools": [
    {
      "function_declarations": [
        {
          "name": "find_movies",
          "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
              },
              "description": {
                "type": "string",
                "description": "Any kind of description including category or genre, title words, attributes, etc."
              }
            },
            "required": [
              "description"
            ]
          }
        },
        {
          "name": "find_theaters",
          "description": "find theaters based on location and optionally movie title which are is currently playing in theaters",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
              },
              "movie": {
                "type": "string",
                "description": "Any movie title"
              }
            },
            "required": [
              "location"
            ]
          }
        },
        {
          "name": "get_showtimes",
          "description": "Find the start times for movies playing in a specific theater",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
              },
              "movie": {
                "type": "string",
                "description": "Any movie title"
              },
              "theater": {
                "type": "string",
                "description": "Name of the theater"
              },
              "date": {
                "type": "string",
                "description": "Date for requested showtime"
              }
            },
            "required": [
              "location",
              "movie",
              "theater",
              "date"
            ]
          }
        }
      ]
    }
  ]
}

リクエストを送信するには、次のいずれかのオプションを選択します。

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent"

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent" | Select-Object -Expand Content

レスポンスの例のような JSON レスポンスが返されます。

サンプル レスポンス

data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Ingredients:\n\n- 3 ripe bananas, mashed\n- 1 cup sugar"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": "\n- 1/2 cup (1 stick) unsalted butter, softened\n"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": "- 2 large eggs\n- 2 cups all-purpose flour\n- 1 teaspoon baking soda\n- 1/2 teaspoon salt\n- "}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": "1/2 cup chopped walnuts (optional)\n\nInstructions:\n\n1. Preheat oven to 350 degrees F (175 degrees C). Grease"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": " and flour a 9x5 inch loaf pan.\n2. In a large bowl, cream together the butter and sugar until light and fluffy. Beat in the eggs one at a time, then stir in the mashed bananas.\n3"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 322,"endIndex": 451,"uri": "https://discover.texasrealfood.com/texas-home-cooking/whats-in-season-plums-exploring-health-benefits-varieties-and-recipes"}]}}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": ". In a separate bowl, whisk together the flour, baking soda, and salt. Gradually add the dry ingredients to the wet ingredients, mixing until just combined. Fold in the walnuts, if desired.\n4. Pour the batter into the"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 472,"endIndex": 614,"uri": "https://commandame.com/urban-cookhouse-half-baked-cookie-recipe/"}]}}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": " prepared loaf pan and bake for 50-60 minutes, or until a toothpick inserted into the center comes out clean.\n5. Let the bread cool in the pan for 10 minutes before turning it out onto a wire rack to cool completely."}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 666,"endIndex": 796,"uri": "https://dessertdonelight.com/healthy-hawaiian-banana-bread/"},{"startIndex": 728,"endIndex": 851,"uri": "https://earlsgrocery.com/gluten-free-bread/gluten-free-yeast-free-bread-healthy-and-nutition"}]}}],"usageMetadata": {"promptTokenCount": 8,"candidatesTokenCount": 245,"totalTokenCount": 253}}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Avast there, landlubber! Ye be mistaken. I be but a"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "LOW"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": " humble pirate of the seven seas, brought to life by the magic of artificial intelligence"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}

data
: {"candidates": [{"content": {"role": "model","parts": [{"text": ". I be no real-life pirate, but I be mighty good at pretendin'!"}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"usageMetadata": {"promptTokenCount": 23,"candidatesTokenCount": 50,"totalTokenCount": 73}}
[{
 
"candidates": [
   
{
     
"content": {
       
"role": "model",
       
"parts": [
         
{
           
"text": " A daisy is growing up through a pile of brown and yellow fall leaves"
         
}
       
]
     
},
     
"finishReason": "STOP",
     
"safetyRatings": [
       
{
         
"category": "HARM_CATEGORY_HARASSMENT",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_HATE_SPEECH",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
         
"probability": "NEGLIGIBLE"
       
}
     
]
   
}
 
],
 
"usageMetadata": {
   
"promptTokenCount": 262,
   
"candidatesTokenCount": 14,
   
"totalTokenCount": 276
 
}
}]
[{
 
"candidates": [
   
{
     
"content": {
       
"parts": [
         
{
           
"functionCall": {
             
"name": "find_theaters",
             
"args": {
               
"movie": "Barbie",
               
"location": "Mountain View, CA"
             
}
           
}
         
}
       
]
     
},
     
"finishReason": "STOP",
     
"safetyRatings": [
       
{
         
"category": "HARM_CATEGORY_HARASSMENT",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_HATE_SPEECH",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
         
"probability": "NEGLIGIBLE"
       
},
       
{
         
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
         
"probability": "NEGLIGIBLE"
       
}
     
]
   
}
 
],
 
"usageMetadata": {
   
"promptTokenCount": 9,
   
"totalTokenCount": 9
 
}
}]

次のステップ

Vertex AI Gemini API の使用方法を学習する。