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 требуется способ оплаты, например, кредитная карта.
- В период проведения специальных акций или если вы выполняете это практическое задание в рамках мероприятия, вам могут быть доступны кредиты Google Cloud.
- Если вы новичок в Firebase и Google Cloud, проверьте, имеете ли вы право на получение кредита в размере 300 долларов США и бесплатной пробной версии учетной записи Cloud Billing .
Чтобы перейти на тарифный план Blaze для вашего проекта, выполните следующие шаги:
- В консоли Firebase выберите вариант обновления вашего тарифного плана .
- Выберите тарифный план Blaze. Следуйте инструкциям на экране, чтобы связать учетную запись Cloud Billing с вашим проектом.
- Если вы используете кредиты Google Cloud для выполнения этого практического задания, то учетная запись для выставления счетов, скорее всего, называется
Google Cloud Platform Trial Billing AccountилиMy Billing Account. - Если в рамках этого обновления вам потребовалось создать учетную запись Cloud Billing, возможно, вам нужно будет вернуться к процессу обновления в консоли Firebase, чтобы завершить обновление.
- Если вы используете кредиты Google Cloud для выполнения этого практического задания, то учетная запись для выставления счетов, скорее всего, называется
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 Agent Platform Gemini нажмите « Начать работу с этим API» и следуйте инструкциям на экране. Этот процесс активирует необходимые API для использования Firebase AI Logic с API Agent Platform Gemini.
- (Необязательно) Включите мониторинг с помощью ИИ , чтобы отслеживать различные метрики и использование на уровне приложения и получать полную картину ваших запросов с помощью Firebase AI Logic.
Подключите свой код к проекту Firebase.
В процессе настройки Firebase AI Logic вам будет предложено создать веб-приложение Firebase и добавить конфигурацию в исходный код.
- В процессе настройки Firebase AI Logic при появлении соответствующего запроса нажмите « Веб» (
>Значок для регистрации нового веб-приложения. - Назовите приложение (например,
Rugged Web). - Скопируйте объект
firebaseConfigиз инструкций по настройке.
Далее обновите стартовый код:
- В редакторе кода откройте
src/firebase.ts. - Замените существующий
firebaseConfigна тот, который вы скопировали из консоли Firebase.
Ваш файл должен выглядеть примерно так:
import { getAI, getTemplateGenerativeModel, AgentPlatformBackend } 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 AgentPlatformBackend() });
5. Создайте шаблон запроса на стороне сервера.
Вместо того чтобы жестко прописывать сложные подсказки ИИ в клиентском приложении, вы будете использовать синтаксис Dotprompt для безопасного управления инструкциями на сервере.
Это предотвращает ознакомление конечных пользователей с секретными правилами «бюджета умиротворения».
- В консоли Firebase перейдите в раздел AI Services > AI Logic > вкладка Prompt templates .
- Нажмите «Создать шаблон» и выберите «Пустой шаблон» .
- Задайте имя шаблона как
Product Agent, а идентификатор — какproduct-agent. - Установите модель на
gemini-3.1-flash-lite(или последнюю доступную версию). - Скопируйте содержимое файла
product-agent.prompt(найдите этот файл в корневом каталоге) из предоставленного для этого практического задания стартового кода. Затем вставьте это содержимое в поле «Подсказка и (необязательно) системные инструкции» шаблона подсказки сервера в консоли Firebase. Это содержимое безопасно указывает модели, как вести себя в качестве «надежного оператора» и ссылаться на каталог продукции. - В поле ввода «Тест» укажите схему ввода точно следующим образом:
{ "type": "object", "required": [ "query" ], "properties": { "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" } } } } } } - Нажмите «Сохранить шаблон» , чтобы сохранить и опубликовать шаблон
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, чтобы убедиться, что только ваше веб-приложение может успешно отправлять запросы к API Gemini, блокируя ботов и неавторизованных клиентов.
- В консоли Google Cloud перейдите в раздел Безопасность > Защита от мошенничества.
- Нажмите «Создать ключ» и заполните поля:
- Отображаемое имя :
Codelab Key - Тип приложения : Веб
- Список доменов : добавьте
localhostи127.0.0.1, чтобы вашему локальному серверу Vite было разрешено отправлять запросы.
- Отображаемое имя :
- Нажмите «Создать ключ» , чтобы зарегистрировать ключ.
- Скопируйте идентификатор ключа сайта в буфер обмена в верхней части страницы «Информация о ключе защиты от мошенничества».
- В консоли Firebase перейдите в раздел Безопасность > Проверка приложений .
- Перейдите на вкладку «Приложения» , разверните ваше веб-приложение (
Rugged Web) и выберите поставщика reCAPTCHA Enterprise . - В поле «Ключ сайта reCAPTCHA Enterprise» вставьте идентификатор ключа сайта со страницы «Подробные сведения о ключе защиты от мошенничества» и нажмите «Сохранить» .
- В редакторе кода снова откройте
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'), isTokenAutoRefreshEnabled: true }); - Обновите вызов функции
getAI(), чтобы использовать эти токены. Внесите следующее изменение: Установив значение параметраconst ai = getAI(app, { backend: new AgentPlatformBackend(), useLimitedUseAppCheckTokens: true });useLimitedUseAppCheckTokensравным true, вы гарантируете применение кратковременных токенов, что поможет ограничить злоупотребления в вашей серверной части.
8. Запустите приложение
После настройки Firebase и подключения виджета чата поддержки, можно запускать приложение.
- В терминале запустите сервер разработки Vite:
npm run dev - Откройте указанный локальный URL (обычно
http://localhost:5173/). - Нажмите плавающую кнопку тактической поддержки (FAB) в правом нижнем углу.
- Попробуйте задать вопросы о товарах, например:
- "Мне нужна непромокаемая куртка".
- «Моя шапка для минусовых температур бракованная, что мне делать?»
- Продолжайте оказывать сопротивление, чтобы запустить логику «бюджета умиротворения» ИИ!
9. (Необязательно) Очистка ресурсов из Codelab.
Чтобы избежать возможных списаний средств с вашего счета Google Cloud Billing, вы можете удалить ресурсы, созданные в ходе этого практического занятия.
- В консоли Firebase перейдите во вкладку «Настройки» > «Общие».
- Убедитесь, что вы просматриваете именно тот проект, который использовали для этой практической работы. Если это не ваш проект, вы можете воспользоваться выпадающим списком выбора проектов в верхнем левом углу, чтобы сменить проект.
- Прокрутите страницу вниз и нажмите «Удалить проект» .
- Следуйте инструкциям на экране, чтобы подтвердить удаление.
10. Поздравляем!
🎊 Миссия выполнена! Вы успешно интегрировали мощный, основанный на шаблонах, агент поддержки клиентов на основе искусственного интеллекта.
Чего вы достигли:
- Инициализировали Firebase и бэкэнд Agent Platform в клиентском приложении.
- Настроен защищенный шаблон запроса на стороне сервера с использованием Handlebars и строгих схем ввода для определения сложного поведения агента.
- Динамически вызываемый LLM обеспечивает безопасную передачу истории чата и контекстных идентификаторов продуктов без раскрытия внутренней логики запросов клиенту.
Что дальше?
- Firebase App Check : Защитите свои конечные точки ИИ от злоупотреблений.