Gemini nativo

Gerar Conteúdo

Gera conteúdo usando o formato da API do Google Gemini

POST
/v1beta/models/{model}:generateContent

Use os formatos de solicitação e resposta do Gemini com um modelo retornado pela API de Modelos do Gemini. Nomes de campos em lowerCamelCase do ProtoJSON e os nomes de campos correspondentes em snake_case do proto são aceitos. Os campos opcionais e valores suportados dependem do modelo selecionado.

Parâmetros de Caminho

modelstringpathobrigatório

Nome do modelo (por exemplo, gemini-2.5-pro, gemini-3.5-flash).

Parâmetros de Consulta

keystringquery

Chave de API (alternativa à autenticação via cabeçalho).

Autenticação

Os endpoints do Gemini suportam vários métodos de autenticação:

  • Parâmetro de consulta ?key=YOUR_API_KEY
  • Cabeçalho x-goog-api-key: YOUR_API_KEY
  • Cabeçalho Authorization: Bearer YOUR_API_KEY

Corpo da Solicitação

contentsarrayobrigatório

Conteúdo da conversa com parts e um role opcional. Partes de mídia usam inlineData / inline_data ou fileData / file_data. Arquivos e IDs de cache criados pelo TokenLab só podem ser usados no Workspace ao qual pertencem.

systemInstructionobject

Instrução de sistema para o modelo.

generationConfigobject

Configurações de geração, como temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema e thinkingConfig. Nomes correspondentes em snake_case também são aceitos. Os valores e combinações suportados dependem do modelo.

safetySettingsarray

Configurações de filtros de segurança.

Cada campo em lowerCamelCase mostrado acima também pode usar sua grafia oficial em snake_case do proto, por exemplo: system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri e inline_data.mime_type.

Métodos Suportados

A API compatível com o Gemini inclui listagem/obtenção de modelos, generateContent, streamGenerateContent, countTokens, embedContent e batchEmbedContents. As interações Gemini e Live não estão disponíveis.

Resposta

candidatesarray

Candidatos de conteúdo gerado.

usageMetadataobject

Informações sobre o uso de tokens.

Requisição

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

Exemplo de Entrada de Visão

Para solicitações multimodais do Gemini, coloque a mídia dentro de contents[].parts[] usando bytes inline ou referências de arquivo baseadas em URL.

Categorias de mídia suportadas nos detalhes do modelo do Gemini:

  • image
  • audio
  • video

Para mídia inline, use inlineData ou inline_data e passe os bytes do arquivo codificados em Base64.

Para mídia baseada em URL, use fileData ou file_data e passe uma URL https pública.

Exemplo de Entrada de Vídeo

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

Exemplo de Entrada de Áudio

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

Exemplo de Entrada de Imagem

Use bytes de imagem inline:

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

Use uma URL de imagem:

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

Exemplo de Entrada de Áudio

Use uma URL de áudio:

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

Exemplo de Entrada de Vídeo

Use uma URL de vídeo:

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

Resposta

Resposta
{
  "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

Leia os detalhes do modelo selecionado antes de usar outra interface. A disponibilidade e os campos de solicitação dependem do modelo.

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

A contagem de tokens requer uma chave de API e não é cobrada. A contagem de entrada retornada é uma estimativa para planejamento; use o uso da resposta final e o registro de faturamento para a cobrança.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

Autorização

BearerAuth
AuthorizationBearer <token>

Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.

Local: header

Parâmetros de caminho

model*string

Nome do modelo (ex: gemini-2.5-pro)

Parâmetros de consulta

key?string

Chave de API (alternativa à autenticação via cabeçalho)

Cabeçalhos

X-TokenLab-Delivery-Policy?string

Política de entrega por solicitação. Substitui os padrões da API key e do Workspace. Tenta automaticamente o TokenLab Verified primeiro e pode alternar uma vez para Official apenas antes da saída, aceitação da solicitação ou criação de recurso persistente.

Valores permitidos

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

Corpo da requisição

application/json

Solicitação nativa Gemini GenerateContent. Nomes em lowerCamelCase do ProtoJSON e nomes originais em snake_case do proto são aceitos e preservados, incluindo solicitações mistas. Se ambas as grafias de um campo estiverem presentes, o TokenLab não as mescla nem escolhe uma precedência local. Campos desconhecidos são encaminhados com base no melhor esforço.

Resposta

application/json

application/json

application/json

application/json

application/json

application/json