使用Azure Form Recognizer训练自定义模型遇TrainingContentMissing错误求助
训练Form Recognizer自定义模型时TrainingContentMissing错误的可能原因
以下是该错误的常见排查方向:
Blob容器URL格式或权限无效
确保你传入的blob_container_url是具备访问权限的完整路径:- 使用SAS令牌时,URL必须包含有效的令牌参数,格式类似:
https://<storage-account>.blob.core.windows.net/<container-name>?<sas-token>,且令牌需包含读取和列出权限; - 使用托管标识时,URL为容器的基础路径(如
https://<storage-account>.blob.core.windows.net/<container-name>),需确认托管标识的权限已正确配置且生效。
- 使用SAS令牌时,URL必须包含有效的令牌参数,格式类似:
训练文件位置或格式不符合要求
- Template模式默认仅扫描容器的根目录,如果PDF文件存放在子文件夹中,需要在调用
begin_build_document_model时添加prefix参数指定子目录,示例代码:poller = await document_model_admin_client.begin_build_document_model( ModelBuildMode.TEMPLATE, blob_container_url="[PATH TO AZURE STORAGE CONTAINER]", prefix="training-docs/" ) - 检查容器内是否存在有效PDF文件:文件不能损坏,文件名避免包含特殊字符(如空格、非ASCII字符),防止服务无法识别。
- Template模式默认仅扫描容器的根目录,如果PDF文件存放在子文件夹中,需要在调用
权限配置存在细节遗漏
- 若使用SAS令牌,确认令牌未过期,且权限范围包含
Read和List(训练过程需要列出容器内文件并读取内容); - 若使用托管标识,确保Form Recognizer服务主体被授予Storage Blob Data Reader角色,且角色作用范围覆盖目标容器(权限配置后可能需要1-5分钟生效)。
- 若使用SAS令牌,确认令牌未过期,且权限范围包含
网络隔离导致无法访问存储容器
- 如果存储账户开启了防火墙或虚拟网络限制,需将Form Recognizer服务的IP地址加入存储账户的允许列表,或者开启存储账户的"允许受信任的Azure服务访问"选项;
- 若使用私有端点,需确认Form Recognizer与存储账户的私有网络连通,无网络策略阻挡访问。
内容的提问来源于stack exchange,提问作者milk_man435
相关产品推荐
相关产品推荐

