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_tokensundtop_pan, 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 | |
|
Erforderlich: Das zu verwendende Gemini-Modell. |
|
|
Erforderlich: Eine Liste der Nachrichten, aus denen sich die aktuelle Unterhaltung mit dem Modell zusammensetzt. Jede Nachricht hat eine Es werden verschiedene Nachrichtentypen (Modalitäten) unterstützt, z. B. Text, Bilder, Audio, Videos und Dokumente. |
|
|
Erforderlich: Die Rolle des Verfassers der Nachricht, die eine der folgenden sein kann:
|
|
|
Erforderlich: Der Inhalt der Nachricht vom System, Nutzer oder Assistenten. Bei Einzelabfragen ist der Wert eine einzelne Instanz. Bei Mehrfachabfragen ist |
|
|
Optional: Der Zufallsgrad des generierten Texts. Niedrigere Werte (näher an Die Standardeinstellung ist |
|
|
Optional: Die maximale Anzahl von Tokens, die in der Antwort generiert werden sollen, einschließlich sichtbarer Ausgabetokens und Begründungstokens. |
|
|
Optional: Die Wahrscheinlichkeit der Nucleus-Stichprobennahme. Bei höheren Werten (näher an Die Standardeinstellung ist |
|
|
Optional: Die Anzahl der Vervollständigungen, die für jeden Prompt generiert werden sollen. Die Standardeinstellung ist |
|
|
Optional: Eine Liste von Strings, die beim Auftreten den Prozess der Textgenerierung beenden. Die Standardeinstellung ist |
|
|
Optional: 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 | |
|---|---|---|
|
Erforderlich: Die Art der Inhalte für multimodale Prompts. Zulässige Werte:
|
|
|
Erforderlich: Die Inhaltseingabe für multimodale Prompts. Dieser Feldname muss mit dem im Feld Daher ist dieser Feldname einer der folgenden:
Jedes Eingabefeld hat ein |
|
|
Optional: 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. |
|
|
Optional: 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 |
|
|
Optional: Wenn die Eingabeinhalte im Feld 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 | |
|---|---|---|
|
Eine eindeutige Kennung für den generierten Text. |
|
|
Der Objekttyp, der immer |
|
|
Der Zeitstempel in Sekunden, der angibt, wann der Text generiert wurde. |
|
|
Das Modell, das zum Generieren des Texts verwendet wurde. |
|
|
Eine Liste mit Optionen für die Textgenerierung. Dieses Feld kann mehrere Optionen enthalten, wenn |
|
|
Der Index der Auswahl in der Liste der Auswahlmöglichkeiten. |
|
|
Eine vom Modell generierte Nachricht zur Textgenerierung. Dieses Feld enthält die folgenden Attribute:
|
|
|
Informationen zur Log-Wahrscheinlichkeit für die Auswahl. |
|
|
Der Grund, warum das Modell keine Tokens mehr generiert. Der Wert ist einer der folgenden:
|
|
|
Nutzungsstatistiken für die Anfrage. |
|
|
Anzahl der Tokens im generierten Text. |
|
|
Anzahl der Tokens im Prompt. |
|
|
Gesamtzahl der Tokens im Prompt und im generierten Text. |
|
|
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": ""
}