我一直在使用 Google Vision API 在一些使用 Python 的文档中执行 OCR 任务。
它开始正常工作,直到我开始收到 Http 错误代码 429,这意味着我在短时间内执行了太多请求。然后,我决定在每个请求之间放置一个睡眠,随着 Http Error Code 429 数量的增加,睡眠时间也会增加。但是,一段时间后,错误消息不断出现。由于消息不断到达,睡眠时间不断增加,直到它达到睡眠时间过长以至于我失去连接的程度。
最奇怪的是,如果我连续多次收到此类错误消息,并立即完成该过程并重新开始,则请求会在第一次尝试中再次开始工作。
换句话说,似乎无论我设置的睡眠时间如何,我都会在某个时候开始接收此类消息,而让它再次工作的唯一方法是重新启动进程(这根本没有意义)。
如何避免出现此类错误消息而无需重新启动该过程?谁能帮我?
非常感谢!
编辑:
这是请求的代码(它的一部分)。
from apiclient import discovery
from oauth2client.client import GoogleCredentials
# The other imports are omitted
DISCOVERY_URL = 'https://{api}.googleapis.com/$discovery/rest?version={apiVersion}' # noqa
credentials = GoogleCredentials.get_application_default()
self.vision = discovery.build(
'vision', 'v1', credentials=credentials,
discoveryServiceUrl=DISCOVERY_URL)
batch_request = []
for image in images:
batch_request.append({
'image': {
'content': base64.b64encode(image).decode('UTF-8')
},
'features': [{
'type': 'TEXT_DETECTION',
}]
})
request = self.vision.images().annotate(
body={'requests': batch_request})