Text-Prompt senden

In diesem Leitfaden senden Sie einen Text-Prompt über die API an Gemini und sehen sich die Antwort des Modells an.

Sie können diese Anleitung mit Clientbibliotheken für Python in Ihrer lokalen Umgebung oder durch Senden von Befehlszeilenanfragen an die REST API durcharbeiten.

Informationen zu den von Gemini unterstützten Sprachen, in denen Sie Ihre Prompts senden können.

Hinweise

Bevor Sie Text-Prompts an Gemini senden können, um Text generieren zu lassen, benötigen Sie ein Projekt, für das die Gemini API aktiviert ist, sowie die entsprechenden Rollen und Anmeldedaten. Sie müssen die gcloud CLI installieren, initialisieren und authentifizieren und Clientbibliotheken für Python installieren.

Weitere Informationen finden Sie unter Erste Schritte.

Prompt an die Gemini API senden

Mit dem folgenden Code senden Sie einen Text-Prompt an die Gemini API. In diesem Beispiel wird die Höhe des Empire State Building zurückgegeben.

Sie können den Code über die Befehlszeile, mit einer IDE oder durch Einbinden des Codes in Ihre Anwendung ausführen.

Python

So senden Sie einen Text-Prompt und generieren Text aus einem Python-Skript:

  1. Speichern Sie Ihre API-Anfrage in einer JSON-Datei mit dem Namen request.json. Die Datei muss so aussehen wie im folgenden Beispiel:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Details zum Anfragetext finden Sie unter API-Anfragen formatieren.

    Sie können mit Parametern in Ihrer Anfrage experimentieren. Weitere Informationen finden Sie unter Funktionen.

  2. Installieren Sie die erforderlichen Python-Bibliotheken:

    pip install openai
    pip install absl-py
    pip install typing
    pip install protobuf
    
  3. Erforderliche Umgebungsvariablen in einem Python-Skript festlegen

  4. API-Anfrage authentifizieren

  5. Fügen Sie dem von Ihnen erstellten Python-Skript den folgenden Code hinzu:

    import json
    import os
    
    from absl import app
    from absl import flags
    from openai import OpenAI, OpenAIError
    
    from google.protobuf import json_format
    from google.protobuf.struct_pb2 import Value
    
    from typing import Sequence
    
    _INPUT = flags.DEFINE_string("input", None, "input", required=True)
    _HOST = flags.DEFINE_string("host", None, "Chat Completion endpoint", required=True)
    _TOKEN = flags.DEFINE_string("token", None, "STS token", required=True)
    
    def chat_completion_client(host):
        return OpenAI(
            api_key="None",
            base_url="https://" + host + "/v1/projects/PROJECT_ID/locations/PROJECT_ID"
        )
    
    def chat_completion(client, messages, token):
    
        try:
            response = client.chat.completions.create(
            model="MODEL_ID",
            messages=messages,
            extra_headers={"Authorization" : "Bearer " + token, "Content-Type": "application/json"}
            )
            print("response:", response)
        except Exception as e:
            print("Got exception:", e)
    
    def main(argv: Sequence[str]):
        del argv  # Unused.
        with open(_INPUT.value) as json_file:
            data = json.load(json_file)
    
        print("Request: ", data)
    
        client = chat_completion_client(_HOST.value,)
    
        chat_completion(client=client, messages=data["messages"], token=_TOKEN.value)
    
    if __name__=="__main__":
        app.run(main)
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • MODEL_ID: Die Modellendpunkt-ID, für die Sie die Antwort generieren möchten.
  6. Speichern Sie das Python-Skript.

  7. So senden Sie eine Anfrage an Gemini über die Chat Completions-Oberfläche:

    python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKEN
    

    Ersetzen Sie Folgendes:

    • SCRIPT_NAME: Der Name, den Sie Ihrem Python-Skript gegeben haben, z. B. client.py.
    • ENDPOINT: Der Gemini-Endpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen
    • TOKEN: Das Authentifizierungstoken, das Sie erhalten haben.

Sie müssen eine Antwort ähnlich der folgenden erhalten:

ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))

curl

So senden Sie einen Text-Prompt und generieren Text über eine curl-Anfrage an die REST API:

  1. Speichern Sie Ihre API-Anfrage in einer JSON-Datei mit dem Namen request.json. Die Datei muss so aussehen wie im folgenden Beispiel:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Details zum Anfragetext finden Sie unter API-Anfragen formatieren.

    Sie können mit Parametern in Ihrer Anfrage experimentieren. Weitere Informationen finden Sie unter Funktionen.

  2. API-Anfrage authentifizieren

  3. Stellen Sie die Anfrage:

    curl  \
      -H "Authorization: Bearer TOKEN"  \
      -H "Content-Type: application/json; charset=utf-8"  \
      -X POST  https://ENDPOINT:443/v1/projects/PROJECT_ID/locations/PROJECT_ID/chat/completions  -d @./request.json
    

    Ersetzen Sie Folgendes:

Sie müssen eine Antwort ähnlich der folgenden erhalten:

ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))

Nächste Schritte