首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure窗体识别器只分析流中的第一个文件。

Azure窗体识别器只分析流中的第一个文件。
EN

Stack Overflow用户
提问于 2022-03-27 12:48:21
回答 1查看 301关注 0票数 0

我正在测试一些AI文档分析材料,目前正在尝试允许用户将文件上传到WebApp,而后者又将文件发送到Azure表单识别器并处理结果。

然而,我无法在一次请求中做到这一点。

文件是这样表示的:

BindProperty公共列表上载{ get;set;}

我可以迭代这些并得到预期的结果,但这使得操作花费了相当长的时间。我只想在一个请求中发送所有文件(如下所示),但它只分析第一个请求。我使用的是Azure.AI.FormRecognizer.DocumentAnalysis,所以客户机和StartAnalyzeDocument方法就是从那里开始的。

代码语言:javascript
复制
        using (var stream = new MemoryStream())
        {
            foreach (IFormFile formFile in Upload)
            {
                formFile.CopyTo(stream);
            }
            stream.Seek(0, SeekOrigin.Begin);
            AnalyzeDocumentOperation operation = client.StartAnalyzeDocument(modelId, stream);
            operation.WaitForCompletion();
            Console.WriteLine("This many documents were analysed: " + operation.Value.Documents.Count);
            result = operation.Value;
        };

“结果”是我以后要处理的。我对此感到十分困惑,因为我原以为所附的那条小溪能正常工作。如果有人有一个解决方案,或可以指出我的正确方向,这将是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-28 00:59:07

表单识别器还不支持为预构建的发票和自定义模型在单个分析操作中处理多个文档。此外,大多数文件格式不能仅仅附加到一起来连接内容。

加快对批处理中多个文件的分析的一种方法是并行调用分析操作。这是一个素描。

代码语言:javascript
复制
var results = Upload.AsParallel().ForAll(formFile => 
{
    using (var stream = formFile.OpenReadStream())
    {
        var operation = client.StartAnalyzeDocument(modelId, stream);
        operation.WaitForCompletion();
        return operation.Value;
    }
}).ToArray();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71636459

复制
相关文章

相似问题

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