Используя Gemini API , вы можете создавать диалоги в произвольной форме, состоящие из нескольких ходов. Vertex AI в Firebase SDK упрощает процесс, управляя состоянием разговора, поэтому, в отличие от generateContentStream()
или generateContent()
, вам не нужно самостоятельно хранить историю разговора.
При желании поэкспериментируйте с альтернативной версией API Gemini « Google AI ».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает API Gemini , перейдите на наши Vertex AI в Firebase SDK (эта документация), которые имеют множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка больших медиафайлов в запросах .
При необходимости вызовите серверный API Vertex AI Gemini (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI в Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Отправить запрос на подсказку в чате
Чтобы построить многоходовой разговор (например, чат), начните с инициализации чата, вызвав startChat()
. Затем используйте sendMessageStream()
(или sendMessage()
), чтобы отправить новое сообщение пользователя, которое также добавит сообщение и ответ в историю чата.
Существует два возможных варианта role
, связанной с содержимым беседы:
user
: роль, которая предоставляет подсказки. Это значение является значением по умолчанию для вызововsendMessageStream()
(илиsendMessage()
), и функция выдает исключение, если передается другая роль.model
: роль, которая предоставляет ответы. Эту роль можно использовать при вызовеstartChat()
с существующейhistory
.
Выберите, хотите ли вы передать ответ в потоковом режиме ( sendMessageStream
) или дождаться ответа, пока не будет сгенерирован весь результат ( sendMessage
).
Потоковое вещание
Вы можете добиться более быстрого взаимодействия, не дожидаясь получения всего результата от создания модели, а вместо этого используйте потоковую передачу для обработки частичных результатов.
В этом примере показано, как использовать startChat()
и sendMessageStream()
для потоковой передачи ответов от модели:
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)
}
}
Без потоковой передачи
Альтернативно, вы можете дождаться всего результата вместо потоковой передачи; результат возвращается только после того, как модель завершит весь процесс генерации.
В этом примере показано, как использовать startChat()
и sendMessage()
для отправки нового сообщения пользователя:
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.")
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.
Что еще вы можете сделать?
- Узнайте, как подсчитывать токены, прежде чем отправлять модели длинные запросы.
- Настройте Cloud Storage for Firebase чтобы вы могли включать большие файлы в свои мультимодальные запросы и иметь более управляемое решение для предоставления файлов в приглашениях. Файлы могут включать изображения, PDF-файлы, видео и аудио.
- Начните думать о подготовке к работе, включая настройку Firebase App Check для защиты Gemini API от злоупотреблений со стороны неавторизованных клиентов.
Попробуйте другие возможности Gemini API
- Генерация текста из текстовых подсказок .
- Генерируйте текст из мультимодальных подсказок (включая текст, изображения, PDF-файлы, видео и аудио).
- Генерируйте структурированный вывод (например, JSON) как из текстовых, так и из мультимодальных подсказок.
- Используйте вызов функций для подключения генеративных моделей к внешним системам и информации.
Узнайте, как контролировать создание контента
- Понимание структуры подсказок , включая лучшие практики, стратегии и примеры подсказок.
- Настройте параметры модели , такие как токены температуры и максимальной мощности.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные.
Узнайте больше о моделях Gemini
Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ценах .Оставьте отзыв о своем опыте использования Vertex AI в Firebase.