首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单识别器V2 /成本正在爆炸

表单识别器V2 /成本正在爆炸
EN

Stack Overflow用户
提问于 2020-04-16 20:54:01
回答 2查看 366关注 0票数 1

作为对ChadZ的回应,这里的答案是表单识别器的度量,我正在讨论的是形式识别器度量。在我们的测试中,我们检查一个目录中的文件,并以顺序的方式分析它们,等待每个响应,写入结果,得到下一个文件等等。没有多线程。

看看四月份最大的高峰,14个有15330个电话。如果我们假设4月份的每一次通话都需要10秒(这将是快速的,正常的话,可能需要1分钟),那么这些分析花费了153300秒,即2555分钟或42,58小时。即使分析只需要5秒,也要超过20个小时。

当然,我可能错了,但目前最好的逻辑解释是,get请求也会被跟踪和计费。

原邮政

我使用带有标签的自定义模型(用样例标记工具创建),并从这个V2页面的底部使用“” SDK代码获取结果。虽然V2中的异步操作比V1 (我描述的这里)慢得多,但它似乎也要昂贵得多。

在post api调用之后获得结果的原始示例代码如下所示:

代码语言:javascript
复制
n_tries = 15
n_try = 0
wait_sec = 5
max_wait_sec = 60
while n_try < n_tries:
    try:
        resp = get(url = get_url, headers = {"Ocp-Apim-Subscription-Key": apim_key})
        resp_json = resp.json()
        if resp.status_code != 200:
            print("GET analyze results failed:\n%s" % json.dumps(resp_json))
            quit()
        status = resp_json["status"]
        if status == "succeeded":
            print("Analysis succeeded:\n%s" % json.dumps(resp_json))
            quit()
        if status == "failed":
            print("Analysis failed:\n%s" % json.dumps(resp_json))
            quit()
        # Analysis still running. Wait and retry.
        time.sleep(wait_sec)
        n_try += 1
        wait_sec = min(2*wait_sec, max_wait_sec)     
    except Exception as e:
        msg = "GET analyze results failed:\n%s" % str(e)
        print(msg)
        quit()
print("Analyze operation did not complete within the allocated time.")

正如您在最初的示例代码中所看到的那样,它每5秒看一次,以获得结果。

我的问题是:在我看来,不仅分析文档的api调用是计费的,而且每个获取结果的请求都是计费的。

自从使用V2以来,我们的账单已经增加了十倍甚至更多。我们目前正处于测试阶段,我们通常每个月都有400-500个文档,这些文档在V1中被正确地跟踪和计费。使用V2和上面的示例代码,我们现在有了63690 (!)电话,每一个电话账单,成本是爆炸性的。

有人能证实这种行为吗?

就我个人而言,我想返回同步操作,其中api调用的响应还包含任何文档分析的结果。

代码语言:javascript
复制
    try:
        url = base_url + "/models/" + model_id + "/analyze"
        with open(filepath, "rb") as f:
            data_bytes = f.read()
        response = requests.post(url=url, data=data_bytes, headers=headers)
        return response.json()
    except Exception as e:
        print(str(e))
        return None

不幸的是这已经行不通了..。

代码语言:javascript
复制
    try:
        response = requests.post(url=post_url, data=data_bytes, headers=headers)  # , params=params)
        if response.status_code != 202:
            return None
        # Success
        get_url = response.headers["operation-location"]
        return form_recognizerv2_getdata(get_url, subscription_key)
    except Exception as e:
        print("POST analyze failed:\n%s" % str(e))
        return None
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-16 21:05:11

我可以确认,在表单识别器v2中,GET调用没有计费。火车电话也是免费的。如有帐单问题,请与客户服务部联系。

票数 0
EN

Stack Overflow用户

发布于 2020-04-21 15:56:44

GetAnalyzeResults呼叫没有计费。表单识别器账单仅用于分析过的页面,而不是事务和请求。图“”显示了所有的事务和API调用,包括GetAnalyzeResults,但您并没有为此付费。V1和V2的账单是相同的。如果您遇到帐单问题,请与客户服务部门联系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61259871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档