Tworzenie rozmów wielostronnych (czatu) za pomocą interfejsu Gemini API


Za pomocą Gemini API możesz prowadzić rozmowy w dowolnej formie na przestrzeni wielu tur. Pakiet SDK Vertex AI in Firebase upraszcza ten proces, zarządzając stanem rozmowy, dzięki czemu w odróżnieniu od pakietów SDK generateContentStream()generateContent() nie musisz samodzielnie przechowywać historii rozmów.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobisz, zapoznaj się z przewodnikiem wprowadzającym do pakietów SDK Vertex AI in Firebase. Najpierw wykonaj te czynności:

  1. Skonfiguruj nowy lub istniejący projekt Firebase, w tym użyj abonamentu Blaze i włącz wymagane interfejsy API.

  2. Połącz aplikację z Firebase, w tym zarejestruj ją i dodaj do niej konfigurację Firebase.

  3. Dodaj pakiet SDK i zainicjuj usługę Vertex AI oraz model generatywny w swojej aplikacji.

Po połączeniu aplikacji z Firebase, dodaniu pakietu SDK i inicjalizacji usługi Vertex AI oraz modelu generatywnego możesz wywołać funkcję Gemini API.

Wysyłanie prośby o czat

Aby prowadzić rozmowę wieloetapową (np. na czacie), zacznij od zainicjowania czatu, wywołując funkcję startChat(). Następnie kliknij sendMessageStream() (lub sendMessage()), aby wysłać nową wiadomość do użytkownika. Spowoduje to również dołączenie wiadomości i odpowiedzi do historii czatu.

W przypadku role powiązanego z treściami w rozmowie dostępne są 2 opcje:

  • user: rola, która dostarcza promptów. Ta wartość jest domyślna dla wywołań funkcji sendMessageStream() (lub sendMessage()), a jeśli zostanie przekazana inna rola, funkcja rzuci wyjątek.

  • model: rola, która dostarcza odpowiedzi. Tej roli można używać podczas wywoływania funkcji startChat() z dotychczasową funkcją history.

Wybierz, czy chcesz wyświetlić odpowiedź w czasie (sendMessageStream), czy poczekać na odpowiedź, aż zostanie wygenerowany cały wynik (sendMessage).

Możesz uzyskać szybsze interakcje, nie czekając na pełny wynik wygenerowany przez model, a zamiast tego używać strumieniowego przesyłania wyników częściowych.

Ten przykład pokazuje, jak za pomocą funkcji startChat() i sendMessageStream() przesyłać strumieniowo odpowiedzi z modelu:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Optionally specify existing chat history
let history = [
  ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
  ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]

// Initialize the chat with optional chat history
let chat = model.startChat(history: history)

// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

Możesz też poczekać na cały wynik zamiast strumieniowego przesyłania. Wynik zostanie zwrócony dopiero po zakończeniu całego procesu generowania.

Ten przykład pokazuje, jak użyć funkcji startChat() i sendMessage(), aby wysłać wiadomość do nowego użytkownika:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Optionally specify existing chat history
let history = [
  ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
  ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]

// Initialize the chat with optional chat history
let chat = model.startChat(history: history)

// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
print(response.text ?? "No text in response.")

Dowiedz się, jak wybrać model i opcjonalnie lokalizację odpowiednią do przypadku użycia i aplikacji.

Co jeszcze możesz zrobić?

Wypróbuj inne możliwości Gemini API

Dowiedz się, jak kontrolować generowanie treści

Możesz też eksperymentować z promptami i konfiguracjami modeli za pomocą Vertex AI Studio.

Więcej informacji o obsługiwanych modelach

Dowiedz się więcej o modelach dostępnych w różnych przypadkach użycia oraz o ich limitachcenach.


Prześlij opinię na temat korzystania z usługi Vertex AI in Firebase