Ë
    uPêjH  ã                   óª   — d dl mZmZmZ d dlZd dlmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZ erd dlmZ  G d„ de«      Z G d„ d	e«      Z G d
„ de«      Zy)é    )ÚTYPE_CHECKINGÚAnyÚFinalN)ÚBaseOCRConfigÚDocumentTypeÚOCRRequestDataÚOCRResponseÚOCRUsageInfo)ÚREDUCTO_API_BASEÚbuild_pages_from_reductoÚextract_file_id_or_bytesÚupload_bytes_asyncÚupload_bytes_sync)ÚLoggingc                   óN  — e Zd Zdedededefd„Z	 	 	 ddedededz  d	edz  d
edz  defd„Z	 dd	edz  deded
edz  def
d„Zdededefd„Z	e
dedz  d	edz  deeef   fd„«       Zdedededz  d	edz  def
d„Zdedededz  d	edz  def
d„Zdedej                   dddefd„Zy)Ú_BaseReductoOCRConfigÚnon_default_paramsÚoptional_paramsÚmodelÚreturnc                 ó„   — t        |«      }| j                  |¬«      }|j                  «       D ]  \  }}||v sŒ|||<   Œ |S )N©r   )ÚdictÚget_supported_ocr_paramsÚitems)Úselfr   r   r   Úmapped_paramsÚsupported_paramsÚparamÚvalues           úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/reducto/ocr/transformation.pyÚmap_ocr_paramsz$_BaseReductoOCRConfig.map_ocr_params   sY   € ô  $ OÓ4ˆØ"&×"?Ñ"?ÀeÐ"?Ó"LÐØ.×4Ñ4Ó6ò 	-‰LˆE�5ØÐ(Ò(Ø',�˜eÒ$ð	-ð Ðó    NÚheadersÚapi_keyÚapi_baseÚlitellm_paramsc                 óT   — ddl m} |xs  |d«      }|€t        d«      ‚d|› �ddœ|¥S )Nr   ©Úget_secret_strÚREDUCTO_API_KEYúcMissing REDUCTO_API_KEY - set it in the environment or pass api_key to litellm.ocr()/litellm.aocr()zBearer zapplication/json)ÚAuthorizationzContent-Type)Úlitellm.secret_managers.mainr*   Ú
ValueError)	r   r$   r   r%   r&   r'   Úkwargsr*   Úresolved_keys	            r!   Úvalidate_environmentz*_BaseReductoOCRConfig.validate_environment&   sQ   € õ 	@à%ÒJ©Ð8IÓ)JˆØÐÜØuóð ð
  ' | nÐ5Ø.ñ
ð ð
ð 	
r#   c                 óR   — dj                  |xs t        j                  d«      «      S )Nz{}/parseú/)Úformatr   Úrstrip)r   r&   r   r   r'   r0   s         r!   Úget_complete_urlz&_BaseReductoOCRConfig.get_complete_url=   s&   € ð × Ñ  (Ò">Ô.>×!FÑ!FÀsÓ!KÓLÐLr#   Údocumentc                 ón   — |j                  d«      xs |j                  d«      }|€t        d|› �«      ‚|S )NÚdocument_urlÚ	image_urlzRReducto expected OCR preprocessing to produce document_url or image_url for model=)Úgetr/   )r   r8   r   Ú
source_urls       r!   Ú_get_source_urlz%_BaseReductoOCRConfig._get_source_urlG   sE   € Ø$ŸL™L¨Ó8ÒU¸H¿L¹LÈÓ<Uˆ
ØÐÜØdÐejÐdkÐlóð ð Ðr#   c                 óz   — ddl m} | xs  |d«      }|€t        d«      ‚|xs t        j	                  d«      }||fS )Nr   r)   r+   r,   r4   )r.   r*   r/   r   r6   )r%   r&   r*   r1   Úresolved_bases        r!   Ú_resolve_credentialsz*_BaseReductoOCRConfig._resolve_credentialsO   sN   € å?à%ÒJ©Ð8IÓ)JˆØÐÜØuóð ð !)Ò <Ô,<×DÑDÀSÓIˆØ˜]Ð*Ð*r#   c                 ó¢   — | j                  ||¬«      }t        ||¬«      \  }}}|�|S | j                  ||«      \  }	}
t        |xs d||	|
¬«      S ©N)r8   r   r   r#   )Ú	raw_bytesÚmimer%   r&   )r>   r   rA   r   ©r   r   r8   r%   r&   r=   Úfile_idrD   rE   r1   r@   s              r!   Ú_ensure_file_id_syncz*_BaseReductoOCRConfig._ensure_file_id_sync[   sl   € ð !×0Ñ0¸(È%Ð0ÓPˆ
Ü#;¸JÈeÔ#TÑ ˆ�˜DØÐØˆNØ&*×&?Ñ&?ÀÈÓ&RÑ#ˆ�mÜ ØÒ& 3ØØ Ø"ô	
ð 	
r#   c              ƒ   ó¾   K  — | j                  ||¬«      }t        ||¬«      \  }}}|�|S | j                  ||«      \  }	}
t        |xs d||	|
¬«      ƒ d {  –—† S 7 Œ­wrC   )r>   r   rA   r   rF   s              r!   Ú_ensure_file_id_asyncz+_BaseReductoOCRConfig._ensure_file_id_asyncn   sz   è ø€ ð !×0Ñ0¸(È%Ð0ÓPˆ
Ü#;¸JÈeÔ#TÑ ˆ�˜DØÐØˆNØ&*×&?Ñ&?ÀÈÓ&RÑ#ˆ�mÜ'ØÒ& 3ØØ Ø"ô	
÷ 
ð 	
ð 
ús   ‚AAÁAÁAÚraw_responseÚlogging_objÚLiteLLMLoggingObjc           
      ó  — |j                  «       }|j                  d|«      xs i }|j                  di «      xs i }t        t        |«      |t	        |j                  d«      |j                  d«      ¬«      d¬«      }||j
                  d<   |S )	NÚresultÚusageÚ	num_pagesÚcredits)Úpages_processedrR   Úocr)Úpagesr   Ú
usage_infoÚobjectÚreducto_raw)Újsonr<   r	   r   r
   Ú_hidden_params)	r   r   rK   rL   r0   Úresponse_jsonrO   rP   Úresponses	            r!   Útransform_ocr_responsez,_BaseReductoOCRConfig.transform_ocr_response�   s‘   € ð  ,×0Ñ0Ó2ˆØ%×)Ñ)¨(°MÓBÒHÀbˆØ$×(Ñ(¨°"Ó5Ò;¸ˆÜ%Ü*¨6Ó2ØÜ#Ø %§	¡	¨+Ó 6ØŸ	™	 )Ó,ôð ô
ˆð 2?ˆ×Ñ Ñ.Øˆr#   )NNN)N)Ú__name__Ú
__module__Ú__qualname__r   Ústrr"   r2   r7   r   r>   ÚstaticmethodÚtuplerA   rH   rJ   ÚhttpxÚResponser	   r]   © r#   r!   r   r      sÊ  „ ðà ðð ðð ð	ð
 
óð" #Ø#Ø&*ñ
àð
ð ð
ð �t‘ð	
ð
 ˜‘*ð
ð ˜t™ð
ð 
ó
ð8 '+ñMà˜‘*ðMð ðMð ð	Mð
 ˜t™ðMð 
óMð¨ð ¸Sð ÀSó ð ð	+ c¨D¡jð 	+¸CÀ$¹Jð 	+È5ÐQTÐVYÐQYÉ?ò 	+ó ð	+ð
àð
ð ð
ð �t‘ð	
ð
 ˜‘*ð
ð 
ó
ð&
àð
ð ð
ð �t‘ð	
ð
 ˜‘*ð
ð 
ó
ð&àðð —n‘nðð )ð	ð 
ôr#   r   c            
       óT   — e Zd Zdedefd„Zdededededef
d„Z	dededededef
d„Z
y	)
ÚReductoParseV3Configr   r   c                 ó
   — g d¢S )N)Ú
formattingÚ	retrievalÚsettingsrf   ©r   r   s     r!   r   z-ReductoParseV3Config.get_supported_ocr_params™   s   € Ú6Ð6r#   r8   r   r$   c                 óŠ   — | j                  |||j                  d«      |j                  d«      ¬«      }t        d|i|¥d ¬«      S ©Nr%   r&   ©r   r8   r%   r&   Úinput©ÚdataÚfiles)rH   r<   r   ©r   r   r8   r   r$   r0   rG   s          r!   Útransform_ocr_requestz*ReductoParseV3Config.transform_ocr_requestœ   sQ   € ð ×2Ñ2ØØØ—J‘J˜yÓ)Ø—Z‘Z 
Ó+ð	 3ó 
ˆô  G¨WÐ#H¸Ð#HÐPTÔUÐUr#   c              ‹   ó¦   K  — | j                  |||j                  d«      |j                  d«      ¬«      ƒ d {  –—† }t        d|i|¥d ¬«      S 7 Œ­wro   )rJ   r<   r   ru   s          r!   Úasync_transform_ocr_requestz0ReductoParseV3Config.async_transform_ocr_request¬   s_   è ø€ ð  $×9Ñ9ØØØ—J‘J˜yÓ)Ø—Z‘Z 
Ó+ð	  :ó  
÷ 
ˆô  G¨WÐ#H¸Ð#HÐPTÔUÐUð
ús   ‚7A¹AºAN)r^   r_   r`   ra   Úlistr   r   r   r   rv   rx   rf   r#   r!   rh   rh   ˜   s‹   „ ð7¨cð 7°dó 7ðVàðVð ðVð ð	Vð
 ðVð 
óVð VàðVð ðVð ð	Vð
 ðVð 
ôVr#   rh   c            
       ór   — e Zd Zdedefd„Zdededeeef   fd„Zdede	dedede
f
d	„Zdede	dedede
f
d
„Zy)ÚReductoParseLegacyConfigr   r   c                 ó   — dgS )NÚenhancerf   rm   s     r!   r   z1ReductoParseLegacyConfig.get_supported_ocr_params¾   s
   € Øˆ{Ðr#   rG   r   c                 óB   — d|i}|j                  d«      }|�d|i|d<   |S )Nr:   r}   Úoptions)r<   )r   rG   r   Úbodyr}   s        r!   Ú_build_legacy_bodyz+ReductoParseLegacyConfig._build_legacy_bodyÁ   s5   € Ø'5°wÐ&?ˆØ(×,Ñ,¨YÓ7ˆØÐØ(¨'Ð2ˆD�‰OØˆr#   r8   r$   c                 ó¤   — | j                  |||j                  d«      |j                  d«      ¬«      }t        | j                  ||¬«      d ¬«      S ©Nr%   r&   rp   )rG   r   rr   )rH   r<   r   r�   ru   s          r!   rv   z.ReductoParseLegacyConfig.transform_ocr_requestÈ   s\   € ð ×2Ñ2ØØØ—J‘J˜yÓ)Ø—Z‘Z 
Ó+ð	 3ó 
ˆô Ø×(Ñ(°È/Ð(ÓZØô
ð 	
r#   c              ‹   óÀ   K  — | j                  |||j                  d«      |j                  d«      ¬«      ƒ d {  –—† }t        | j                  ||¬«      d ¬«      S 7 Œ"­wrƒ   )rJ   r<   r   r�   ru   s          r!   rx   z4ReductoParseLegacyConfig.async_transform_ocr_requestÛ   sj   è ø€ ð  $×9Ñ9ØØØ—J‘J˜yÓ)Ø—Z‘Z 
Ó+ð	  :ó  
÷ 
ˆô Ø×(Ñ(°È/Ð(ÓZØô
ð 	
ð
ús   ‚7A¹Aº#AN)r^   r_   r`   ra   ry   r   r   r   r�   r   r   rv   rx   rf   r#   r!   r{   r{   ½   s¢   „ ð¨cð °dó ð¨#ð Àð ÈÈcÐSVÈhÉó ð
àð
ð ð
ð ð	
ð
 ð
ð 
ó
ð&
àð
ð ð
ð ð	
ð
 ð
ð 
ô
r#   r{   )Útypingr   r   r   rd   Ú(litellm.llms.base_llm.ocr.transformationr   r   r   r	   r
   Úlitellm.llms.reducto.commonr   r   r   r   r   Ú*litellm.litellm_core_utils.litellm_loggingr   rM   r   rh   r{   rf   r#   r!   ú<module>r‰      sV   ðß ,Ñ ,ã ÷õ ÷õ ñ ÝWô}˜Mô }ô@"VÐ0ô "VôJ/
Ð4õ /
r#   