关于 https://firebase.google.com/docs/vertex-ai 的问题:如果我使用客户端(iOS)API,如何控制用户的使用?
云函数,我们有完全的控制权。客户端数据库调用,我们有安全规则。对于这种情况我们有什么方法?例如,我如何确保一个用户一天只能调用 Vertex AI 10 次?或者我如何控制每次调用的令牌大小?我只是不想醒来时发现账单惊人。
谢谢!
回答:
Firebase Vertex API 确实支持一定程度的每用户配额限制。如果你进入 Google Cloud Console
https://console.cloud.google.com/apis/api/firebaseml.googleapis.com/quotas?project=YOUR_PROJECT
你可以调整“每项目每用户每分钟每区域生成内容请求”的配额限制。这允许你限制任何单个用户每分钟可以进行的请求数量。这不是一个完美的解决方案,因为你只能应用每分钟的限制(所以你不能说限制每天10次请求),而且你不能为不同的用户设置不同的配额限制(例如,它不支持为我的“付费”用户设置X配额,而为我的“免费”用户设置Y配额)。如果你需要更细粒度的控制,你可能需要在客户端编写一些定制逻辑(并启用 AppCheck 以确保只有你的实际客户端可以调用服务)。
如果你担心令牌大小失控,你可以使用 GenerativeModel.CountTokens() 操作。这将执行一个预检,并为你提供一个关于给定提示将生成的令牌数量的估计。你可以阻止任何超过你所能接受的限制的请求。