Gemini nativo

Generar contenido

Genera contenido utilizando el formato de la API de Google Gemini

POST
/v1beta/models/{model}:generateContent

Utilice los formatos de solicitud y respuesta de Gemini con un modelo devuelto por la API de modelos de Gemini. Se aceptan tanto el formato lowerCamelCase de ProtoJSON como los nombres de campo correspondientes en snake_case de proto. Los campos opcionales y valores admitidos dependen del modelo seleccionado.

Parámetros de ruta

modelstringpathobligatorio

Nombre del modelo (p. ej., gemini-2.5-pro, gemini-3.5-flash).

Parámetros de consulta

keystringquery

Clave de API (alternativa a la autenticación mediante cabecera).

Autenticación

Los endpoints de Gemini admiten varios métodos de autenticación:

  • Parámetro de consulta ?key=YOUR_API_KEY
  • Cabecera x-goog-api-key: YOUR_API_KEY
  • Cabecera Authorization: Bearer YOUR_API_KEY

Cuerpo de la solicitud

contentsarrayobligatorio

Contenido de la conversación con parts y un role opcional. Las partes multimedia utilizan inlineData / inline_data o fileData / file_data. Los archivos y los ID de caché creados por TokenLab solo pueden utilizarse en el Workspace al que pertenecen.

systemInstructionobject

Instrucción del sistema para el modelo.

generationConfigobject

Configuración de generación como temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema y thinkingConfig. También se aceptan los nombres correspondientes en snake_case. Los valores y combinaciones admitidos dependen del modelo.

safetySettingsarray

Configuración de los filtros de seguridad.

Cada campo en lowerCamelCase mostrado anteriormente también puede utilizar su escritura oficial en snake_case de proto, por ejemplo: system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri y inline_data.mime_type.

Métodos admitidos

La API compatible con Gemini incluye listado/obtención de modelos, generateContent, streamGenerateContent, countTokens, embedContent y batchEmbedContents. Las funciones Gemini Interactions y Live no están disponibles.

Respuesta

candidatesarray

Candidatos de contenido generado.

usageMetadataobject

Información sobre el uso de tokens.

Solicitud

curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [{"text": "Hello, Gemini!"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Ejemplo de entrada de visión

Para solicitudes multimodales de Gemini, coloque el contenido multimedia dentro de contents[].parts[] utilizando bytes en línea o referencias de archivo basadas en URL.

Categorías multimedia admitidas en los detalles del modelo de Gemini:

  • image
  • audio
  • video

Para contenido multimedia en línea, utilice inlineData o inline_data y pase los bytes del archivo codificados en Base64.

Para contenido multimedia basado en URL, utilice fileData o file_data y pase una URL https pública.

Ejemplo de entrada de video

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this video." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/demo.mp4"
          }
        }
      ]
    }
  ]
}

Ejemplo de entrada de audio

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this audio." },
        {
          "fileData": {
            "mimeType": "audio/mpeg",
            "fileUri": "https://example.com/demo.mp3"
          }
        }
      ]
    }
  ]
}

Ejemplo de entrada de imagen

Utilice bytes de imagen en línea:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Utilice una URL de imagen:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "fileData": {
            "mimeType": "image/jpeg",
            "fileUri": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}

Ejemplo de entrada de audio

Utilice una URL de audio:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Transcribe and summarize this audio." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

Ejemplo de entrada de video

Utilice una URL de video:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe this video briefly." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

Respuesta

Response
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "Hello! How can I assist you today?"}
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 10,
    "totalTokenCount": 15
  }
}

Interfaces relacionadas

Lea los detalles del modelo seleccionado antes de utilizar otra interfaz. La disponibilidad y los campos de solicitud dependen del modelo.

HTTPAPI
POST/v1beta/models/{model}:countTokens
POST/v1beta/models/{model}:embedContent
POST/v1beta/models/{model}:batchEmbedContents

El conteo de tokens requiere una clave de API y no se factura. El conteo de entrada devuelto es una estimación para fines de planificación; utilice el uso final de la respuesta y el registro de facturación para el cargo.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

Autorización

BearerAuth
AuthorizationBearer <token>

Autenticación con API Key. Cree o gestione API keys en Dashboard > API > API Keys.

Ubicación: header

Parámetros de ruta

model*string

Nombre del modelo (ej. gemini-2.5-pro)

Parámetros de consulta

key?string

Clave de API (alternativa a la autenticación por encabezado)

Encabezados

X-TokenLab-Delivery-Policy?string

Política de entrega por solicitud. Sustituye los valores predeterminados de la API key y del Workspace. Auto intenta primero con TokenLab Verified y puede cambiar una vez a Official solo antes de la salida, la aceptación de la solicitud o la creación de recursos persistentes.

Valores permitidos

  • "auto"
  • "verified"
  • "official"

Cuerpo de la solicitud

application/json

Solicitud nativa de Gemini GenerateContent. Se aceptan y conservan tanto los nombres lowerCamelCase de ProtoJSON como los nombres snake_case del proto original, incluyendo solicitudes mixtas. Si ambas grafías de un campo están presentes, TokenLab no las fusiona ni elige una precedencia local. Los campos desconocidos se reenvían bajo un criterio de mejor esfuerzo.

Respuesta

application/json

application/json

application/json

application/json

application/json

application/json