Вопрос по https://firebase.google.com/docs/vertex-ai: Как я могу контролировать использование пользователями, если я использую API на стороне клиента (iOS)?
Облачные функции, мы имеем полный контроль. Клиентская БД вызывает, у нас есть правила безопасности. Что у нас есть для этого? Например, как я могу гарантировать, что пользователь звонит в Vertex AI только 10 раз в день? Или как мне контролировать размер токена для каждого вызова? Я просто не хочу проснуться и услышать какой-то безумный счет.
Спасибо!
Однако настоящее устройство все равно может стоить больших денег.
Тогда поставьте перед ним свой собственный API
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(). Это выполнит предполетную проверку и даст вам оценку количества токенов, которые будут сгенерированы по данному запросу. Затем вы можете заблокировать все, что превышает любой удобный вам лимит.