You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Azure Form Recognizer Docker容器调用收据分析?

容器版Form Recognizer实现收据识别的方法

当然可以用Form Recognizer容器实现收据识别!你之前的猜测完全正确,容器的c:\input(Windows容器)或/input(Linux容器)目录可以替代云服务中的Blob存储来提供待处理的收据图片,下面是具体的实现步骤和请求示例:

1. 确保容器运行时挂载输入目录

首先启动容器时,需要把本地存放收据的文件夹映射到容器的c:\input目录,让容器能访问到你的图片。比如本地有个C:\form-receipts文件夹存收据,Docker启动命令可以这么写:

docker run -it --rm -p 5000:5000 --memory 8g --cpus 2 `
-v C:\form-receipts:c:\input `
-v C:\form-output:c:\output `
mcr.microsoft.com/azure-cognitive-services/form-recognizer/receipts `
Eula=accept `
Billing=<你的Azure资源计费端点> `
ApiKey=<你的资源密钥>

注意:这里用的是预构建收据识别的专用容器镜像receipts),如果之前用的是通用自定义模型容器,需要切换到这个镜像才能直接使用预构建的收据识别能力。

2. API请求示例

容器版的预构建收据识别API调用逻辑和云服务类似,但指定数据源时可以直接用容器内的文件路径,也能直接上传图片二进制数据,两种方式都很灵活:

方法一:使用容器输入目录里的图片

请求详情:

  • 请求方法:POST
  • 端点http://localhost:5000/formrecognizer/v2.1/prebuilt/receipt/analyze
  • 请求头
    • Content-Type: application/json
    • Ocp-Apim-Subscription-Key: <你的资源密钥>
  • 请求体
{
  "source": "c:\\input\\your-receipt.jpg"
}

获取识别结果:

发送请求后会返回202 Accepted,响应头里会有Operation-Location字段(比如http://localhost:5000/formrecognizer/v2.1/prebuilt/receipt/analyzeResults/<operation-id>)。用这个URL发送GET请求,就能拿到最终的识别结果:

  • 请求方法:GET
  • 端点{Operation-Location的值}
  • 请求头
    • Ocp-Apim-Subscription-Key: <你的资源密钥>

当返回的status字段为succeeded时,analyzeResult里就包含了收据的所有识别信息——比如商家名称、消费总额、交易日期等。

方法二:直接上传图片二进制数据

如果不想依赖容器的输入目录,也可以直接把图片二进制数据作为请求体发送:

请求详情:

  • 请求方法:POST
  • 端点http://localhost:5000/formrecognizer/v2.1/prebuilt/receipt/analyze
  • 请求头
    • Content-Type: image/jpeg(根据图片格式调整为image/png等)
    • Ocp-Apim-Subscription-Key: <你的资源密钥>
  • 请求体:直接上传本地的收据图片二进制数据(比如在Postman里选"Binary"选项,然后选中图片文件)

后续通过Operation-Location获取结果的步骤和方法一完全一致。

3. 关于容器的c:\output目录

c:\output目录主要用来存储容器的日志文件、临时数据,以及自定义模型的持久化信息(如果训练自定义模型的话)。对于预构建收据识别来说,识别结果主要通过API返回,这个目录只需要正常挂载即可,不需要额外配置就能用。

内容的提问来源于stack exchange,提问作者SliderBlues

火山引擎 最新活动