Generowanie tekstu za pomocą interfejsu Gemini API

Interfejs Gemini API może generować tekstowe dane wyjściowe na podstawie różnych typów danych wejściowych, w tym: tekst, obrazy, filmy i dźwięk. Możesz używać generowania tekstu dla różnych aplikacji, w tym:

  • Pisanie kreatywne
  • Opisywanie i interpretowanie zasobów medialnych
  • Uzupełnianie tekstu
  • Podsumowywanie tekstu swobodnego
  • Tłumaczenie między językami
  • Czatboty
  • Twoje własne, nowatorskie zastosowania

Z tego przewodnika dowiesz się, jak wygenerować tekst za pomocą generateContent i streamGenerateContent z wybranym interfejsem API i pakietem SDK po stronie serwera. Zaznaczenie jest umieszczone na tekście wyjściowym z tryb „tylko tekst” lub „tekst i obraz”. Aby dowiedzieć się więcej o promptach multimodalnych plików wideo i audio, zobacz Wyświetlanie promptów przy użyciu plików multimedialnych

Zanim zaczniesz: skonfiguruj projekt i klucz interfejsu API

Zanim wywołasz Gemini API, musisz skonfigurować projekt klucz interfejsu API.

Generuj tekst na podstawie samego tekstu

Najprostszym sposobem generowania tekstu za pomocą interfejsu Gemini API jest udostępnienie modelu używając samego tekstu, jak w tym przykładzie:

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

W tym przypadku prompt („Napisz historię o magicznym plecaku”) dołączyć przykłady danych wyjściowych, instrukcje systemowe lub informacje o formatowaniu. To zero-shot jak ważna jest pokora. W niektórych przypadkach one-shot lub prompt few-shot mogą generować wyniki bardziej zgodne z oczekiwaniami użytkowników. W niektórych przypadkach możesz też podać instrukcje systemowe, które ułatwiają modelowi zrozumieć jego zadanie lub postępować zgodnie z określonymi wytycznymi.

Generowanie tekstu na podstawie danych wejściowych z tekstem i obrazem

Interfejs Gemini API obsługuje multimodalne dane wejściowe, które łączą tekst z plikami multimedialnymi. Ten przykład pokazuje, jak wygenerować tekst na podstawie danych wejściowych z tekstem i obrazem:

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)

Podobnie jak w przypadku promptów tekstowych, prompty multimodalne mogą obejmować różne podejścia i udoskonaleń. W zależności od wyników z tego przykładu warto: dodaj instrukcje do promptu lub bardziej szczegółowo go sprecyzuj. Aby dowiedzieć się więcej, Więcej informacji znajdziesz w artykule na temat strategii tworzenia komunikatów dotyczących plików.

Generowanie strumienia tekstu

Domyślnie model zwraca odpowiedź po ukończeniu całego tekstu procesu ich generowania. Możesz przyspieszyć interakcje, nie czekając na z całych wyników. Zamiast tego użyj przesyłania strumieniowego do obsługi wyników częściowych.

Poniższy przykład pokazuje, jak wdrożyć strumieniowanie za pomocą streamGenerateContent do do generowania tekstu na podstawie prompta w trybie tekstowym.

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)

Utwórz interaktywny czat

Za pomocą interfejsu Gemini API możesz tworzyć interaktywne czaty dla użytkowników. Korzystanie z funkcji czatu interfejsu API umożliwia zebranie wielu rund pytań i udzielania odpowiedzi, dzięki czemu użytkownicy mogą stopniowo szukać odpowiedzi lub uzyskać pomoc. z problemami wieloczęściowymi. Ta funkcja jest idealna w aplikacjach, które wymagają ciągłą komunikację, taką jak czatboty, interaktywni korepetytorzy lub obsługa klienta; za pomocą Asystenta Google.

Następujący przykładowy kod ilustruje podstawową implementację czatu:

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)

Skonfiguruj generowanie tekstu

Każdy prompt wysyłany do modelu zawiera parametrów, które kontrolować sposób generowania odpowiedzi przez model. Za pomocą GenerationConfig do skonfigurować te parametry. Jeśli ich nie skonfigurujesz, model korzysta z opcji domyślnych, które mogą się różnić w zależności od modelu.

Z przykładu poniżej dowiesz się, jak skonfigurować kilka dostępnych opcji.

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 określa liczbę wygenerowanych odpowiedzi do zwrócenia. Obecnie ta wartość może być ustawiona tylko na 1. Jeśli nie są ustawione, domyślna wartość to 1.

stopSequences określa zestaw sekwencji znaków (maksymalnie 5), które będą Zatrzymać generowanie danych wyjściowych. Jeśli zostanie podany, interfejs API zostanie zatrzymany przy pierwszym wystąpieniu. stop_sequence. Sekwencja zatrzymania nie zostanie uwzględniona w tagu .

maxOutputTokens ustawia maksymalną liczbę tokenów do uwzględnienia w kandydacie.

temperature określa losowość wyników. Użyj wyższych wartości, aby osiągnąć więcej dla kreacji, a niższe wartości – dla bardziej deterministycznych. Wartości mogą mieścić się w zakresie od [0,0 do 2,0].

Możesz też skonfigurować poszczególne wywołania generateContent:

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

Wszystkie wartości ustawione w wartościach zastępowania poszczególnych wywołań w konstruktorze modelu.

Co dalej?

Z tego przewodnika dowiesz się, jak używać generateContent i streamGenerateContent . Aby dowiedzieć się więcej, o generowaniu tekstu za pomocą interfejsu Gemini API znajdziesz w tych materiałach:

  • Wyświetlanie promptów przy użyciu plików multimedialnych: Gemini API obsługuje prompty z danymi tekstowymi, graficznymi, audio i wideo, nazywanych promptami multimodalnymi.
  • Instrukcje systemowe: system które pozwalają sterować działaniem modelu w zależności od do potrzeb i przypadków użycia.
  • Wskazówki dotyczące bezpieczeństwa: czasami generatywna AI modele generują nieoczekiwane wyniki, na przykład nieprawidłowe dane wyjściowe, stronniczych lub obraźliwych. Przetwarzanie końcowe i ocena manualna ma kluczowe znaczenie ograniczają ryzyko szkód takich jak dane wyjściowe.