API-Anfragen formatieren

Auf dieser Seite erfahren Sie, wie Sie API-Anfragen für Gemini in Google Distributed Cloud (GDC) Air-Gapped mithilfe der Details zum Anfragetext des OpenAI Chat Completions-Endpunkts formatieren. Wenn Sie dieses Format einhalten, können Sie die erweiterten Funktionen von Gemini nahtlos in Ihre Anwendungen einbinden und dabei die Struktur der OpenAI API verwenden.

Die Gemini-Modellreihe umfasst Modelle, die mit multimodalen Prompt-Anfragen arbeiten. Der Begriff „multimodal“ bedeutet, dass Sie in einem Prompt mehr als eine Modalität oder Art von Eingabe verwenden können. Weitere Informationen finden Sie unter Prompts erstellen.

Weitere Informationen zu den allgemeinen Beschreibungen der Typen, Methoden und Felder, die für die gRPC-Bibliothek generiert wurden, finden Sie in der Gemini-gRPC-Referenz.

Hinweise

Bevor Sie Ihre API-Anfragen formatieren, müssen die folgenden Voraussetzungen erfüllt sein:

  • Weitere Informationen zu den Gemini-Funktionen auf der GDC
  • Erste Schritte mit den Mindestanforderungen für Projekte, um API-Anfragen für Gemini zu stellen.
  • Gemini-Modell-Endpunkt-ID für die Verwendung in Ihren Anfragen ermitteln. Wenn Sie ein bestimmtes Modell auswählen, können Sie seine einzigartigen Funktionen für Ihre Aufgaben nutzen. Verfügbare Gemini-Modelle auf GDC
  • Hier erfahren Sie, wie Sie Ihre Prompts sorgfältig formulieren, um die erwarteten Antworten von Gemini zu erhalten. Experimentieren Sie mit verschiedenen Prompt-Stilen und ‑Formaten, um die Ausgabe zu optimieren. Weitere Informationen finden Sie unter Einführung in das Erstellen von Prompts.
  • Sehen Sie sich die verschiedenen Parameter an, die im OpenAI Chat Completions-Endpunkt verfügbar sind, um das Verhalten von Gemini zu steuern. Passen Sie Parameter wie temperature, max_completion_tokens und top_p an, um die Kreativität, Länge und Vielfalt des generierten Textes zu steuern. Weitere Informationen

Anfragesyntax

Die folgenden Beispiele enthalten die Syntax, die Sie in Ihren API-Anfragen verwenden müssen, um eine Modellantwort zu generieren:

Python

import openai

client = openai.OpenAI()
model_response = client.chat.completions.create(
  model = "MODEL_ID",
  messages = [
    {
      ...
    }
  ]
  ...
)

print(model_response)

curl

curl \
  -X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
  -d '{
      "model_id": "MODEL_ID",
      "messages" = [
        {
          ...
        }
      ]
      ...
  }'

API-Parameter

Dieser Abschnitt enthält eine Liste der wichtigsten Parameter, die Sie im Anfragetext Ihrer API-Anfragen für Gemini auf GDC definieren können, sowie den Antworttext, den das Modell zurückgeben muss. Die vollständige API-Referenz für den Chat Completions-Endpunkt von OpenAI finden Sie unter https://platform.openai.com/docs/api-reference/chat.

Anfragetext

{
  "messages" = [
    {
      "role": string,
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": string
          }
        },
        {
          "type": "input_audio",
          "input_audio": {
            "data": string,
            "format": string
          }
        },
        {
          "type": "audio_url",
          "audio_url": {
            "url": string
          }
        },
        {
          "type": "input_video",
          "input_video": {
            "data": string,
            "format": string
          }
        },
        {
          "type": "video_url",
          "video_url": {
            "url": string
          }
        },
        {
          "type": "input_document",
          "input_document": {
            "data": string,
            "format": string
          }
        },
        {
          "type": "document_url",
          "document_url": {
            "url": string
          }
        }
      ]
    }
  ],
  "temperature": number,
  "max_completion_tokens": integer,
  "top_p": number,
  "n": integer,
  "stop": string,
  "user": string
}

In der folgenden Tabelle sind die wichtigsten Felder und ihre Beschreibungen im Anfragebody für den OpenAI Chat Completions-Endpunkt aufgeführt, wenn er mit Gemini verwendet wird:

Parameter
Feldname Beschreibung

model

Erforderlich: string

Das zu verwendende Gemini-Modell.

Weitere Informationen zu den verfügbaren Gemini-Modellen

messages

Erforderlich: object

Eine Liste der Nachrichten, aus denen sich die aktuelle Unterhaltung mit dem Modell zusammensetzt. Jede Nachricht hat eine role und einen content.

Es werden verschiedene Nachrichtentypen (Modalitäten) unterstützt, z. B. Text, Bilder, Audio, Videos und Dokumente.

role

Erforderlich: string

Die Rolle des Verfassers der Nachricht, die eine der folgenden sein kann:

  • system: Vom System bereitgestellte Anweisungen, die das Modell unabhängig von den vom Nutzer gesendeten Nachrichten befolgen muss.
  • user: Vom Nutzer bereitgestellte Nachrichten, auf die das Modell reagieren muss und die Prompts oder zusätzliche Kontextinformationen enthalten.
  • assistant: Vom Modell bereitgestellte Nachrichten als Reaktion auf Nutzernachrichten.

content

Erforderlich: string oder array

Der Inhalt der Nachricht vom System, Nutzer oder Assistenten.

Bei Einzelabfragen ist der Wert eine einzelne Instanz. Bei Mehrfachabfragen ist content ein wiederkehrendes Feld, das den Unterhaltungsverlauf und die letzte Anfrage enthält. Weitere Informationen finden Sie unter content.

temperature

Optional: number oder null

Der Zufallsgrad des generierten Texts.

Niedrigere Werte (näher an 0) führen zu deterministischeren und fokussierteren Antworten, während höhere Werte (näher an 2) zu vielfältigeren und kreativeren Ergebnissen führen.

Die Standardeinstellung ist 1.

max_completion_tokens

Optional: integer oder null

Die maximale Anzahl von Tokens, die in der Antwort generiert werden sollen, einschließlich sichtbarer Ausgabetokens und Begründungstokens.

top_p

Optional: number oder null

Die Wahrscheinlichkeit der Nucleus-Stichprobennahme.

Bei höheren Werten (näher an 1) wird aus einem breiteren Bereich potenzieller Tokens gesampelt, während bei niedrigeren Werten (näher an 0) die wahrscheinlichsten Tokens im Fokus stehen.

Die Standardeinstellung ist 1.

n

Optional: integer oder null

Die Anzahl der Vervollständigungen, die für jeden Prompt generiert werden sollen.

Die Standardeinstellung ist 1.

stop

Optional: string, array oder null

Eine Liste von Strings, die beim Auftreten den Prozess der Textgenerierung beenden.

Die Standardeinstellung ist null.

user

Optional: string

Eine eindeutige Kennung für den Endnutzer.

Mit diesem Parameter können Sie Nutzungsmuster erfassen und Antworten personalisieren.

content

Dieses Feld ist der strukturierte Basisdatentyp, der den mehrteiligen Inhalt einer Nachricht enthält.

Wenn die Eingabe ein Text-Prompt ist, ist der Wert dieses Felds ein String. Bei multimodalen Prompts besteht dieses Feld jedoch aus einem Array, das in jedem Objekt zwei Haupteigenschaften enthält: type und INPUT. Das Attribut type bezeichnet den Typ des Inhalts aus der multimodalen Eingabe, während das Attribut INPUT das Eingabeelement enthält, das als base64-codierte Daten oder als URL aus einem GDC-Speicher-Bucket dargestellt wird.

In der folgenden Tabelle sind die wichtigsten content-Felder und ihre Beschreibungen für multimodale Prompts aufgeführt:

Feldname Beschreibung

type

Erforderlich: string

Die Art der Inhalte für multimodale Prompts. Zulässige Werte:

  • image_url: Der Eingabeinhalt ist ein Bild, das entweder als base64-codierte Daten oder als URL aus einem GDC-Speicher-Bucket bereitgestellt wird.
  • input_audio: Der Eingabeinhalt ist Audio, das als base64-codierte Daten bereitgestellt wird.
  • audio_url: Der Eingabeinhalt ist Audio, das als URL aus einem GDC-Storage-Bucket bereitgestellt wird.
  • input_video: Der Eingabeinhalt ist ein Video, das als base64-codierte Daten bereitgestellt wird.
  • video_url: Die Eingabeinhalte sind Videos, die als URL aus einem GDC-Speicher-Bucket bereitgestellt werden.
  • input_document: Der Eingabeinhalt ist ein Dokument, das als base64-codierte Daten bereitgestellt wird.
  • document_url: Der Eingabeinhalt ist ein Dokument, das als URL aus einem GDC-Speicher-Bucket bereitgestellt wird.

INPUT

Erforderlich: object

Die Inhaltseingabe für multimodale Prompts. Dieser Feldname muss mit dem im Feld type angegebenen Wert übereinstimmen.

Daher ist dieser Feldname einer der folgenden:

  • Für Bilder: image_url
  • Für Audio: input_audio oder audio_url
  • Für Video: input_video oder video_url
  • Für Dokumente: input_document oder document_url.

Jedes Eingabefeld hat ein url oder data und format.

url

Optional: string

Wenn die Eingabeinhalte als URL angegeben werden, ist das der Pfad zur Datei in einem GDC-Speicher-Bucket.

Bei Bildern kann dieses Feld anstelle einer URL base64-codierte Daten enthalten.

data

Optional: string

Wenn die Eingabeinhalte als base64-codierte Daten bereitgestellt werden, werden die Binärdaten in einen String aus Zeichen umgewandelt.

Bei Bildern werden stattdessen base64-codierte Daten im Feld url bereitgestellt.

format

Optional: string

Wenn die Eingabeinhalte im Feld data angegeben werden, die Formatangabe der bereitgestellten Daten.

Je nach Eingabedaten werden unterschiedliche Formate unterstützt. Weitere Informationen finden Sie unter MIME-Typen für Bilder, Audio, Videos und Dokumente.

Antworttext

{
  "id": string,
  "object": string,
  "created": integer,
  "model": string,
  "choices": [
    {
      "index": integer,
      "message": {
        "role": string,
        "content": string,
        "refusal": null
      },
      "logprobs": null,
      "finish_reason": string
    }
  ],
  "usage": {
    "completion_tokens": integer,
    "prompt_tokens": integer,
    "total_tokens": integer
  },
  "system_fingerprint": string
}

In der folgenden Tabelle werden die wichtigsten Felder und ihre Beschreibungen im Antworttext beschrieben, der vom Modell basierend auf der bereitgestellten Eingabe zurückgegeben wird:

Feldname Beschreibung

id

string

Eine eindeutige Kennung für den generierten Text.

object

string

Der Objekttyp, der immer chat.completion ist.

created

integer

Der Zeitstempel in Sekunden, der angibt, wann der Text generiert wurde.

model

string

Das Modell, das zum Generieren des Texts verwendet wurde.

choices

array

Eine Liste mit Optionen für die Textgenerierung. Dieses Feld kann mehrere Optionen enthalten, wenn n größer als 1 ist.

index

integer

Der Index der Auswahl in der Liste der Auswahlmöglichkeiten.

message

object

Eine vom Modell generierte Nachricht zur Textgenerierung. Dieses Feld enthält die folgenden Attribute:

  • role: (string) Die Rolle des Nachrichtenautors.
  • content: (string oder null) Der Inhalt der Nachricht.
  • refusal: (string oder null) Die vom Modell generierte Ablehnungsnachricht.

logprobs

object oder null

Informationen zur Log-Wahrscheinlichkeit für die Auswahl.

finish_reason

string

Der Grund, warum das Modell keine Tokens mehr generiert. Der Wert ist einer der folgenden:

  • stop: Das Modell erreicht einen natürlichen Stopppunkt oder eine angegebene Stoppsequenz.
  • length: Die in der Anfrage angegebene maximale Anzahl von Tokens wurde erreicht.
  • content_filter: Inhalte werden aufgrund eines Flags von Inhaltsfiltern ausgelassen.
  • tool_calls: Das Modell, das als Tool bezeichnet wird.

usage

object

Nutzungsstatistiken für die Anfrage.

completion_tokens

integer

Anzahl der Tokens im generierten Text.

prompt_tokens

integer

Anzahl der Tokens im Prompt.

total_tokens

integer

Gesamtzahl der Tokens im Prompt und im generierten Text.

system_fingerprint

string

Die Backend-Konfiguration, die das Modell für die Ausführung verwendet.

Beispiele

Dieser Abschnitt enthält ein Beispiel für den Anfrage- und den Antworttext für die Textgenerierung, den das Modell zurückgeben muss.

Beispielanfrage

Das folgende Beispiel zeigt die Details eines Anfragetexts, mit dem ein Prompt an Gemini gesendet wird, um Text zu generieren. Das Beispiel enthält Steuerelemente für Temperatur und maximale Anzahl von Tokens. Implementierungsdetails finden Sie unter Text-Prompt senden oder Multimodalen Prompt senden.

{
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful and informative assistant."
    },
    {
      "role": "user",
      "content": "What is the capital of France?"
    }
  ],
  "temperature": 0.7,
  "max_completion_tokens": 100
}

Beispielantwort

Das folgende Beispiel zeigt die Details einer Antwort zur Textgenerierung, die vom Modell zurückgegeben wurde:

{
  "id": "",
  "object": "",
  "created": 0,
  "model": "",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris.\n",
        "refusal": null
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "completion_tokens": 7,
    "prompt_tokens": 8,
    "total_tokens": 15
  },
  "system_fingerprint": ""
}

Nächste Schritte