@@ -673,7 +673,7 @@ def start_human_loop(
673673 FlowDefinitionArn = ssm .get_parameter (Name = f"/{ os .environ .get ('METRIC_NAMESPACE' , 'IDP' )} /FlowDefinitionArn" )['Parameter' ]['Value' ]
674674 human_review_id = generate_random_string (2 )
675675 response = a2i_runtime_client .start_human_loop (
676- HumanLoopName = f"review-bda-{ execution_id } -{ human_review_id } " ,
676+ HumanLoopName = f"review-bda-{ human_review_id } - { execution_id } -{ record_number } - { page_id_num } " ,
677677 FlowDefinitionArn = FlowDefinitionArn ,
678678 HumanLoopInput = {"InputContent" : json .dumps (human_loop_input )}
679679 )
@@ -825,6 +825,7 @@ def process_segments(
825825
826826 now = datetime .datetime .now ().isoformat ()
827827 hitl_triggered = False
828+ overall_hitl_triggered = False
828829
829830 for record_number , segment in enumerate (segment_metadata , start = 1 ):
830831 logger .info (f"Processing segment for execution id: { execution_id } " )
@@ -901,6 +902,7 @@ def process_segments(
901902 if low_confidence :
902903 hitl_triggered = low_confidence
903904 metrics .put_metric ('HITLTriggered' , 1 )
905+ overall_hitl_triggered = True
904906 for page_number in page_indices :
905907 page_str = str (page_number )
906908 key_values = pagespecific_details ['key_value_details' ].get (page_str , [])
@@ -929,6 +931,7 @@ def process_segments(
929931 else :
930932 if enable_hitl == 'true' :
931933 std_hitl = 'true'
934+ # std_hitl = None # HITL for standard output blueprint match is disabled until we have option to choose Blueprint in A2I
932935 else :
933936 std_hitl = None
934937 # Process standard output if no custom output match
@@ -940,7 +943,8 @@ def process_segments(
940943 page_array = list (range (start_page , end_page + 1 ))
941944 item .update ({
942945 "page_array" : page_array ,
943- "hitl_triggered" : std_hitl ,
946+ # "hitl_triggered": std_hitl,
947+ "hitl_triggered" : None ,
944948 "extraction_bp_name" : "None" ,
945949 "extracted_result" : std_output
946950 })
@@ -950,31 +954,34 @@ def process_segments(
950954 record_number = record_number ,
951955 bp_match = segment .get ('custom_output_status' ),
952956 extraction_bp_name = "None" ,
953- hitl_triggered = std_hitl ,
957+ # hitl_triggered=std_hitl,
958+ hitl_triggered = None ,
954959 page_array = page_array ,
955960 review_portal_url = SAGEMAKER_A2I_REVIEW_PORTAL_URL
956961 )
957962
958- hitl_triggered = std_hitl
959- if enable_hitl == 'true' :
960- for page_number in range (start_page , end_page + 1 ):
961- ImageUri = f"s3://{ output_bucket } /{ object_key } /pages/{ page_number } /image.jpg"
962- try :
963- human_loop_response = start_human_loop (
964- execution_id = execution_id ,
965- kv_pairs = [],
966- source_image_uri = ImageUri ,
967- bounding_boxes = [],
968- blueprintName = "" ,
969- bp_confidence = 0.00 ,
970- confidenceThreshold = confidence_threshold ,
971- page_id = page_number ,
972- page_indices = page_array ,
973- record_number = record_number
974- )
975- logger .info (f"Triggered human loop for page { page_number } : { human_loop_response } " )
976- except Exception as e :
977- logger .error (f"Failed to start human loop for page { page_number } : { str (e )} " )
963+ # hitl_triggered = std_hitl
964+ hitl_triggered = None
965+ # if enable_hitl == 'true':
966+ # # if std_hitl: # HITL for standard output blueprint match is disabled until we have option to choose Blueprint in A2I
967+ # for page_number in range(start_page, end_page + 1):
968+ # ImageUri = f"s3://{output_bucket}/{object_key}/pages/{page_number}/image.jpg"
969+ # try:
970+ # human_loop_response = start_human_loop(
971+ # execution_id=execution_id,
972+ # kv_pairs=[],
973+ # source_image_uri=ImageUri,
974+ # bounding_boxes=[],
975+ # blueprintName="",
976+ # bp_confidence=0.00,
977+ # confidenceThreshold=confidence_threshold,
978+ # page_id=page_number,
979+ # page_indices=page_array,
980+ # record_number=record_number
981+ # )
982+ # logger.info(f"Triggered human loop for page {page_number}: {human_loop_response}")
983+ # except Exception as e:
984+ # logger.error(f"Failed to start human loop for page {page_number}: {str(e)}")
978985
979986 document .hitl_metadata .append (hitl_metadata )
980987
@@ -985,7 +992,7 @@ def process_segments(
985992 except Exception as e :
986993 logger .error (f"Error saving to DynamoDB: { str (e )} " )
987994
988- return document , hitl_triggered
995+ return document , overall_hitl_triggered
989996
990997def handler (event , context ):
991998 """
@@ -1136,7 +1143,7 @@ def handler(event, context):
11361143 execution_id ,
11371144 document
11381145 )
1139- if hitl_result :
1146+ if hitl_result or hitl_triggered == "true" :
11401147 hitl_triggered = "true"
11411148 elif isinstance (output_metadata , dict ):
11421149 for asset_id , asset in output_metadata .items ():
@@ -1149,7 +1156,7 @@ def handler(event, context):
11491156 execution_id ,
11501157 document
11511158 )
1152- if hitl_result :
1159+ if hitl_result or hitl_triggered == "true" :
11531160 hitl_triggered = "true"
11541161 else :
11551162 logger .error ("Unexpected output_metadata format in job_metadata.json" )
0 commit comments