Опубликовано: 20 мая 2025 г.
Чтобы удовлетворить потребности ваших пользователей, независимо от используемой ими платформы или оборудования, вы можете настроить резервное копирование в облако с помощью Firebase AI Logic и встроенного API Prompt .
Build a hybrid AI experience
Встроенный искусственный интеллект обладает рядом преимуществ , наиболее заметными из которых являются:
- Локальная обработка конфиденциальных данных: если вы работаете с конфиденциальными данными, вы можете предлагать пользователям функции искусственного интеллекта с использованием сквозного шифрования.
- Использование ИИ в автономном режиме: ваши пользователи могут получить доступ к функциям ИИ, даже когда они находятся в автономном режиме или у них пропало подключение к интернету.
Хотя эти преимущества не распространяются на облачные приложения, вы можете обеспечить бесперебойную работу для тех, кто не имеет доступа к встроенному искусственному интеллекту.
Начните работу с Firebase
Learn how to create a Firebase project and add Firebase to your web app .
Проекты Firebase — это проекты Google Cloud со специфическими для Firebase конфигурациями и сервисами. Узнайте больше о Google Cloud и Firebase .
Установите SDK.
Этот рабочий процесс использует npm и требует наличия сборщиков модулей или инструментов для работы с JavaScript-фреймворками. Firebase AI Logic оптимизирован для работы со сборщиками модулей, что позволяет исключить неиспользуемый код и уменьшить размер SDK.
Установите Firebase JS SDK:
npm install firebase
Настройка и защита Firebase AI Logic
В консоли Firebase перейдите в раздел AI Services > AI Logic .
Нажмите « Начать» , чтобы запустить процесс настройки.
При выборе поставщика API Gemini мы рекомендуем выбрать Gemini Developer API , который позволит вам быстро и бесплатно начать работу.
В любой момент позже вы всегда сможете настроить API Vertex AI Gemini (и необходимые для выставления счетов параметры).
Продолжите работу в консоли, чтобы настроить необходимые API и связанные с ними сервисы для Firebase AI Logic.
Starting early July 2026, this stage of the workflow automatically enforces Firebase App Check for AI Logic , which is a critical service to help protect the Gemini API when it's directly accessed from your app. As part of getting started (see steps later in this guide), you'll need to configure the App Check debug provider for local development when App Check is enforced.
Перейдите к следующим разделам этого руководства, чтобы настроить отладочный провайдер App Check для локальной разработки, а затем отправьте свой первый запрос к API Gemini.
Настройте отладочный провайдер App Check для локальной разработки.
Here's how to use the debug provider while running your app from localhost interactively (for example, during local development):
В отладочной сборке включите режим отладки, установив параметр
self.FIREBASE_APPCHECK_DEBUG_TOKENвtrueперед инициализацией App Check. Например:self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(app, { /* App Check options */ });Откройте ваше веб-приложение локально и запустите инструменты разработчика в браузере. В консоли отладки вы увидите отладочный токен:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.Зарегистрируйте свой отладочный токен в App Check:
В консоли Firebase перейдите в раздел Безопасность > Проверка приложений > вкладка Приложения .
Найдите своё приложение, нажмите на меню дополнительных элементов ( ), а затем выберите «Управление отладочными токенами» .
Следуйте инструкциям на экране, чтобы зарегистрировать свой отладочный токен.
Подробную информацию о поставщике отладки (включая способы получения нового токена отладки) можно найти в официальной документации App Check .
Отправьте запрос к API Gemini.
Prompt the model with text or multimodal input. See examples in the following subsections of this guide.
Текстовые подсказки
Для инструкций модели можно использовать обычный текст. Например, вы можете попросить модель рассказать вам анекдот.
У вас есть несколько вариантов маршрутизации запроса:
Use the built-in AI by default when it's available by setting the
modeto'prefer_on_device'in thegetGenerativeModel()function. If the built-in model isn't available, the request will fall back seamlessly to use the cloud model (if you're online).Use the cloud model by default when you're online by setting the
modeto'prefer_in_cloud'in thegetGenerativeModel()function. If you're offline, the request will fall back seamlessly to use the built-in AI when available.
// Initialize the Google AI service.
const googleAI = getAI(firebaseApp);
// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(googleAI, { mode: 'prefer_on_device' });
const prompt = 'Tell me a joke';
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
console.log(chunkText);
}
console.log('Complete response', await result.response);
Мультимодальные подсказки
Помимо текста, вы также можете использовать изображения или аудиозаписи в качестве подсказок. Вы можете указать модели описать содержимое изображения или расшифровать аудиофайл.
Изображения необходимо передавать в виде строки, закодированной в base64, в качестве объекта Firebase FileDataPart , что можно сделать с помощью вспомогательной функции fileToGenerativePart() .
// Converts a File object to a `FileDataPart` object.
// https://firebase.google.com/docs/reference/js/vertexai.filedatapart
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onload = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
const fileInputEl = document.querySelector('input[type=file]');
fileInputEl.addEventListener('change', async () => {
const prompt = 'Describe the contents of this image.';
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call generateContent with the text and image
const result = await model.generateContentStream([prompt, imagePart]);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
console.log(chunkText);
}
console.log(Complete response: ', await result.response);
});
Демо
Visit the Firebase AI Logic demo on different devices and browsers. You can see how the model response comes from either the built-in AI model or the cloud.
При использовании поддерживаемого оборудования в Chrome демонстрация задействует API Prompt и Gemini Nano. Выполняется всего 3 запроса: к основному документу, файлу JavaScript и файлу CSS.

При использовании другого браузера или операционной системы без встроенной поддержки ИИ выполняется дополнительный запрос к конечной точке Firebase: https://firebasevertexai.googleapis.com .

Принимайте участие и делитесь отзывами.
Firebase AI Logic can be a great option to integrate AI capabilities to your web apps. By providing a fallback to the cloud when the Prompt API is unavailable, the SDK ensures wider accessibility and reliability of AI features.
Помните, что облачные приложения формируют новые ожидания в отношении конфиденциальности и функциональности, поэтому важно информировать пользователей о том, где обрабатываются их данные.
- Чтобы оставить отзыв о реализации Chrome, отправьте сообщение об ошибке или запрос на добавление новой функции .
- For feedback on Firebase AI Logic, file a bug report .