Gemini nativo
Generar contenido
Genera contenido utilizando el formato de la API de Google Gemini
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
Nombre del modelo (p. ej., gemini-2.5-pro, gemini-3.5-flash).
Parámetros de consulta
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
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.
Instrucción del sistema para el modelo.
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.
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
Candidatos de contenido generado.
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
{
"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.
| HTTP | API |
|---|---|
| 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 Autenticación con API Key. Cree o gestione API keys en Dashboard > API > API Keys.
Ubicación: header
Parámetros de ruta
Nombre del modelo (ej. gemini-2.5-pro)
Parámetros de consulta
Clave de API (alternativa a la autenticación por encabezado)
Encabezados
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