【问题标题】:What's the most efficient way to handle quota for the YouTube Data API when developing a chat bot?在开发聊天机器人时,处理 YouTube 数据 API 配额的最有效方法是什么?
【发布时间】:2021-04-15 16:32:12
【问题描述】:

我目前正在为一个特定的 YouTube 频道开发一个聊天机器人,它已经可以从当前活跃的实时聊天中获取消息。但是我注意到我的配额使用量猛增,所以我冒昧地计算了我的配额成本。

我的 API 调用目前看起来像这样 https://www.googleapis.com/youtube/v3/liveChat/messages?liveChatId=some_livechat_id&part=snippet,authorDetails&pageToken=pageTokenIfProvided,它使用了 5 个单位。我通过运行一个 API 调用并比较之前和之后的配额使用情况来检查这一点(抱歉,如果这不准确)。响应包含 pollingIntervalMillis 设置为 5086 毫秒。目前,我的机器人将该时间间隔添加到当前日期时间,并在该时间安排下一次获取(使用 Celery),因此它当前以 4-6 秒的速率获取消息。我会冒昧地等待 6 秒。

计算我的 API 配额将导致每天使用 72.000 个单位:

10 requests per minute * 60 minutes * 24 hours = 14.400 requests per day
14.400 requests * 5 units per request = 72.000 units per day

这意味着,如果我使用 pollingIntervalMillis 作为请求频率的指导,我可以通过运行机器人 3 小时 20 分钟轻松达到 10.000 个单位的最大配额。为了不通过仅获取聊天消息来耗尽配额,我需要每分钟运行 1 次 API 调用(大约 1,3889 次)。这对于聊天机器人来说是非常不可行的,因为这仅用于获取消息,甚至不会向聊天发送任何消息。

所以我的问题是:是否有一种更有效的方式来获取不会占用太多配额的聊天消息?还是我只能通过申请配额延长来解决这个问题?如果这只能通过配额延长来解决,我需要可靠地要求多少?大约 10 万个单位?更多?

我还问自己,尽管有成千上万的用户使用他们的 API 客户端,但像 Streamlabs Chatbot(以前称为 AnkhBot)这样的东西如何在不达到配额限制的情况下实现这一目标,他们的配额可能达到数百万或数十亿。

如果机器人仍处于这种“早期”开发状态,我将如何实际填写表格?

【问题讨论】:

    标签: youtube-api chatbot quota


    【解决方案1】:

    你几乎一针见血。像 Streamlabs 这样的服务由大公司拥有,在他们的例子中是罗技。他们不仅有钱花在增加 API 配额等事情上,而且还与 Google 等公司建立了专业关系,以降低单位成本。

    至于效率,API 成本在文档中很容易找到,但对于您发现的实时聊天,您将使用 API,每次点击需要 5 个单位。降低通话总成本的唯一方法是减少通话频率。虽然每分钟一次显然过长,但每 15-18 秒一次可以降低 API 配额增加的总体成本,同时使聊天机器人具有足够的响应能力。

    当然,这一切都取决于您对数据的期望用途,但如果您仍然在业余爱好者使用范围内实施机器人,这仍然是一个建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 2017-12-07
      • 1970-01-01
      • 2016-08-05
      相关资源
      最近更新 更多