Ë
    CØïiö  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlZej                  j                  d«      Z e j                  d«      Zg d¢Zd„ Z G d„ d	e«      Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 	 	 	 	 dd„Zd„ Zd„ Zdefd„Zy)é    N)ÚEnum)ÚOptionalÚ
OPENAI_LOGÚopenai)Úlog_infoÚ	log_debugÚlog_warnÚlogfmtc                 ó^   — | t         j                  t         j                  fv rdd|› �iS d|› iS )NÚAuthorizationzBearer zapi-key)ÚApiTypeÚOPEN_AIÚAZURE_AD)ÚapiÚkeys     úE/var/www/html/aiagents/fe/lib/python3.12/site-packages/openai/util.pyú<lambda>r      s:   € Ø
Œw�‰¤× 0Ñ 0Ð1Ñ1ð &¨°° Ð7€ à
˜�uÐ	ð ó    c                   ó(   — e Zd ZdZdZdZed„ «       Zy)r   é   é   é   c                 ó  — | j                  «       dk(  rt        j                  S | j                  «       dv rt        j                  S | j                  «       dv rt        j                  S t
        j                  j                  d«      ‚)NÚazure)Úazure_adÚazuread)Úopen_air   znThe API type provided in invalid. Please select one of the supported API types: 'azure', 'azure_ad', 'open_ai')Úlowerr   ÚAZUREr   r   r   ÚerrorÚInvalidAPIType)Úlabels    r   Úfrom_strzApiType.from_str!   sk   € à�;‰;‹=˜GÒ#Ü—=‘=Ð Ø�[‰[‹]Ð5Ñ5Ü×#Ñ#Ð#Ø�[‰[‹]Ð3Ñ3Ü—?‘?Ð"ä—,‘,×-Ñ-ð Aóð r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ústaticmethodr#   © r   r   r   r      s#   „ Ø€EØ€GØ€Hàñ
ó ñ
r   r   c                  ód   — t         j                  dv rt         j                  S t        dv rt        S y )N©ÚdebugÚinfo)r   Úlogr   r(   r   r   Ú_console_log_levelr.   /   s+   € Ü‡z�zÐ&Ñ&Ü�z‰zÐÜ	Ð(Ñ	(ÜÐàr   c                 óª   — t        t        dd| i|¤Ž«      }t        «       dk(  rt        |t        j
                  ¬«       t        j                  |«       y )NÚmessager+   ©Úfiler(   )r
   Údictr.   ÚprintÚsysÚstderrÚloggerr+   ©r0   ÚparamsÚmsgs      r   r   r   8   s>   € Ü
”Ñ0˜gÐ0¨Ñ0Ó
1€CÜÓ˜wÒ&ÜˆcœŸ
™
Õ#Ü
‡L�L�Õr   c                 ó¨   — t        t        dd| i|¤Ž«      }t        «       dv rt        |t        j
                  ¬«       t        j                  |«       y )Nr0   r*   r1   r(   )r
   r3   r.   r4   r5   r6   r7   r,   r8   s      r   r   r   ?   s?   € Ü
”Ñ0˜gÐ0¨Ñ0Ó
1€CÜÓÐ0Ñ0ÜˆcœŸ
™
Õ#Ü
‡K�K�Õr   c                 ó�   — t        t        dd| i|¤Ž«      }t        |t        j                  ¬«       t
        j                  |«       y )Nr0   r1   r(   )r
   r3   r4   r5   r6   r7   Úwarnr8   s      r   r	   r	   F   s3   € Ü
”Ñ0˜gÐ0¨Ñ0Ó
1€CÜ	ˆ#”C—J‘JÕÜ
‡K�K�Õr   c           
      ó˜   — d„ }dj                  t        | j                  «       «      D ��cg c]  \  }} |||«      ‘Œ c}}«      S c c}}w )Nc                 ó  — t        |d«      r|j                  d«      }t        |t        «      st        |«      }t	        j
                  d|«      rt        |«      }t	        j
                  d| «      rt        | «      } dj                  | |¬«      S )NÚdecodezutf-8z\sz{key}={val}©r   Úval)Úhasattrr@   Ú
isinstanceÚstrÚreÚsearchÚreprÚformatrA   s     r   Úfmtzlogfmt.<locals>.fmtM   sq   € ä�3˜Ô!Ø—*‘*˜WÓ%ˆCä˜#œsÔ#Ü�c“(ˆCÜ�9‰9�U˜CÔ Ü�s“)ˆCä�9‰9�U˜CÔ Ü�s“)ˆCØ×#Ñ#¨°Ð#Ó5Ð5r   ú )ÚjoinÚsortedÚitems)ÚpropsrJ   r   rB   s       r   r
   r
   L   s;   € ò6ð �8‰8´6¸%¿+¹+»-Ó3H×I¡x s¨C‘S˜˜c•]ÓIÓJÐJùÓIs   «A
c                  ó   — ddl m}  | S )Nr   ©ÚOBJECT_CLASSES)Úopenai.object_classesrR   rQ   s    r   Úget_object_classesrT   ^   s   € å4àÐr   c           
      óš  — d }t        | t        j                  j                  «      r$| j                  }| j
                  }| j                  } |r| S t        | t        «      r| D �cg c]  }t        |||||¬«      ‘Œ c}S t        | t        «      r¹t        | t        j                  j                  «      s•| j                  «       } | j                  d«      }t        |t        «      r3t        «       j                  |t        j                  j                  «      }	nt        j                  j                  }	|	j!                  | |||||¬«      S | S c c}w )N)ÚengineÚobject)Úapi_keyÚapi_versionÚorganizationÚresponse_msrV   )rD   r   Úopenai_responseÚOpenAIResponserZ   r[   ÚdataÚlistÚconvert_to_openai_objectr3   Úopenai_objectÚOpenAIObjectÚcopyÚgetrE   rT   Úconstruct_from)
ÚresprX   rY   rZ   rV   Úplain_old_datar[   ÚiÚ
klass_nameÚklasss
             r   r`   r`   e   s5  € ð "&€KÜ�$œ×.Ñ.×=Ñ=Ô>Ø×(Ñ(ˆØ×&Ñ&ˆØ�y‰yˆáØˆÜ	�Dœ$Ô	ð
 ö	
ð ô %Ø�7˜K¨¸föò
ð 	
ô 
�Dœ$Ô	¬
ØŒf×"Ñ"×/Ñ/ô)ð �y‰y‹{ˆØ—X‘X˜hÓ'ˆ
Ü�j¤#Ô&Ü&Ó(×,Ñ,ØœF×0Ñ0×=Ñ=ó‰Eô ×(Ñ(×5Ñ5ˆEà×#Ñ#ØØØ#Ø%Ø#Øð $ó 
ð 	
ð ˆùò7
s   Á#Ec                 óè   — t        | t        «      r| D �cg c]  }t        |«      ‘Œ c}S t        | t        «      r-| j	                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S | S c c}w c c}}w )zÑConverts a OpenAIObject back to a regular dict.

    Nested OpenAIObjects are also converted back to regular dicts.

    :param obj: The OpenAIObject to convert.

    :returns: The OpenAIObject as a dict.
    )rD   r_   Úconvert_to_dictr3   rN   )Úobjrh   ÚkÚvs       r   rl   rl   –   sd   € ô �#”tÔØ,/Ö0 q” Õ"Ò0Ð0ô 
�CœÔ	Ø25·)±)³+×>©$¨!¨Q�”? 1Ó%Ñ%Ó>Ð>àˆ
ùò 1ùó
 ?s   •A)ÁA.c                 óH   — | j                  «       }|j                  |«       |S )N)rc   Úupdate)ÚxÚyÚzs      r   Úmerge_dictsru   ª   s   € Ø	�‰‹€AØ‡H�HˆQ„KØ€Hr   Úreturnc                  óœ  — t         j                  rrt        t         j                  d«      5 } | j                  «       j	                  «       }|j                  d«      st        dt         j                  › d�«      ‚|cd d d «       S t         j                  �t         j                  S t         j                  j                  d«      ‚# 1 sw Y   y xY w)NÚrtzsk-zMalformed API key in ú.a�  No API key provided. You can set your API key in code using 'openai.api_key = <API-KEY>', or you can set the environment variable OPENAI_API_KEY=<API-KEY>). If your API key is stored in a file, you can point the openai module at it with 'openai.api_key_path = <PATH>'. You can generate API keys in the OpenAI web interface. See https://platform.openai.com/account/api-keys for details.)
r   Úapi_key_pathÚopenÚreadÚstripÚ
startswithÚ
ValueErrorrX   r    ÚAuthenticationError)rn   rX   s     r   Údefault_api_keyr�   °   s©   € Ü×ÒÜ”&×%Ñ% tÓ,ð 	°Ø—f‘f“h—n‘nÓ&ˆGØ×%Ñ% eÔ,Ü Ð#8¼×9LÑ9LÐ8MÈQÐ!OÓPÐPØ÷		ñ 	ô
 
�‰Ð	#Ü�~‰~Ðä�l‰l×.Ñ.ð Pó
ð 	
÷	ð 	ús   «ACÃC)NNNNF)ÚloggingÚosrF   r5   Úenumr   Útypingr   r   Úenvironrd   r   Ú	getLoggerr7   Ú__all__Úapi_key_to_headerr   r.   r   r   r	   r
   rT   r`   rl   ru   rE   r�   r(   r   r   ú<module>rŠ      s§   ðÛ Û 	Û 	Û 
Ý Ý ã à�Z‰Z�^‰^˜LÓ)€
à	ˆ×	Ñ	˜8Ó	$€ò€ñð ôˆdô ò&òòòòKò$ð ØØØØó.òbò(ð
˜ô 
r   