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 Vision i dź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 generateContent
do 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.