1. Введение
В этом практическом занятии вы добавите интеллектуальный виджет чата поддержки клиентов в интернет-магазин товаров для активного отдыха под названием Rugged Terrain Guide . Вы будете использовать Firebase AI Logic для создания этого агента и узнаете, как настроить шаблон запроса на стороне сервера ( product-agent ), который обрабатывает профиль ИИ, строгие правила ограничения бюджета и динамически использует каталог товаров в качестве контекста.
Что вы будете делать:
- Получите стартовый код для веб-приложения этого семинара.
- Создайте проект Firebase.
- Настройте и инициализируйте сервисы Firebase (например, Firebase AI Logic) в веб-приложении.
- Настройте шаблон запроса на стороне сервера в консоли Firebase.
- Доступ к шаблону осуществляется путем вызова сервиса генеративного ИИ из интерфейса на TypeScript, подобного React.
Что вам понадобится:
- Веб-браузер, например Chrome .
- Базовые знания TypeScript и Node.js.
- Среда разработки или текстовый редактор на ваш выбор. Antigravity — хороший выбор.
2. Получите стартовый код
- В терминале клонируйте стартовый репозиторий:
git clone https://github.com/GoogleCloudPlatform/devrel-demos.git - Перейдите в каталог с кодом и установите зависимости:
cd devrel-demos/codelabs/firebase-server-prompt-templates-codelab npm install
3. Создайте проект Firebase.
Создайте проект Firebase.
- Войдите в консоль Firebase, используя свою учетную запись Google.
- Нажмите кнопку, чтобы создать новый проект, а затем введите название проекта (например,
rugged-terrain-ai). - Нажмите «Продолжить» .
- Если появится запрос, ознакомьтесь с условиями использования Firebase и примите их, после чего нажмите «Продолжить» .
- (Необязательно) Включите помощь ИИ в консоли Firebase (в Firebase она называется "Gemini").
- Для этого практического занятия вам не понадобится Google Analytics, поэтому отключите эту опцию.
- Нажмите «Создать проект» , дождитесь завершения подготовки проекта, а затем нажмите «Продолжить» .
Обновите свой тарифный план Firebase.
Для использования сервисов Firebase в этом практическом задании ваш проект Firebase должен быть подключен к тарифному плану с оплатой по мере использования (Blaze) , то есть он должен быть связан с учетной записью Cloud Billing .
- Для использования учетной записи Cloud Billing требуется способ оплаты, например, кредитная карта.
- Если вы новичок в Firebase и Google Cloud, проверьте, имеете ли вы право на получение кредита в размере 300 долларов США и бесплатной пробной версии учетной записи Cloud Billing .
- Если вы выполняете этот практический семинар в рамках мероприятия, уточните у организатора, есть ли возможность получить облачные кредиты.
Чтобы перейти на тарифный план Blaze для вашего проекта, выполните следующие шаги:
- В консоли Firebase выберите вариант обновления вашего тарифного плана .
- Выберите тарифный план Blaze. Следуйте инструкциям на экране, чтобы связать учетную запись Cloud Billing с вашим проектом.
Если в рамках этого обновления вам потребовалось создать учетную запись Cloud Billing, возможно, вам нужно будет вернуться к процессу обновления в консоли Firebase, чтобы завершить обновление.
4. Настройте службы Firebase и подключите ваше приложение.
Для выполнения этого практического задания вам необходимо настроить Cloud Storage for Firebase и Firebase AI Logic в вашем проекте Firebase. Вам также необходимо связать исходный код вашего приложения с вашим проектом Firebase.
Настройка облачного хранилища для Firebase
В этом практическом занятии для хранения описаний товаров используется Cloud Storage for Firebase.
- В консоли Firebase перейдите в раздел «Базы данных и хранилище» > «Хранилище» .
- Нажмите « Начать» .
- Выберите местоположение для вашего хранилища по умолчанию.
Для сегментовUS-WEST1,US-CENTRAL1иUS-EAST1доступен тариф "Всегда бесплатно" от Google Cloud Storage. Для сегментов во всех остальных регионах действуют тарифы и правила использования Google Cloud Storage . - Нажмите «Производственный режим» . В следующих шагах вы обновите эти правила безопасности, чтобы они соответствовали условиям данной практической работы.
- Нажмите «Создать» .
- Обновите правила безопасности:
- После создания хранилища перейдите на вкладку «Правила» .
- Скопируйте и вставьте следующие правила:
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /products.txt { allow read; } } } - Нажмите «Опубликовать» .
- Загрузите описания товаров из стартового кода:
- Для выбора хранилища перейдите на вкладку «Файлы» .
- Нажмите «Загрузить файл» , а затем загрузите файл
products.txtиз стартового кода. Этот файл находится по адресу:src/data/products.txt.
Настройка логики Firebase AI
Firebase AI Logic — это основной сервис Firebase, который вы будете использовать в этом практическом занятии.
- В консоли Firebase перейдите в раздел AI Services > AI Logic .
- Нажмите « Начать» .
- На карточке API Vertex AI Gemini нажмите « Начать работу с этим API» и следуйте инструкциям на экране. Этот процесс активирует необходимые API для использования Firebase AI Logic с API Vertex AI Gemini.
- (Необязательно) Включите мониторинг с помощью ИИ , чтобы отслеживать различные метрики и использование на уровне приложения и получать полную картину ваших запросов с помощью Firebase AI Logic.
Подключите свой код к проекту Firebase.
В процессе настройки Firebase AI Logic вам будет предложено создать веб-приложение Firebase и добавить конфигурацию в исходный код.
- В процессе настройки Firebase AI Logic при появлении соответствующего запроса нажмите « Веб» (
>Значок для регистрации нового веб-приложения. - Назовите приложение (например,
Rugged Web). - Скопируйте объект
firebaseConfigиз инструкций по настройке.
Далее обновите стартовый код:
- В редакторе кода откройте
src/firebase.ts. - Замените существующий
firebaseConfigна тот, который вы скопировали из консоли Firebase.
Ваш файл должен выглядеть примерно так:
import { getAI, getTemplateGenerativeModel, VertexAIBackend } from "firebase/ai";
import { initializeApp } from "firebase/app";
// Your web app's Firebase configuration
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.firebasestorage.app",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
// Initialize Firebase
export const app = initializeApp(firebaseConfig);
const ai = getAI(app, { backend: new VertexAIBackend() });
5. Создайте шаблон запроса на стороне сервера.
Вместо того чтобы жестко прописывать сложные подсказки ИИ в клиентском приложении, вы будете использовать синтаксис Dotprompt для безопасного управления инструкциями на сервере.
Это предотвращает ознакомление конечных пользователей с секретными правилами «бюджета умиротворения».
- В консоли Firebase перейдите в раздел Vertex AI или Prompt Management .
- Создайте новый шаблон запроса и назовите его
product-agent. - Установите модель на
gemini-2.5-flash. - Задайте входную схему точно следующим образом:
input: schema: query: type: string description: the customers ask of the robot productId?: type: string description: the product the customer is looking at right now history?: type: array description: list of previous history between the user and system items: type: object required: [role, contents] properties: role: type: string contents: type: string - Скопируйте содержимое файла
agent-product.promptиз корневого каталога в поле «Подсказка» и в поле «Необязательные системные инструкции» . Это позволит надежно указать модели, как вести себя в качестве «надежного оператора» и внедрять каталог продукции. - В консоли Firebase сохраните и опубликуйте шаблон
product-agent.
6. Вызовите модель ИИ.
Теперь, когда шаблон надежно определен на сервере, вам нужно просто вызвать его из интерфейса вашего приложения.
- В редакторе кода вернитесь к
src/firebase.ts. - Ниже, после инициализации, используйте
getTemplateGenerativeModelдля подключения к шаблону:const model = getTemplateGenerativeModel(ai); export const callCustomerSupportModel = async (query: string, productId?: string, history?: { role: string, contents: string }[]) => { // Generate content using the published 'product-agent' template const result = await model.generateContent('product-agent', { query, productId, history, }); return result.response.text(); }
7. Защитите агента с помощью Firebase App Check.
Модели ИИ обладают мощными возможностями, но ими также можно злоупотреблять, если общедоступные конечные точки остаются незащищенными. Всегда используйте Firebase App Check, чтобы убедиться, что только ваше веб-приложение может вызывать генеративную модель Vertex AI, блокируя ботов и неавторизованных клиентов.
- В консоли Firebase перейдите в раздел Build > App Check .
- Перейдите на вкладку «Приложения» , разверните ваше веб-приложение (
Rugged Web) и выберите поставщика reCAPTCHA Enterprise . - Выберите «Создать новый ключ reCAPTCHA Enterprise» и заполните поля запроса:
- Имя :
Codelab Key - Домены : добавьте
localhostи127.0.0.1, чтобы вашему локальному серверу Vite было разрешено отправлять запросы.
- Имя :
- Нажмите «Сохранить» , чтобы зарегистрировать приложение.
- После регистрации в консоли Firebase отобразится ваш ключ сайта . Скопируйте эту строку.
- В редакторе кода снова откройте
src/firebase.ts. - В самом начале добавьте следующие импорты:
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; - Добавьте инициализацию App Check сразу после вызова
initializeApp(firebaseConfig)и вставьте скопированный вами ключ сайта:// Initialize App Check const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider('YOUR_RECAPTCHA_ENTERPRISE_SITE_KEY'), useLimitedUseAppCheckTokens: true }); - Обновите вызов функции
getAI(), чтобы использовать эти токены. Внесите следующее изменение: Установив значение параметраconst ai = getAI(app, { backend: new VertexAIBackend(), useLimitedUseAppCheckTokens: true });useLimitedUseAppCheckTokensравным true, вы гарантируете применение кратковременных токенов, что поможет ограничить злоупотребления в вашей серверной части.
8. Запустите приложение
После настройки Firebase и подключения виджета чата поддержки, можно запускать приложение.
- В терминале запустите сервер разработки Vite:
npm run dev - Откройте указанный локальный URL (обычно
http://localhost:5173/). - Нажмите плавающую кнопку тактической поддержки (FAB) в правом нижнем углу.
- Попробуйте задать вопросы о товарах, например:
- "Мне нужна непромокаемая куртка".
- «Моя шапка для минусовых температур бракованная, что мне делать?»
- Продолжайте оказывать сопротивление, чтобы запустить логику «бюджета умиротворения» ИИ!
9. (Необязательно) Очистка ресурсов из Codelab.
Чтобы избежать возможных списаний средств с вашего счета Google Cloud Billing, вы можете удалить ресурсы, созданные в ходе этого практического занятия.
- Перейдите в консоль Firebase .
- Выберите проект
rugged-terrain-ai. - Перейдите в настройки проекта (значок шестеренки).
- Прокрутите страницу вниз и нажмите «Удалить проект» .
- Следуйте инструкциям на экране, чтобы подтвердить удаление.
10. Поздравляем!
🎊 Миссия выполнена! Вы успешно интегрировали мощный, основанный на шаблонах, агент поддержки клиентов на основе искусственного интеллекта.
Чего вы достигли:
- Инициализировали Firebase и бэкэнд Vertex AI в клиентском приложении.
- Настроен защищенный шаблон запроса на стороне сервера с использованием Handlebars и строгих схем ввода для определения сложного поведения агента.
- Динамически вызываемый LLM обеспечивает безопасную передачу истории чата и контекстных идентификаторов продуктов без раскрытия внутренней логики запросов клиенту.
Что дальше?
- Firebase App Check : Защитите свои конечные точки ИИ от злоупотреблений.