Generowanie tekstu

Gemini API może generować dane wyjściowe w postaci tekstu, gdy jako dane wejściowe zostaną mu przekazane tekst, obrazy, filmy i dźwięk.

Z tego przewodnika dowiesz się, jak generować tekst za pomocą metod generateContent i streamGenerateContent. Więcej informacji o możliwościach Gemini w zakresie przetwarzania obrazu i dźwięku znajdziesz w instrukcjach dotyczących Visiondźwięku.

Generowanie tekstu na podstawie danych wejściowych zawierających tylko tekst

Najprostszym sposobem generowania tekstu za pomocą interfejsu Gemini API jest przekazanie modelowi pojedynczego wejścia tekstowego, jak w tym przykładzie:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=["How does AI work?"])
print(response.text)

W tym przypadku prompt („Explain how AI works”) nie zawiera żadnych przykładów wyjściowych, instrukcji systemu ani informacji o formatowaniu. Jest to podejście zero-shot. W niektórych przypadkach prompt jednokrotny lub kilkukrotny może generować wyniki lepiej dopasowane do oczekiwań użytkowników. W niektórych przypadkach warto też podać instrukcje systemowe, aby pomóc modelowi zrozumieć zadanie lub przestrzegać określonych wytycznych.

Generowanie tekstu na podstawie danych wejściowych zawierających tekst i obrazy

Interfejs Gemini API obsługuje multimodalne dane wejściowe, które łączą tekst i pliki multimedialne. Ten przykład pokazuje, jak wygenerować tekst na podstawie tekstu i obrazu:

from PIL import Image
from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

image = Image.open("/path/to/organ.png")
response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[image, "Tell me about this instrument"])
print(response.text)

Generowanie strumienia tekstowego

Domyślnie model zwraca odpowiedź po zakończeniu całego procesu generowania tekstu. Możesz uzyskać szybsze interakcje, nie czekając na cały wynik, a zamiast tego używać strumieniowego przesyłania danych, aby obsługiwać wyniki częściowe.

Poniższy przykład pokazuje, jak stosować strumieniowanie za pomocą metody streamGenerateContent do generowania tekstu z promptu tekstowego.

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content_stream(
    model="gemini-2.0-flash",
    contents=["Explain how AI works"])
for chunk in response:
    print(chunk.text, end="")

Tworzenie rozmowy na czacie

Gemini SDK umożliwia zbieranie wielu serii pytań i odpowiedzi, dzięki czemu użytkownicy mogą stopniowo uzyskiwać odpowiedzi lub pomoc w rozwiązywaniu problemów wieloetapowych. Ta funkcja pakietu SDK udostępnia interfejs do śledzenia historii rozmów, ale w tle używa tej samej metody generateContentdo tworzenia odpowiedzi.

Ten przykładowy kod pokazuje podstawową implementację czatu:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

chat = client.chats.create(model="gemini-2.0-flash")
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)
for message in chat._curated_history:
    print(f'role - ', message.role, end=": ")
    print(message.parts[0].text)

Możesz też prowadzić transmisję strumieniową z czatem, jak w tym przykładzie:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

chat = client.chats.create(model="gemini-2.0-flash")
response = chat.send_message_stream("I have 2 dogs in my house.")
for chunk in response:
    print(chunk.text, end="")
response = chat.send_message_stream("How many paws are in my house?")
for chunk in response:
    print(chunk.text, end="")
for message in chat._curated_history:
    print(f'role - ', message.role, end=": ")
    print(message.parts[0].text)

Konfigurowanie generowania tekstu

Każdy prompt wysyłany do modelu zawiera parametry, które określają, jak model wygeneruje odpowiedzi. Aby skonfigurować te parametry, możesz użyć GenerationConfig. Jeśli nie skonfigurujesz parametrów, model użyje opcji domyślnych, które mogą się różnić w zależności od modelu.

W tym przykładzie pokazujemy, jak skonfigurować kilka dostępnych opcji.

from google import genai
from google.genai import types

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=["Explain how AI works"],
    config=types.GenerateContentConfig(
        max_output_tokens=500,
        temperature=0.1
    )
)
print(response.text)

Dodawanie instrukcji systemowych

Instrukcje systemu umożliwiają kierowanie działaniem modelu na podstawie konkretnych potrzeb i przypadków użycia.

Podając instrukcje systemowe, dajesz modelowi dodatkowy kontekst ułatwiający zrozumienie zadania, generowanie bardziej dostosowanych odpowiedzi i stosowanie się do konkretnych wytycznych dotyczących pełnej interakcji użytkownika z modelem. Możesz też określić działanie na poziomie usługi, ustawiając instrukcje systemowe, które są odrębne od promptów wyświetlanych użytkownikom.

Instrukcje systemowe możesz ustawić podczas inicjowania modelu:

sys_instruct="You are a cat. Your name is Neko."
client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    config=types.GenerateContentConfig(
        system_instruction=sys_instruct),
    contents=["your prompt here"]
)

Następnie możesz wysyłać żądania do modelu jak zwykle.

Interaktywny przykład kompleksowego korzystania z instrukcji systemowych znajdziesz w samouczeku dotyczącym instrukcji systemowych w Google Colab.

Co dalej?

Teraz, gdy już znasz podstawy interfejsu Gemini API, możesz spróbować:

  • Interpretacja obrazu: dowiedz się, jak korzystać z natywnej interpretacji obrazu w Gemini do przetwarzania obrazów i filmów.
  • Rozumienie mowy: dowiedz się, jak używać natywnej funkcji Gemini do przetwarzania plików audio.