Gemini nativ

Inhalte generieren

Generiert Inhalte unter Verwendung des Google Gemini API-Formats

POST
/v1beta/models/{model}:generateContent

Verwenden Sie die Gemini-Anfrage- und Antwortformate mit einem Modell, das von der Gemini Models API zurückgegeben wird. ProtoJSON lowerCamelCase und die entsprechenden proto snake_case Feldnamen werden akzeptiert. Unterstützte optionale Felder und Werte hängen vom ausgewählten Modell ab.

Pfadparameter

modelstringpatherforderlich

Modellname (z. B. gemini-2.5-pro, gemini-3.5-flash).

Abfrageparameter

keystringquery

API-Schlüssel (Alternative zur Header-Authentifizierung).

Authentifizierung

Gemini-Endpunkte unterstützen mehrere Authentifizierungsmethoden:

  • ?key=YOUR_API_KEY Abfrageparameter
  • x-goog-api-key: YOUR_API_KEY Header
  • Authorization: Bearer YOUR_API_KEY Header

Anfragekörper

contentsarrayerforderlich

Konversationsinhalte mit parts und einer optionalen role. Medien-Parts verwenden inlineData / inline_data oder fileData / file_data. Dateien und Cache-IDs, die von TokenLab erstellt wurden, können nur in ihrem zugehörigen Workspace verwendet werden.

systemInstructionobject

Systemanweisung für das Modell.

generationConfigobject

Generierungseinstellungen wie temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema und thinkingConfig. Entsprechende snake_case-Namen werden ebenfalls akzeptiert. Unterstützte Werte und Kombinationen hängen vom Modell ab.

safetySettingsarray

Einstellungen für Sicherheitsfilter.

Jedes oben gezeigte lowerCamelCase-Feld kann auch in der offiziellen proto snake_case-Schreibweise verwendet werden, zum Beispiel system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri und inline_data.mime_type.

Unterstützte Methoden

Die Gemini-kompatible API umfasst das Auflisten/Abrufen von Modellen, generateContent, streamGenerateContent, countTokens, embedContent und batchEmbedContents. Gemini Interactions und Live sind nicht verfügbar.

Antwort

candidatesarray

Kandidaten für generierte Inhalte.

usageMetadataobject

Informationen zur Token-Nutzung.

Anfrage

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

Beispiel für Vision-Input

Für multimodale Gemini-Anfragen platzieren Sie Medien innerhalb von contents[].parts[] unter Verwendung von Inline-Bytes oder URL-basierten Dateireferenzen.

Unterstützte Medienkategorien im öffentlichen Gemini-Vertrag:

  • image
  • audio
  • video

Für Inline-Medien verwenden Sie entweder inlineData oder inline_data und übergeben Sie Base64-kodierte Dateibytes.

Für URL-basierte Medien verwenden Sie entweder fileData oder file_data und übergeben Sie eine öffentliche https-URL.

Beispiel für Video-Input

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

Beispiel für Audio-Input

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

Beispiel für Image-Input

Verwenden Sie Inline-Bildbytes:

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

Verwenden Sie eine Bild-URL:

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

Beispiel für Audio-Input

Verwenden Sie eine Audio-URL:

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

Beispiel für Video-Input

Verwenden Sie eine Video-URL:

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

Antwort

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

Zugehörige Schnittstellen

Lesen Sie die aktuellen Modelldetails des ausgewählten Modells, bevor Sie eine andere Schnittstelle verwenden. Verfügbarkeit und Anfragefelder hängen vom Modell ab.

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

Die Token-Zählung erfordert einen API-Schlüssel und wird nicht in Rechnung gestellt. Die zurückgegebene Eingabeanzahl ist eine Schätzung für die Planung; verwenden Sie die endgültige Antwortnutzung und den Abrechnungsdatensatz für die tatsächliche Berechnung.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

Autorisierung

BearerAuth
AuthorizationBearer <token>

API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.

Ort: header

Pfadparameter

model*string

Modellname (z. B. gemini-2.5-pro)

Abfrageparameter

key?string

API-Schlüssel (Alternative zur Header-Authentifizierung)

Header

X-TokenLab-Delivery-Policy?string

Zustellungsrichtlinie pro Anfrage. Überschreibt die API-Key- und Workspace-Standardeinstellungen. Versucht automatisch zuerst TokenLab Verified und kann vor der Ausgabe, der Annahme der Anfrage oder der Erstellung persistenter Ressourcen einmalig auf Official umstellen.

Zulässige Werte

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

Anfragekörper

application/json

Native Gemini GenerateContent-Anfrage. ProtoJSON lowerCamelCase und originale proto snake_case-Namen werden beide akzeptiert und beibehalten, einschließlich gemischter Anfragen. Wenn beide Schreibweisen eines Feldes vorhanden sind, führt TokenLab keine Zusammenführung durch und wählt keine lokale Priorität. Unbekannte Felder werden nach bestem Bemühen weitergeleitet.

Antwort

application/json

application/json

application/json

application/json

application/json

application/json