【问题标题】:Asynchronous API Request to GCloud Vision API for text detection对 Cloud Vision API 的异步 API 请求以进行文本检测
【发布时间】:2023-03-13 05:29:01
【问题描述】:

我正在尝试将我当前的函数转换为使用 GCloud Vision API 从图像中获取文本,从同步变为异步。

我找到的是this Google 文档页面。但老实说,这让我很困惑。

目前,我这样做的方式是(这已经可行)

image = vision.types.Image(content=content)
response = client.text_detection(image=image)

然后,我处理响应。

我的目标现在是将异步响应保存到例如gcloud 存储桶,以便我的函数可以继续执行手头的下一个任务,而无需等待响应。

【问题讨论】:

    标签: python google-cloud-platform ocr google-cloud-vision


    【解决方案1】:

    在您共享的链接中,示例中的前缀是“gs://your-bucket/prefix/”。如果您使用它作为输出的前缀,那么异步操作的结果最终会将 1 个或多个结果文件写入“gs://your-bucket/prefix/”。

    例如:您可能会在 gcs 存储桶中找到类似“gs://your-bucket/prefix/result1.json”的文件。

    您还可以为输出使用前缀,例如“gs://your-bucket/something/file-prefix”,其中包含文件名前缀,并且您将拥有输出文件,例如写入您的 gcs 存储桶“gs: //your-bucket/something/file-prefixresult1.json'.

    它没有指定输出文件的确切名称,只是您提供的前缀将被使用得非常好,使其成为您存储桶中唯一的东西。

    【讨论】:

    • 感谢您的回答,但我最大的问题仍然是该函数不是异步的,我可以调用批处理注释器并立即终止该函数。与等待响应相比,我希望节省一些计算时间。
    • 你可以使用谷歌云存储触发器吗? cloud.google.com/functions/docs/calling/storage 启动异步批处理注释操作并终止您的功能。设置触发器以在您的存储桶中创建文件时运行函数。
    • 这就是我现在正在做的事情。它由图像上传触发,然后异步处理图像。感谢您的帮助和想法!
    • 哦,我明白了。因此,当您将图像上传到存储桶时,触发器会导致函数为该输入文件调用异步批处理注释。由于异步批处理注释将输出写入您的一个存储桶,因此我建议添加一个新触发器,该触发器运行云函数来处理输出文件。
    • 正是我现在正在做的事情:)
    猜你喜欢
    • 2017-10-20
    • 2016-08-05
    • 2019-03-13
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多