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()
i 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:
Skonfiguruj nowy lub istniejący projekt Firebase, w tym użyj abonamentu Blaze i włącz wymagane interfejsy API.
Połącz aplikację z Firebase, w tym zarejestruj ją i dodaj do niej konfigurację Firebase.
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ę z wieloma zwrotami (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ń funkcjisendMessageStream()
(lubsendMessage()
), 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 funkcjistartChat()
z dotychczasową funkcjąhistory
.
Wybierz, czy chcesz wyświetlić odpowiedź w czasie (sendMessageStream
), czy poczekać na odpowiedź, aż zostanie wygenerowany cały wynik (sendMessage
).
Streaming
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)
}
}
Bez strumieniowego przesyłania
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 Gemini i opcjonalnie lokalizację odpowiednią do Twojego przypadku użycia i aplikacji.
Co jeszcze możesz zrobić?
- Dowiedz się, jak policzyć tokeny przed wysłaniem długich promptów do modelu.
- Skonfiguruj Cloud Storage for Firebase, aby móc dołączać duże pliki do żądań multimodalnych i mieć lepiej zarządzane rozwiązanie do dostarczania plików w promptach. Mogą to być obrazy, pliki PDF, filmy i pliki audio.
- Zacznij myśleć o przygotowaniu usługi do wdrożenia, w tym o skonfigurowaniu Firebase App Check, aby chronić usługę Gemini API przed nadużyciami przez nieautoryzowanych klientów.
Wypróbuj inne możliwości Gemini API
- generować tekst na podstawie promptów tekstowych,
- generować tekst na podstawie promptów multimodalnych (w tym tekst, obrazy, pliki PDF, filmy i pliki audio).
- generować dane wyjściowe w uporządkowanym formacie (np. JSON) na podstawie zarówno tekstowych, jak i wielomodalnych promptów;
- Użyj funkcji wywoływania, aby połączyć modele generatywne z zewnętrznymi systemami i informacjami.
Dowiedz się, jak kontrolować generowanie treści
- Poznaj projektowanie promptów, w tym sprawdzone metody, strategie i przykładowe prompty.
- Skonfiguruj parametry modelu, takie jak temperatura i maksymalna liczba tokenów wyjściowych.
- Używaj ustawień bezpieczeństwa, aby dostosować prawdopodobieństwo otrzymywania odpowiedzi, które mogą być uważane za szkodliwe.
Więcej informacji o modelach Gemini
Dowiedz się więcej o modelach dostępnych w różnych przypadkach użycia oraz ich limitach i cenach.Prześlij opinię na temat korzystania z usługi Vertex AI in Firebase