Vai al contenuto
Riferimento API
Riferimento API

Gemini Stream Genera contenuto

Invia una richiesta tramite l'operazione Stream Generate Content compatibile con Gemini di RunAPI.

01

Panoramica

Usa l'operazione Stream Generate Content compatibile con Gemini di RunAPI con un modello compatibile e le forme di richiesta e risposta del protocollo.

Avvio rapido

  1. Crea una Chiave API e impostala come RUNAPI_API_KEY.
  2. Scegli un modello compatibile, quindi invia i parametri di percorso e il corpo JSON documentati.
  3. Leggi la risposta JSON o gli eventi inviati dal server mostrati per questa operazione e gestisci gli errori di protocollo.

Endpoint

POST /v1beta/models/{model}:streamGenerateContent?alt=sse
URL di base
https://runapi.ai
Versione del contratto
v1
Autenticazione preferita
x-goog-api-key: YOUR_API_TOKEN
02

Vettori di autenticazione

RunAPI accetta ciascun protocollo elencato di seguito. I campioni generati utilizzano l'header preferito del protocollo.

header
Authorization: Bearer YOUR_API_TOKEN
header
x-api-key: YOUR_API_TOKEN
header - Preferito
x-goog-api-key: YOUR_API_TOKEN
query
?key=YOUR_API_TOKEN
03

Modelli compatibili

Apri la pagina di un modello per i prezzi correnti, i limiti di frequenza e i dettagli sull'uso commerciale.

Mostra 56 modelli compatibili
04

Contratto della richiesta

Corpo JSON

Sono elencati solo i campi con evidenza di supporto sia del protocollo pubblico che di RunAPI. I campi aggiuntivi del corpo JSON vengono trasmessi senza modifiche.

Corpo JSON4 campi
contentsarray
Obbligatorio

Contenuto della conversazione in formato Gemini Content e Part.

generationConfigobject
Opzionale

Configurazione di generazione Gemini per la richiesta.

systemInstructionobject
Opzionale

Istruzioni di sistema rappresentate come Gemini Content.

toolsarray
Opzionale

Strumenti che il modello può chiamare.

Parametri del percorso1 campo
modelstring
Obbligatorio

Identificatore del modello di RunAPI inserito nel percorso wire.

Esempio di richiesta

JSON
{
  "contents": [
    {
      "parts": [
        {
          "text": "Summarize one practical improvement for an API deployment."
        }
      ],
      "role": "user"
    }
  ]
}
05

Evento SSE: chunk

text/event-stream

Schema

JSON
{
  "additionalProperties": true,
  "properties": {
    "candidates": {
      "items": {
        "additionalProperties": true,
        "properties": {
          "content": {
            "additionalProperties": true,
            "properties": {
              "parts": {
                "type": "array"
              },
              "role": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "finishReason": {
            "type": "string"
          },
          "index": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "modelVersion": {
      "type": "string"
    },
    "responseId": {
      "type": "string"
    },
    "usageMetadata": {
      "additionalProperties": true,
      "properties": {
        "candidatesTokenCount": {
          "type": "integer"
        },
        "promptTokenCount": {
          "type": "integer"
        },
        "totalTokenCount": {
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}

Esempio

JSON
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Hello"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "modelVersion": "gemini-3.5-flash",
  "responseId": "resp_example",
  "usageMetadata": {
    "candidatesTokenCount": 8,
    "promptTokenCount": 12,
    "totalTokenCount": 20
  }
}
06

Errore di protocollo: invalid_request

HTTP 400

Schema

JSON
{
  "additionalProperties": true,
  "properties": {
    "error": {
      "additionalProperties": true,
      "properties": {
        "code": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "status"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

Esempio

JSON
{
  "error": {
    "code": 400,
    "message": "contents is required",
    "status": "INVALID_ARGUMENT"
  }
}
07

Utilizzo

Schema

JSON
{
  "additionalProperties": true,
  "properties": {
    "candidatesTokenCount": {
      "type": "integer"
    },
    "promptTokenCount": {
      "type": "integer"
    },
    "totalTokenCount": {
      "type": "integer"
    }
  },
  "type": "object"
}

Esempio

JSON
{
  "candidatesTokenCount": 8,
  "promptTokenCount": 12,
  "totalTokenCount": 20
}
08

Esempi di Codice Generati

Ogni esempio cURL, JavaScript e Python invia la richiesta validata di questo contratto senza richiedere un SDK specifico per il protocollo.

Installa

Shell
pip install requests
PYTHON
import requests

response = requests.post(
    "https://runapi.ai/v1beta/models/gemini-3.5-flash:streamGenerateContent?alt=sse",
    headers={"x-goog-api-key": "YOUR_API_TOKEN", "Content-Type": "application/json"},
    json={"contents": [{"role": "user", "parts": [{"text": "Summarize one practical improvement for an API deployment."}]}]},
    stream=True
)
response.raise_for_status()
for line in response.iter_lines(decode_unicode=True):
    if line:
        print(line)