Text mit der Gemini API generieren

Die Gemini API kann Textausgaben generieren, wenn Text, Bilder, Videos und Audioinhalte als Eingabe bereitgestellt werden.

In dieser Anleitung erfahren Sie, wie Sie mit den Methoden generateContent und streamGenerateContent Text generieren. Weitere Informationen zur Verwendung der Bild- und Audiofunktionen von Gemini finden Sie in den Leitfäden Vision und Audio.

Hinweis: Projekt und API-Schlüssel einrichten

Bevor Sie die Gemini API aufrufen können, müssen Sie Ihr Projekt einrichten und Ihren API-Schlüssel konfigurieren.

Text aus reiner Texteingabe generieren

Die einfachste Möglichkeit, mit der Gemini API Text zu generieren, besteht darin, dem Modell eine einzelne Texteingabe zur Verfügung zu stellen, wie in diesem Beispiel gezeigt:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

In diesem Fall enthält der Prompt („Eine Geschichte über einen magischen Rucksack schreiben“) keine Ausgabebeispiele, Systemanweisungen oder Formatierungsinformationen. Es ist ein Zero-Shot-Ansatz. Bei einigen Anwendungsfällen kann ein Prompt vom Typ One-Shot oder Few-Shot zu einer Ausgabe führen, die den Erwartungen der Nutzer besser entspricht. In einigen Fällen können Sie auch Systemanweisungen angeben, damit das Modell die Aufgabe besser versteht oder bestimmte Richtlinien befolgt.

Text aus Text- und Bildeingabe generieren

Die Gemini API unterstützt multimodale Eingaben, bei denen Text mit Mediendateien kombiniert wird. Das folgende Beispiel zeigt, wie Text aus Text- und Bildeingaben generiert wird:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

Wie bei Prompts mit reinem Text können auch multimodale Prompts verschiedene Ansätze und Verfeinerungen umfassen. Je nach Ausgabe dieses Beispiels können Sie dem Prompt weitere Schritte hinzufügen oder Ihre Anleitung konkreter formulieren. Weitere Informationen finden Sie unter Strategien für Dateiaufforderungen.

Textstream generieren

Standardmäßig gibt das Modell eine Antwort zurück, nachdem der gesamte Textgenerierungsprozess abgeschlossen ist. Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das vollständige Ergebnis warten, sondern stattdessen Streaming zum Verarbeiten von Teilergebnissen verwenden.

Das folgende Beispiel zeigt, wie Streaming mit der Methode streamGenerateContent implementiert wird, um Text aus einem reinen Text-Eingabe-Prompt zu generieren.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Interaktiven Chat erstellen

Mit der Gemini API können Sie interaktive Chats für Ihre Nutzer erstellen. Mit der Chatfunktion der API können Sie mehrere Fragen und Antworten erfassen, sodass Nutzer schrittweise zu Antworten gelangen oder Hilfe bei mehrteiligen Problemen erhalten können. Diese Funktion ist ideal für Anwendungen, die eine ständige Kommunikation erfordern, wie Chatbots, interaktive Tutoren oder Assistenten im Kundensupport.

Das folgende Codebeispiel zeigt eine einfache Chatimplementierung:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Chatstreaming aktivieren

Sie können auch Streaming mit Chat verwenden, wie im folgenden Beispiel gezeigt:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)
response = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

print(chat.history)

Textgenerierung konfigurieren

Jeder Prompt, den Sie an das Modell senden, enthält Parameter, die steuern, wie das Modell Antworten generiert. Mit GenerationConfig können Sie diese Parameter konfigurieren. Wenn Sie die Parameter nicht konfigurieren, verwendet das Modell die Standardoptionen, die je nach Modell variieren können.

Im folgenden Beispiel wird gezeigt, wie mehrere der verfügbaren Optionen konfiguriert werden.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount gibt die Anzahl der generierten Antworten an, die zurückgegeben werden sollen. Derzeit kann dieser Wert nur auf „1“ festgelegt werden. Wenn dieser Wert nicht festgelegt ist, wird standardmäßig „1“ verwendet.

Mit stopSequences wird die Zeichenfolge (bis zu 5) angegeben, durch die die Ausgabe generiert wird. Wenn angegeben, wird die API beim ersten Auftreten eines stop_sequence angehalten. Die Stoppsequenz ist nicht Teil der Antwort.

Mit maxOutputTokens wird die maximale Anzahl von Tokens festgelegt, die in einen Kandidaten aufgenommen werden sollen.

temperature steuert die Zufälligkeit der Ausgabe. Verwenden Sie höhere Werte für kreativere Antworten und niedrigere Werte für deterministischere Antworten. Die Werte können zwischen [0.0, 2.0] liegen.

Sie können auch einzelne generateContent-Aufrufe konfigurieren:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Alle in den einzelnen Aufrufen festgelegten Werte überschreiben die Werte des Modellkonstruktors.

Nächste Schritte

Nachdem Sie sich nun mit den Grundlagen der Gemini API vertraut gemacht haben, probieren Sie Folgendes aus:

  • Visuelles Verstehen: Hier erfahren Sie, wie Sie das native visuelle Verstehen von Gemini zur Verarbeitung von Bildern und Videos verwenden.
  • Systemanweisungen: Mit der Systemanweisung können Sie das Verhalten des Modells an Ihre spezifischen Anforderungen und Anwendungsfälle anpassen.
  • Audio-Erkennung: Hier erfahren Sie, wie Sie die native Audio-Erkennung von Gemini zur Verarbeitung von Audiodateien verwenden.