Saltar al contenido
Referencia de API
Referencia de API

Gemini Stream Generar contenido

Envíe una solicitud a través de la operación Stream Generate Content compatible con Gemini de RunAPI.

01

Descripción general

Usa la operación Stream Generate Content compatible con Gemini de RunAPI con un modelo compatible y las formas de solicitud y respuesta del protocolo.

Inicio rápido

  1. Cree una Clave de API y establézcala como RUNAPI_API_KEY.
  2. Elija un modelo compatible y envíe los parámetros de ruta y el cuerpo JSON documentados.
  3. Lea la respuesta JSON o los eventos enviados por el servidor que se muestran para esta operación y gestione los errores de protocolo.

Endpoint

POST /v1beta/models/{model}:streamGenerateContent?alt=sse
URL base
https://runapi.ai
Versión del contrato
v1
Autenticación preferida
x-goog-api-key: YOUR_API_TOKEN
02

Portadores de autenticación

RunAPI acepta cada uno de los carriers indicados a continuación. Los ejemplos generados utilizan el encabezado preferido del protocolo.

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

Modelos compatibles

Abra una página de modelo para conocer los precios actuales, los límites de velocidad y los detalles de uso comercial.

Mostrar 56 modelos compatibles
04

Contrato de solicitud

Cuerpo JSON

Solo se enumeran los campos con evidencia de protocolo público y compatibilidad con RunAPI. Los campos adicionales del cuerpo JSON se transmiten tal cual.

Cuerpo JSON4 campos
contentsarray
Obligatorio

Contenido de la conversación en formato Gemini Content and Part.

generationConfigobject
Opcional

Configuración de generación de Gemini para la solicitud.

systemInstructionobject
Opcional

Instrucciones del sistema representadas como Content de Gemini.

toolsarray
Opcional

Herramientas que el modelo puede llamar.

Parámetros de ruta1 campo
modelstring
Obligatorio

Identificador de modelo de RunAPI situado en la ruta de la llamada.

Ejemplo de solicitud

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

Evento SSE: chunk

text/event-stream

Esquema

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"
}

Ejemplo

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

Error de protocolo: invalid_request

HTTP 400

Esquema

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"
}

Ejemplo

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

Uso

Esquema

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

Ejemplo

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

Ejemplos de código generados

Cada muestra de cURL, JavaScript y Python envía la solicitud validada de este contrato sin requerir un SDK específico del protocolo.

Instalar

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)