o
    0j	                     @   sh   d Z ddlmZmZmZ ddlmZ dededefdd	Z		
ddedee
 dedeeef fddZdS )z'Shared utilities for DocVLM predictors.    )AnyDictList   )MODEL_GROUP
model_name
group_namereturnc                 C   s   | t |t v S )z5Check if model_name belongs to the given model group.)r   getset)r   r    r   g/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/inference/models/doc_vlm/utils.pyis_in_group   s   r   Tmodel_predssrc_dataadd_input_pathc           
      C   s   t | ts| g} t |ts|g}g }|D ]}t|}|r+|dd}t |tr+||d< || qt| t|krHtdt|  dt| ddd |d	  D }g |d
< t	|| D ]\}}| D ]}	||	 ||	  qd|d
 | q\|S )aZ  Format model predictions and source data into a result dict.

    Args:
        model_preds: Model predictions (single or list).
        src_data: Source data list.
        add_input_path: If True, add input_path from image when image is a path string.

    Returns:
        Dict with keys from src_data plus "result" containing predictions.
    imageNZ
input_pathzModel predicts z results while src data has z	 samples.c                 S   s   i | ]}|g qS r   r   ).0kr   r   r   
<dictcomp>;   s    z.format_doc_vlm_result_dict.<locals>.<dictcomp>r   result)

isinstancelistdictr
   strappendlen
ValueErrorkeyszip)
r   r   r   Z
input_infodatar   Zrst_format_dictZdata_sampleZ
model_predr   r   r   r   format_doc_vlm_result_dict   s.   


r!   N)T)__doc__typingr   r   r   	constantsr   r   boolr   r   r!   r   r   r   r   <module>   s   
