Gemini nativo
Gerar Conteúdo
Gera conteúdo usando o formato da API do Google Gemini
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
Nome do modelo (por exemplo, gemini-2.5-pro, gemini-3.5-flash).
Parâmetros de Consulta
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
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.
Instrução de sistema para o modelo.
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.
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
Candidatos de conteúdo gerado.
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
{
"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.
| HTTP | API |
|---|---|
| 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 Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.
Local: header
Parâmetros de caminho
Nome do modelo (ex: gemini-2.5-pro)
Parâmetros de consulta
Chave de API (alternativa à autenticação via cabeçalho)
Cabeçalhos
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