amazon-textract-idp-cdk-constructs
项目描述
Amazon Textract IDP CDK Constructs
---所有类均在积极开发中,并且在未来任何版本中可能进行不向后兼容的更改或删除。这些不受语义版本控制模型约束。这意味着虽然您可以使用它们,但在升级到此包的新版本时,您可能需要更新源代码。
上下文
此CDK构造可以用作Step Function任务,并异步调用Textract的DetectText和AnalyzeDocument API。
有关使用示例,请参阅Amazon Textact IDP CDK Stack Samples
输入
期望在'Payload'处有一个Manifest JSON。Manifest描述:https://pypi.ac.cn/project/schadem-tidp-manifest/
Python中调用示例
textract_async_task = t_async.TextractGenericAsyncSfnTask(
self,
"textract-async-task",
s3_output_bucket=s3_output_bucket,
s3_temp_output_prefix=s3_temp_output_prefix,
integration_pattern=sfn.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
lambda_log_level="DEBUG",
timeout=Duration.hours(24),
input=sfn.TaskInput.from_object({
"Token":
sfn.JsonPath.task_token,
"ExecutionId":
sfn.JsonPath.string_at('$$.Execution.Id'),
"Payload":
sfn.JsonPath.entire_payload,
}),
result_path="$.textract_result")
查询参数
示例
input=sfn.TaskInput.from_object({
"Token":
sfn.JsonPath.task_token,
"ExecutionId":
sfn.JsonPath.string_at('$$.Execution.Id'),
"Payload":
sfn.JsonPath.entire_payload,
"Query": [
{
'Text': 'string',
'Alias': 'string',
'Pages': [
'string',
]
},
{
"Text": "What is the name of the realestate company",
"Alias": "APP_COMPANY_NAME"
},
{
"Text": "What is the name of the applicant or the prospective tenant",
"Alias": "APP_APPLICANT_NAME"
},
]
}),
为了将查询参数添加到Manifest JSON中,我们将利用'convert_manifest_queries_config_to_caller'。它将查询对象列表(如类型提示List[tm.Query]所示)转换为QueriesConfig对象(如返回类型tc.QueriesConfig所示)。
该函数期望输入一个查询对象列表。每个查询对象应具有以下属性
- text(必需)
- alias(可选)
- pages(可选)
该函数创建一个新的QueriesConfig对象。如果输入列表不为空,它将创建一个列表推导式,为输入列表中的每个查询对象生成一个新的查询对象,保留相同的text、alias和pages值。如果输入列表为空,则仅创建一个具有空queries列表的QueriesConfig对象。
输出
将"TextractTempOutputJsonPath"添加到Step Function ResultPath。在此位置,Textract输出存储为单个JSON文件。使用CDK构造schadem-cdk-construct-sfn-textract-output-config-to-json将它们合并为一个JSON文件。
示例(ResultPath = textract_result,如上配置)
"textract_result": {
"TextractTempOutputJsonPath": "s3://schademcdkstackpaystuban-schademcdkidpstackpaystu-bt0j5wq0zftu/textract-temp-output/c6e141e8f4e93f68321c17dcbc6bf7291d0c8cdaeb4869758604c387ce91a480"
}
Spacy分类
期望在目录根目录处有一个Spacy textcat模型。调用脚本(
aws s3 cp s3://amazon-textract-public-content/constructs/en_textcat_demo-0.0.0.tar.gz .
如何使用Workmail集成
为了演示此功能,我使用了以下架构,一旦传入邮件被投递到您的Amazon Workmail收件箱,并且如果模式匹配,它将调用规则操作,在这种情况下是调用lambda函数。您可以使用在'code'文件夹中提供的示例lambda Python(3.6)代码。
先决条件
- 由于我使用Python 3.6作为我的Lambda函数运行时,因此需要对Python 3版本有一定的了解。
步骤
- 首先,根据'入门'文档中提到的步骤设置一个Amazon Workmail站点,设置一个组织并创建用户访问。完成上述设置过程后,您将能够访问https://您的组织.awsapps.com/mail网络邮件地址,并可以使用您创建的用户名/密码登录以访问您的电子邮件。
- 现在我们将创建一个lambda函数,该函数将在传入邮件到达收件箱且邮件流规则模式匹配时被调用(更多内容请参阅以下步骤)。您可以使用在'code'文件夹中提供的示例lambda Python(3.6)代码(lambda_function.py)进行此操作。它将获取传入邮件的消息正文,然后将其正确解析以获取消息正文作为文本。一旦得到文本,您就可以对其进行各种操作。
- 入站电子邮件流规则,也称为规则操作,会自动应用于发送给Amazon WorkMail组织内部任何人的所有电子邮件。这与个人邮箱的电子邮件规则不同。现在,我们将设置电子邮件流规则来处理基于电子邮件地址或域的电子邮件流。电子邮件流规则基于发送者和接收者的电子邮件地址或域。
要创建电子邮件流规则,我们需要指定一个在匹配指定模式时应用于电子邮件的规则操作。请按照以下文档链接这里创建电子邮件流规则,该规则为您在上述第1步中创建的组织创建。您必须为您的规则选择“操作=运行Lambda”。以下是我创建的电子邮件流规则:
现在,您可以按照以下文档链接这里创建需要满足以调用规则操作的模式/(在这种情况下,它将调用我们的Lambda函数)。对于这个示例代码功能,我已将我的电子邮件地址作为“来源”中的模式,将我的域作为“目的地”中的模式。因此,在这种情况下,只有在入站电子邮件发送者是我的电子邮件地址且目的地是我的域时,Lambda函数才会被调用。但是,您可以按需设置模式。以下屏幕截图显示了我的模式:
项目详情
哈希值 for amazon-textract-idp-cdk-constructs-0.0.43.tar.gz
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 981beb8eab19cc326a4c465289332767d207b3440c3d67ead2726618722ae12c |
|
MD5 | 8f7fc7fb0d57bcb1e5d55923b462e17d |
|
BLAKE2b-256 | d006799d7427d8432961865f0f3094c235117469f9a646d81104510a2b72bbaf |
哈希值 for amazon_textract_idp_cdk_constructs-0.0.43-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d441805dd0427a19cad2329105471f375f7c68c03459ebf12bc2ad6afb444a5c |
|
MD5 | b30b50eecd88bd5da934ea05806d3310 |
|
BLAKE2b-256 | d53a0b0eaae21dce72001caa5e7ed4ed838a9912a9e31dbdd52e3e02b02e0692 |