Ë
    µŒjz2  ã                  ó¢  — d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ 	 d 	 	 	 	 	 d!d„Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z"d"d„Z#d#d„Z$d$d„Z%d%d„Z&d&d„Z' G d„ d«      Z(d'd„Z)	 	 	 	 d(d„Z* G d„ d«      Z+ G d„ d«      Z, e,«       Z-y))é    )ÚannotationsN)	ÚAnyÚAsyncIteratorÚDictÚIterableÚListÚMappingÚSequenceÚUnionÚoverload)ÚChatSession)	Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚFunctionMessageÚHumanMessageÚSystemMessageÚToolMessage)Ú	BaseModel)ÚLiteralc               óF   K  — |}| 2 3 d{  –—† }||f­–— |dz  }Œ7 Œ6 y­w)z$Async version of enumerate function.Né   © )ÚiterableÚstartÚiÚxs       úm/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/adapters/openai.pyÚ
aenumerater!       s1   è ø€ ð 	€AÙ÷ ˆaØ�ˆd‹
Ø	ˆQ‰‰ðø‘8ùs   ‚!‡‹Œ�!�Ÿ!c                  ó   — e Zd ZdZdd„Zy)ÚIndexableBaseModelzDAllows a BaseModel to return its fields by string variable indexing.c                ó   — t        | |«      S ©N)Úgetattr)ÚselfÚitems     r    Ú__getitem__zIndexableBaseModel.__getitem__-   s   € Ü�t˜TÓ"Ð"ó    N)r(   ÚstrÚreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   r   r*   r    r#   r#   *   s
   „ ÙNô#r*   r#   c                  ó   — e Zd ZU dZded<   y)ÚChoicezChoice.ÚdictÚmessageN©r-   r.   r/   r0   Ú__annotations__r   r*   r    r2   r2   1   s
   … Ùà„Mr*   r2   c                  ó   — e Zd ZU dZded<   y)ÚChatCompletionszChat completions.zList[Choice]ÚchoicesNr5   r   r*   r    r8   r8   7   s   … ÙàÔr*   r8   c                  ó   — e Zd ZU dZded<   y)ÚChoiceChunkzChoice chunk.r3   ÚdeltaNr5   r   r*   r    r;   r;   =   s
   … Ùà„Kr*   r;   c                  ó   — e Zd ZU dZded<   y)ÚChatCompletionChunkzChat completion chunk.zList[ChoiceChunk]r9   Nr5   r   r*   r    r>   r>   C   s   … Ù àÔr*   r>   c                óº  — | j                  d«      }|dk(  rt        | j                  dd«      ¬«      S |dk(  rv| j                  dd«      xs d}i }| j                  d«      x}rt        |«      |d<   | j                  d«      x}r||d<   | j                  d	«      x}r||d	<   t        ||¬
«      S |dk(  rt	        | j                  dd«      ¬«      S |dk(  r,t        | j                  dd«      | j                  d«      ¬«      S |dk(  r;i }d| v r| d   |d<   t        | j                  dd«      | j                  d«      |¬«      S t        | j                  dd«      |¬«      S )zˆConvert a dictionary to a LangChain message.

    Args:
        _dict: The dictionary.

    Returns:
        The LangChain message.
    ÚroleÚuserÚcontentÚ )rB   Ú	assistantÚfunction_callÚ
tool_callsÚcontext)rB   Úadditional_kwargsÚsystemÚfunctionÚname)rB   rK   ÚtoolÚtool_call_id)rB   rM   rH   )rB   r@   )Úgetr   r3   r   r   r   r   r   )Ú_dictr@   rB   rH   rE   rF   rG   s          r    Úconvert_dict_to_messagerP   I   ss  € ð �9‰9�VÓ€DØˆv‚~Ü E§I¡I¨i¸Ó$<Ô=Ð=Ø	�Ò	ð —)‘)˜I rÓ*Ò0¨bˆØ"$ÐØ!ŸI™I oÓ6Ð6ˆ=Ð6Ü15°mÓ1DÐ˜oÑ.ØŸ™ <Ó0Ð0ˆ:Ð0Ø.8Ð˜lÑ+Ø—i‘i 	Ó*Ð*ˆ7Ð*Ø+2Ð˜iÑ(Ü Ð<MÔNÐNØ	�Ò	Ü U§Y¡Y¨y¸"Ó%=Ô>Ð>Ø	�Ò	Ü u§y¡y°¸BÓ'?ÀeÇiÁiÐPVÓFWÔXÐXØ	�ŠØÐØ�U‰?Ø(-¨f©Ð˜fÑ%ÜØ—I‘I˜i¨Ó,ØŸ™ >Ó2Ø/ô
ð 	
ô  5§9¡9¨Y¸Ó#;À$ÔGÐGr*   c                ó4  — t        | t        «      r| j                  | j                  dœ}�nLt        | t        «      rd| j                  dœ}�n+t        | t
        «      r—d| j                  dœ}d| j                  v r| j                  d   |d<   |d   dk(  rd|d<   d| j                  v r| j                  d   |d<   |d   dk(  rd|d<   d	| j                  v r¤| j                  d	   |d	<   |d   dk(  rŠd|d<   n„t        | t        «      rd
| j                  dœ}ndt        | t        «      rd| j                  | j                  dœ}n9t        | t        «      rd| j                  | j                  dœ}nt        d| › �«      ‚d| j                  v r| j                  d   |d<   |S )zŠConvert a LangChain message to a dictionary.

    Args:
        message: The LangChain message.

    Returns:
        The dictionary.
    )r@   rB   rA   rD   rE   rB   rC   NrF   rG   rI   rJ   )r@   rB   rK   rL   )r@   rB   rM   zGot unknown type rK   )Ú
isinstancer   r@   rB   r   r   rH   r   r   rK   r   rM   Ú	TypeError)r4   Úmessage_dicts     r    Úconvert_message_to_dictrU   r   sœ  € ô �'œ;Ô'Ø '§¡¸¿¹ÑIŠÜ	�Gœ\Ô	*Ø &°7·?±?ÑCŠÜ	�GœYÔ	'Ø +¸¿¹ÑHˆØ˜g×7Ñ7Ñ7Ø,3×,EÑ,EÀoÑ,VˆL˜Ñ)à˜IÑ&¨"Ò,Ø*.�˜YÑ'Ø˜7×4Ñ4Ñ4Ø)0×)BÑ)BÀ<Ñ)PˆL˜Ñ&à˜IÑ&¨"Ò,Ø*.�˜YÑ'Ø˜×1Ñ1Ñ1Ø&-×&?Ñ&?À	Ñ&JˆL˜Ñ#à˜IÑ&¨"Ò,Ø*.�˜YÒ'Ü	�Gœ]Ô	+Ø (°W·_±_ÑE‰Ü	�Gœ_Ô	-àØ—‘Ø—L‘Lñ
‰ô
 
�Gœ[Ô	)àØ—‘Ø#×0Ñ0ñ
‰ô Ð+¨G¨9Ð5Ó6Ð6Ø�×*Ñ*Ñ*Ø&×8Ñ8¸Ñ@ˆ�VÑØÐr*   c                ó>   — | D �cg c]  }t        |«      ‘Œ c}S c c}w )z×Convert dictionaries representing OpenAI messages to LangChain format.

    Args:
        messages: List of dictionaries representing OpenAI messages

    Returns:
        List of LangChain BaseMessage objects.
    )rP   )ÚmessagesÚms     r    Úconvert_openai_messagesrY   ¦   s"   € ñ 19Ó9±¨1Ô# AÕ&°Ñ9Ð9ùÒ9s   …c                óH  — i }t        | t        «      ro|dk(  rd|d<   d| j                  v r| j                  d   |d<   |dk(  rd |d<   d| j                  v r| j                  d   |d<   |dk(  r-d |d<   n'| j                  |d<   nt	        dt        | «      › �«      ‚|ddik(  ri }|S )	Nr   rD   r@   rE   rB   rF   z%Got unexpected streaming chunk type: rC   )rR   r   rH   rB   Ú
ValueErrorÚtype©Úchunkr   rO   s      r    Ú_convert_message_chunkr_   ²   sÈ   € Ø€EÜ�%œÔ(Ø�Š6à'ˆE�&‰MØ˜e×5Ñ5Ñ5Ø%*×%<Ñ%<¸_Ñ%MˆE�/Ñ"ð �AŠvØ#'��iÑ Ø˜5×2Ñ2Ñ2Ø"'×"9Ñ"9¸,Ñ"GˆE�,Ñð �AŠvØ#'��iÒ à$Ÿ}™}ˆE�)ÒäÐ@ÄÀeÃÀÐNÓOÐOà�˜B�ÒØˆØ€Lr*   c                ó(   — t        | |«      }dd|igiS )Nr9   r<   )r_   r]   s      r    Ú_convert_message_chunk_to_deltara   Î   s!   € Ü" 5¨!Ó,€EØ˜ %Ð(Ð)Ð*Ð*r*   c                  ó<  — e Zd ZdZeedddœ	 	 	 	 	 	 	 	 	 dd„«       «       Zeeddœ	 	 	 	 	 	 	 	 	 dd„«       «       Zedddœ	 	 	 	 	 	 	 	 	 dd„«       Zeedddœ	 	 	 	 	 	 	 	 	 dd	„«       «       Zeeddœ	 	 	 	 	 	 	 	 	 dd
„«       «       Zedddœ	 	 	 	 	 	 	 	 	 dd„«       Zy)ÚChatCompletionzChat completion.Ú
ChatOpenAIF©ÚproviderÚstreamc                ó   — y r%   r   ©rW   rf   rg   Úkwargss       r    ÚcreatezChatCompletion.createÖ   s   € ð r*   ©rf   c                ó   — y r%   r   ri   s       r    rk   zChatCompletion.createà   ó   € ð r*   c               óò   — t        j                  d«      }t        ||«      } |di |¤Ž}t        | «      }|s!|j	                  |«      }ddt        |«      igiS d„ t        |j                  |«      «      D «       S )Núlangchain.chat_modelsr9   r4   c              3  ó:   K  — | ]  \  }}t        ||«      –— Œ y ­wr%   ©ra   ©Ú.0r   Úcs      r    Ú	<genexpr>z(ChatCompletion.create.<locals>.<genexpr>ú   s#   è ø€ ð áN‘D�A�qô 0°°1×5ÙNùs   ‚r   )Ú	importlibÚimport_moduler&   rY   ÚinvokerU   Ú	enumeraterg   ©	rW   rf   rg   rj   ÚmodelsÚ	model_clsÚmodel_configÚconverted_messagesÚresults	            r    rk   zChatCompletion.createê   s‰   € ô ×(Ñ(Ð)@ÓAˆÜ˜F HÓ-ˆ	Ù Ñ* 6Ñ*ˆÜ4°XÓ>ÐÙØ!×(Ñ(Ð);Ó<ˆFØ Ô,CÀFÓ,KÐ LÐMÐNÐNñä% l×&9Ñ&9Ð:LÓ&MÔNóð r*   c             ‹  ó   K  — y ­wr%   r   ri   s       r    ÚacreatezChatCompletion.acreateÿ   s   è ø€ ð ùó   ‚c             ‹  ó   K  — y ­wr%   r   ri   s       r    r‚   zChatCompletion.acreate	  ó   è ø€ ð ùrƒ   c             ‹  ó  K  — t        j                  d«      }t        ||«      } |di |¤Ž}t        | «      }|s)|j	                  |«      ƒ d {  –—† }ddt        |«      igiS d„ t        |j                  |«      «      2 «       S 7 Œ5­w)Nrp   r9   r4   c               óL   K  — | 3 d {  –—† \  }}t        ||«      ­–— Œ7 Œ6 y ­wr%   rr   rs   s      r    rv   z)ChatCompletion.acreate.<locals>.<genexpr>#  s1   è ø€ ÷ ð á˜!˜Qô 0°°1×5Ð5ðøñ ùs   ‚$„"ˆ ‰"Œ$ "¢$r   )rw   rx   r&   rY   ÚainvokerU   r!   Úastreamr{   s	            r    r‚   zChatCompletion.acreate  s–   è ø€ ô ×(Ñ(Ð)@ÓAˆÜ˜F HÓ-ˆ	Ù Ñ* 6Ñ*ˆÜ4°XÓ>ÐÙØ'×/Ñ/Ð0BÓC×CˆFØ Ô,CÀFÓ,KÐ LÐMÐNÐNñä",¨\×-AÑ-AÐBTÓ-UÔ"Vóð ð Dús   ‚ABÁBÁ6BN)
rW   úSequence[Dict[str, Any]]rf   r+   rg   úLiteral[False]rj   r   r,   r3   ©
rW   rŠ   rf   r+   rg   úLiteral[True]rj   r   r,   r   )
rW   rŠ   rf   r+   rg   Úboolrj   r   r,   zUnion[dict, Iterable]©
rW   rŠ   rf   r+   rg   r�   rj   r   r,   r   )
rW   rŠ   rf   r+   rg   rŽ   rj   r   r,   zUnion[dict, AsyncIterator]©r-   r.   r/   r0   r   Ústaticmethodrk   r‚   r   r*   r    rc   rc   Ó   så  „ ÙàØð %Ø!&ñ	Ø*ðð ðð ð	ð
 ðð 
òó ó ðð Øð %ñØ*ðð ðð ð	ð
 ðð 
òó ó ðð ð %Øñ	Ø*ðð ðð ð	ð
 ðð 
òó ðð( Øð %Ø!&ñ	Ø*ðð ðð ð	ð
 ðð 
òó ó ðð Øð %ñØ*ðð ðð ð	ð
 ðð 
òó ó ðð ð %Øñ	Ø*ðð ðð ð	ð
 ðð 
$òó ñr*   rc   c           	     ó`   — t        | d   D �cg c]  }t        |t        «      ‘Œ c}«      S c c}w )z/Check if chat session has an assistant message.rW   )ÚanyrR   r   )ÚsessionrX   s     r    Ú_has_assistant_messager•   )  s-   € ä°'¸*Ò2EÓFÑ2E¨Q”
˜1œiÕ(Ð2EÑFÓGÐGùÒFs   �+c           
     ó†   — | D ��cg c])  }t        |«      r|d   D �cg c]  }t        |«      ‘Œ c}‘Œ+ c}}S c c}w c c}}w )z²Convert messages to a list of lists of dictionaries for fine-tuning.

    Args:
        sessions: The chat sessions.

    Returns:
        The list of lists of dictionaries.
    rW   )r•   rU   )Úsessionsr”   Úss      r    Úconvert_messages_for_finetuningr™   .  sP   € ñ  ôáˆGÜ! 'Ô*ð .5°ZÒ-@ÓAÑ-@¨Ô	  Õ	#Ð-@ÓAØòð ùÚAùós   †=�8¯=¸=c                  ó<  — e Zd ZdZeedddœ	 	 	 	 	 	 	 	 	 dd„«       «       Zeeddœ	 	 	 	 	 	 	 	 	 dd„«       «       Zedddœ	 	 	 	 	 	 	 	 	 dd„«       Zeedddœ	 	 	 	 	 	 	 	 	 dd	„«       «       Zeeddœ	 	 	 	 	 	 	 	 	 dd
„«       «       Zedddœ	 	 	 	 	 	 	 	 	 dd„«       Zy)ÚCompletionszCompletions.rd   Fre   c                ó   — y r%   r   ri   s       r    rk   zCompletions.createC  s   € ð r*   rl   c                ó   — y r%   r   ri   s       r    rk   zCompletions.createM  rn   r*   c               ó  — t        j                  d«      }t        ||«      } |di |¤Ž}t        | «      }|s1|j	                  |«      }t        t        t        |«      ¬«      g¬«      S d„ t        |j                  |«      «      D «       S )Nrp   ©r4   ©r9   c           	   3  ód   K  — | ](  \  }}t        t        t        ||«      ¬ «      g¬«      –— Œ* y­w)©r<   r    N©r>   r;   r_   rs   s      r    rv   z%Completions.create.<locals>.<genexpr>i  s?   è ø€ ð ñ O‘D�A�qô $Ü(Ô/EÀaÈÓ/KÔLÐM÷ð ñ Oùs   ‚.0r   )
rw   rx   r&   rY   ry   r8   r2   rU   rz   rg   r{   s	            r    rk   zCompletions.createW  s�   € ô ×(Ñ(Ð)@ÓAˆÜ˜F HÓ-ˆ	Ù Ñ* 6Ñ*ˆÜ4°XÓ>ÐÙØ!×(Ñ(Ð);Ó<ˆFÜ"ÜÔ(?ÀÓ(GÔHÐIôð ñô & l×&9Ñ&9Ð:LÓ&MÔNó	ð r*   c             ‹  ó   K  — y ­wr%   r   ri   s       r    r‚   zCompletions.acreatep  s   è ø€ ð ùrƒ   c             ‹  ó   K  — y ­wr%   r   ri   s       r    r‚   zCompletions.acreatez  r…   rƒ   c             ‹  ó.  K  — t        j                  d«      }t        ||«      } |di |¤Ž}t        | «      }|s9|j	                  |«      ƒ d {  –—† }t        t        t        |«      ¬«      g¬«      S d„ t        |j                  |«      «      2 «       S 7 ŒE­w)Nrp   rŸ   r    c           	    óv   K  — | 3 d {  –—† \  }}t        t        t        ||«      ¬«      g¬«      ­–— Œ17 Œ,6 y ­w)Nr¢   r    r£   rs   s      r    rv   z&Completions.acreate.<locals>.<genexpr>–  sF   è ø€ ÷ ð ñ ˜!˜Qô $Ü(Ô/EÀaÈÓ/KÔLÐM÷ñ ðøñ ùs   ‚9„7ˆ5‰7Œ)9µ7·9r   )
rw   rx   r&   rY   rˆ   r8   r2   rU   r!   r‰   r{   s	            r    r‚   zCompletions.acreate„  s�   è ø€ ô ×(Ñ(Ð)@ÓAˆÜ˜F HÓ-ˆ	Ù Ñ* 6Ñ*ˆÜ4°XÓ>ÐÙØ'×/Ñ/Ð0BÓC×CˆFÜ"ÜÔ(?ÀÓ(GÔHÐIôð ñô #-¨\×-AÑ-AÐBTÓ-UÔ"Vó	ð ð Dús   ‚ABÁBÁABN)
rW   rŠ   rf   r+   rg   r‹   rj   r   r,   r8   rŒ   )
rW   rŠ   rf   r+   rg   rŽ   rj   r   r,   z Union[ChatCompletions, Iterable]r�   )
rW   rŠ   rf   r+   rg   rŽ   rj   r   r,   z%Union[ChatCompletions, AsyncIterator]r�   r   r*   r    r›   r›   @  så  „ ÙàØð %Ø!&ñ	Ø*ðð ðð ð	ð
 ðð 
òó ó ðð Øð %ñØ*ðð ðð ð	ð
 ðð 
òó ó ðð ð %Øñ	Ø*ðð ðð ð	ð
 ðð 
*òó ðð0 Øð %Ø!&ñ	Ø*ðð ðð ð	ð
 ðð 
òó ó ðð Øð %ñØ*ðð ðð ð	ð
 ðð 
òó ó ðð ð %Øñ	Ø*ðð ðð ð	ð
 ðð 
/òó ñr*   r›   c                  ó   — e Zd ZdZdd„Zy)ÚChatzChat.c                ó"   — t        «       | _        y r%   )r›   Úcompletions)r'   s    r    Ú__init__zChat.__init__¡  s   € Ü&›=ˆÕr*   N)r,   ÚNone)r-   r.   r/   r0   r¬   r   r*   r    r©   r©   ž  s
   „ Ùô)r*   r©   )r   )r   zAsyncIterator[Any]r   Úintr,   zAsyncIterator[tuple[int, Any]])rO   zMapping[str, Any]r,   r   )r4   r   r,   r3   )rW   rŠ   r,   zList[BaseMessage])r^   r   r   r®   r,   r3   )r^   r   r   r®   r,   zDict[str, Any])r”   r   r,   rŽ   )r—   zIterable[ChatSession]r,   zList[List[dict]]).Ú
__future__r   rw   Útypingr   r   r   r   r   r	   r
   r   r   Úlangchain_core.chat_sessionsr   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   Úpydanticr   Útyping_extensionsr   r!   r#   r2   r8   r;   r>   rP   rU   rY   r_   ra   rc   r•   r™   r›   r©   Úchatr   r*   r    Ú<module>r¶      sü   ðÝ "ã ÷
÷ 
õ 
õ 5÷
÷ 
õ 
õ Ý %ð 01ðØ ðØ),ðà#óô#˜ô #ôÐô ôÐ(ô ôÐ$ô ôÐ,ô ó&HóR1óh	:óó8+÷
Sñ SólHð
Ø#ðàó÷$[ñ [÷|)ñ )ñ ƒv�r*   