Firebase: Gemini API с использованием Vertex AI – Ограничьте использование пользователями клиентского API

Вопрос по https://firebase.google.com/docs/vertex-ai: Как я могу контролировать использование пользователями, если я использую API на стороне клиента (iOS)?

Облачные функции, мы имеем полный контроль. Клиентская БД вызывает, у нас есть правила безопасности. Что у нас есть для этого? Например, как я могу гарантировать, что пользователь звонит в Vertex AI только 10 раз в день? Или как мне контролировать размер токена для каждого вызова? Я просто не хочу проснуться и услышать какой-то безумный счет.

Спасибо!

firebase.google.com/docs/app-check#quotas_limits
Zach Jensz 16.05.2024 05:56

Однако настоящее устройство все равно может стоить больших денег.

Student 16.05.2024 06:48

Тогда поставьте перед ним свой собственный API

Zach Jensz 16.05.2024 06:49
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
3
3
168
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

API Firebase Vertex поддерживает некоторую степень ограничения квот для каждого пользователя. Если вы зайдете в Google Cloud Console

https://console.cloud.google.com/apis/api/firebaseml.googleapis.com/quotas?project=YOUR_PROJECT

вы можете настроить ограничение квоты «Создание запросов контента в минуту на проект, на пользователя, на пользователя в минуту, на пользователя в регионе». Это позволяет вам ограничить количество запросов в минуту, которые может выполнить любой отдельный пользователь. Это не идеальное решение, поскольку вы можете применять только поминутные ограничения (поэтому вы не можете сказать ограничение до 10 запросов в день) и вы не можете предоставлять разным пользователям разные ограничения квоты (например, не будет поддерживаться фраза "дайте мне " квота платных» пользователей X и квота моих «бесплатных» пользователей Y). Если вам нужно добиться большей детализации, вам, вероятно, придется написать некоторую специальную логику в клиенте (и включить AppCheck, чтобы быть уверенным, что только ваш реальный клиент может вызывать службу).

Если вас беспокоит неконтролируемый размер токена, вы можете использовать операцию GenerativeModel.CountTokens(). Это выполнит предполетную проверку и даст вам оценку количества токенов, которые будут сгенерированы по данному запросу. Затем вы можете заблокировать все, что превышает любой удобный вам лимит.

Другие вопросы по теме