在GCP DocumentAI中能否通过API为导入文档添加文档类型标签?
可以通过DocumentAI API批量分配文档类型标签
你完全可以通过API批量为文档添加全局文档类型标签,支持导入时直接分配和导入后批量更新两种方式,以下是具体实现方法:
一、导入文档时分配标签
场景1:整批文档属于同一类型
如果单次导入的所有文档都属于同一个类型,可以在BatchDocumentsImportConfig中通过document_label统一设置标签,标签值需与你之前定义的dataset schema中的entity type名称一致:
import_documents_request = document_service_client.import_documents( documentai.ImportDocumentsRequest( dataset=f"{processor.name}/dataset", batch_documents_import_configs=[ documentai.ImportDocumentsRequest.BatchDocumentsImportConfig( auto_split_config=documentai.ImportDocumentsRequest.BatchDocumentsImportConfig.AutoSplitConfig( training_split_ratio=0.7 ), # 为整批文档统一设置文档类型标签 document_label=documentai.DocumentLabel( label="test1" # 对应schema中定义的entity type名称 ), batch_input_config=documentai.BatchDocumentsInputConfig( gcs_documents=documentai.GcsDocuments( documents=[ documentai.GcsDocument( gcs_uri="gs://path/to/test1_doc1.pdf", mime_type="application/pdf", ), documentai.GcsDocument( gcs_uri="gs://path/to/test1_doc2.pdf", mime_type="application/pdf", ) ] ) ), ) ], ), )
场景2:单批文档包含多种类型
如果单次导入的文档分属不同类型,可以在每个GcsDocument的labels字段中单独指定document_type标签:
import_documents_request = document_service_client.import_documents( documentai.ImportDocumentsRequest( dataset=f"{processor.name}/dataset", batch_documents_import_configs=[ documentai.ImportDocumentsRequest.BatchDocumentsImportConfig( auto_split_config=documentai.ImportDocumentsRequest.BatchDocumentsImportConfig.AutoSplitConfig( training_split_ratio=0.7 ), batch_input_config=documentai.BatchDocumentsInputConfig( gcs_documents=documentai.GcsDocuments( documents=[ documentai.GcsDocument( gcs_uri="gs://path/to/test2_doc1.pdf", mime_type="application/pdf", labels={"document_type": "test2"} ), documentai.GcsDocument( gcs_uri="gs://path/to/test4_doc1.pdf", mime_type="application/pdf", labels={"document_type": "test4"} ) ] ) ), ) ], ), )
二、导入后批量更新文档标签
如果文档已经导入但需要调整标签,可以使用update_dataset_documents API批量修改:
# 构造批量更新请求 update_request = documentai.UpdateDatasetDocumentsRequest( dataset=f"{processor.name}/dataset", document_updates=[ documentai.DatasetDocumentUpdate( gcs_uri="gs://path/to/test1_doc1.pdf", document_label=documentai.DocumentLabel(label="test1") ), documentai.DatasetDocumentUpdate( gcs_uri="gs://path/to/test2_doc1.pdf", document_label=documentai.DocumentLabel(label="test2") ) ] ) # 执行更新操作 response = document_service_client.update_dataset_documents(update_request)
关键注意事项
- 所有标签名称必须与你之前通过API设置的dataset schema中的
entity_type.name完全匹配(如test1、test2),否则会触发验证错误。 - 无论是导入时还是导入后设置的标签,都会作为自定义分类模型的训练依据,效果与控制台手动设置完全一致。
内容的提问来源于stack exchange,提问作者J L
相关产品推荐
相关产品推荐

