Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

TokenLab es compatible con el formato nativo de la API de Google Gemini para los modelos Gemini. Esto permite una compatibilidad directa con los SDK de Google AI.

Parámetros de Ruta

model
string
requerido
Nombre del modelo (por ejemplo, gemini-2.5-pro, gemini-2.5-flash).Para integraciones de producción, prefiera partes multimedia basadas en URL fileData / file_data con una URL pública https. TokenLab enrutará los canales nativos de Gemini compatibles a través de la ruta nativa cuando sea posible y hará automáticamente una degradación a la ruta interna de conversión compatible cuando una ruta lista para uso nativo no esté disponible para esa solicitud multimodal.

Parámetros de Consulta

key
string
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

contents
array
requerido
Contenidos de la conversación.Cada objeto de contenido contiene:
  • role (string): user o model
  • parts (array): partes del contenido. TokenLab admite actualmente:
    • partes de texto: { "text": "..." }
    • partes de medios en línea: inlineData / inline_data
    • partes de archivo basadas en URL: fileData / file_data
Para las partes multimedia, TokenLab acepta actualmente tipos MIME de imagen, audio y video, y los reenvía a través del contrato público compatible con Gemini.Los valores de rol user y model se normalizan sin distinguir mayúsculas. inlineData / inline_data con application/octet-stream solo se acepta cuando TokenLab puede identificar bytes de imagen o video compatibles; de lo contrario, la solicitud falla antes del enrutamiento. Para solicitudes nativas con salida de imagen, solo se acepta la familia de herramientas Google search/maps, y las combinaciones de herramientas no compatibles fallan antes de reintentar con el proveedor.
systemInstruction
object
Instrucción del sistema para el modelo.
generationConfig
object
Configuración de generación:
  • temperature (number): Temperatura de muestreo
  • topP (number): Probabilidad de muestreo de núcleo (nucleus sampling)
  • topK (integer): Muestreo Top-K
  • maxOutputTokens (integer): Máximo de tokens de salida
  • stopSequences (array): Secuencias de parada
safetySettings
array
Configuración de filtros de seguridad.

Respuesta

candidates
array
Candidatos de contenido generado.
usageMetadata
object
Información de uso de tokens.
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 el contrato público 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"
          }
        }
      ]
    }
  ]
}
{
  "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"
          }
        }
      ]
    }
  ]
}