На этой странице описаны некоторые рекомендации и рекомендации по шаблонам серверных запросов, включая пока неподдерживаемые функции . Обратите внимание, что многие из этих функций недоступны только в первоначальном выпуске шаблонов серверных запросов, поэтому следите за обновлениями в примечаниях к выпуску !
Лучшие практики
Многие из этих рекомендаций также подробно описаны в разделе Управление шаблонами .
Версируйте свои шаблоны
Создайте идентификаторы шаблонов, к которым добавлена версия, использующая семантическое версионирование (semver) .
Используйте Firebase Remote Config , чтобы вы могли легко изменить шаблон и другие значения в своем запросе.
Защитите свой шаблон
Заблокируйте шаблон перед запуском в производство. И не редактируйте шаблоны, используемые в производстве.
Блокировка шаблона защищает от непреднамеренного редактирования, но не блокирует редактирование полностью . Участник проекта с соответствующими правами всегда может разблокировать шаблон для редактирования.
Мы рекомендуем блокировать шаблоны, которые активно используются кодом, особенно производственным кодом.
Напишите строгую проверку входных данных для ваших входных переменных, которая может помочь в следующем:
- Может помочь защитить от преждевременной инъекции.
- Может помочь гарантировать успешное выполнение запросов и получение ожидаемых ответов.
Пока неподдерживаемые функции
Многие из этих пока еще не поддерживаемых функций недоступны в первоначальном выпуске, поэтому проверяйте примечания к выпуску на предмет обновлений!
Пока неподдерживаемые возможности Firebase AI Logic
Шаблоны запросов сервера пока не поддерживают следующие возможности Firebase AI Logic . Некоторые из этих возможностей появятся в ближайшее время!
- Чат
- Использование инструментов (включая вызов функций и привязку к Google Search)
- Итеративное редактирование изображений (чат) с моделями Gemini (требуется чат)
- Редактирование изображений с помощью моделей Imagen
- Двунаправленная потоковая передача (Gemini Live API)
- Гибридное на устройстве
- Ограничение вывода списком перечислений
- Настройка параметров, связанных с мышлением
- Настройка параметров безопасности
Также обратите внимание, что если вы используете мониторинг ИИ в консоли Firebase , идентификатор шаблона еще не заполнен ни в одной записи.
Пока неподдерживаемые общие элементы Dotprompt
Шаблоны серверных приглашений , скорее всего, вскоре будут поддерживать следующие общие элементы Dotprompt:
Используйте спецификацию схемы JSON для схем ввода и вывода в вашем вступительном слове.
- Обратите внимание, что эта спецификация также не поддерживается в запросах шаблонов, не относящихся к серверу. В настоящее время мы поддерживаем только спецификацию схемы OpenAPI .
Объявление определения поля подстановочных знаков с помощью
*.Использование
@keyили общая итерация по полям ввода объекта (это тот случай, когда@keyуместен).Использование
@root, которое позволяет ссылаться на корневой контекст переменной независимо от текущегоthis.
Шаблоны серверных приглашений , скорее всего, не будут поддерживать следующие общие элементы Dotprompt:
- Использование частичных шаблонов, представляющих собой повторно используемые фрагменты шаблонов, которые можно включать в другие шаблоны.
Другие соображения
По умолчанию при использовании управляемого пользовательского интерфейса в консоли Firebase шаблон предоставляется во всех доступных регионах для Firebase AI Logic . Если вы используете API Vertex AI Gemini и ваш случай требует ограничений по местоположению, вы можете указать местоположение шаблона с помощью REST API.
Если вы хотите предоставить шаблон серверного запроса в виде файла (вместо использования управляемого пользовательского интерфейса консоли Firebase ), вы можете использовать REST API. Обратите внимание, что шаблоны серверных запросов не поддерживают схему, заданную в коде приложения и переданную в шаблон.
Несмотря на то, что шаблон находится на сервере, он не может напрямую взаимодействовать с другими серверными ресурсами вашего проекта Firebase (например, с базой данных), за исключением URL-адресов Cloud Storage for Firebase (которые могут быть предоставлены в качестве входных переменных).