Gemini nativo

Generar Contenido

Genera contenido utilizando el formato de la API de Google Gemini

POST
/v1beta/models/{model}:generateContent

Usa los formatos de solicitud y respuesta de Gemini con un modelo devuelto por Gemini Models API. Se aceptan nombres ProtoJSON lowerCamelCase y sus equivalentes proto snake_case. Los campos opcionales y valores admitidos dependen del modelo elegido.

Parámetros de Ruta

modelstringpathobligatorio

Nombre del modelo (por ejemplo, gemini-2.5-pro, gemini-3.5-flash).

Parámetros de Consulta

keystringquery

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

Autenticación

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

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

Cuerpo de la Solicitud

contentsarrayobligatorio

Contenido de conversación con parts y un role opcional. Los medios usan inlineData / inline_data o fileData / file_data. Los ID de Files y Cache creados por TokenLab solo pueden usarse en el Workspace al que pertenecen.

systemInstructionobject

Instrucción del sistema para el modelo.

generationConfigobject

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

safetySettingsarray

Configuración de filtros de seguridad.

Respuesta

candidatesarray

Candidatos de contenido generado.

usageMetadataobject

Información de 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
    }
  }'

Ejemplos de entrada multimodal

Para solicitudes multimodales de Gemini, coloca los medios dentro de contents[].parts[] usando bytes inline o referencias de archivo basadas en URL.

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

  • imagen
  • audio
  • video

Para medios inline, usa inlineData o inline_data y pasa los bytes del archivo codificados en Base64.

Para medios mediante URL, usa fileData o file_data y pasa una URL pública https.

Ejemplo de entrada de imagen

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe esta imagen." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Ejemplo de entrada de audio

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

Ejemplo de entrada de video

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe brevemente este video." },
        {
          "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
  }
}

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

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