Ë
    µŒj2/  ã                   ó  — 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 d dl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mZmZmZ d dl m!Z!m"Z"m#Z# d dl$m%Z% d d	l&m'Z' d d
l(m)Z)m*Z*m+Z+ d dl,m-Z- dedee   defd„Z.dedefd„Z/ eddd¬«       G d„ de«      «       Z0de1deegef   deegef   fd„Z2ddœde0de1dee   dedef
d „Z3ddœde0de1dee   dedef
d!„Z4ddœde0de1dee   dedef
d"„Z5	 d$de0dee	eef      deegef   fd#„Z6y)%é    )	ÚAnyÚAsyncIteratorÚCallableÚDictÚIteratorÚListÚOptionalÚTypeÚUnion)Ú
deprecated)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModel)Úcreate_base_retry_decorator)Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚChatMessageChunkÚFunctionMessageÚFunctionMessageChunkÚHumanMessageÚHumanMessageChunkÚSystemMessageÚSystemMessageChunk)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)Úconvert_to_secret_str)Úget_from_dict_or_env)ÚFieldÚ	SecretStrÚmodel_validator©Úconvert_message_to_dictÚ_dictÚdefault_classÚreturnc                 óh  — | j                   }| j                  xs d}i }|dk(  s	|t        k(  rt        |¬«      S |dk(  s	|t        k(  rt        ||¬«      S |dk(  s	|t        k(  rt	        |¬«      S |dk(  s	|t
        k(  rt        || j                  ¬«      S |s	|t        k(  rt        ||¬	«      S  ||¬«      S )
z,Convert a delta response to a message chunk.Ú Úuser©ÚcontentÚ	assistant©r.   Úadditional_kwargsÚsystemÚfunction©r.   Úname©r.   Úrole)r7   r.   r   r   r   r   r5   r   )r'   r(   r7   r.   r1   s        ús/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/chat_models/fireworks.pyÚ_convert_delta_to_message_chunkr9   *   s·   € ð �:‰:€DØ�m‰mÒ!˜r€GØ Ðàˆv‚~˜Ô*;Ò;Ü ¨Ô1Ð1Ø	�Ò	 ´Ò ?Ü gÐARÔSÐSØ	�Ò	˜]Ô.@Ò@Ü!¨'Ô2Ð2Ø	�Ò	˜}Ô0DÒDÜ#¨G¸%¿*¹*ÔEÐEÙ	�Ô"2Ò2Ü¨°dÔ;Ð;á WÔ-Ð-ó    c                 ó  — | j                   }| j                  xs d}|dk(  rt        |¬«      S |dk(  r| j                  }i }t        ||¬«      S |dk(  rt	        |¬«      S |dk(  rt        || j                  ¬«      S t        ||¬	«      S )
z%Convert a dict response to a message.r+   r,   r-   r/   r0   r2   r3   r4   r6   )r7   r.   r   r   r   r   r5   r   )r'   r7   r.   r1   s       r8   Úconvert_dict_to_messager<   @   s‰   € à�:‰:€DØ�m‰mÒ!˜r€GØˆv‚~Ü GÔ,Ð,Ø	�Ò	Ø—-‘-ˆØ"$ÐÜ Ð<MÔNÐNØ	�Ò	Ü WÔ-Ð-Ø	�Ò	Ü w°U·Z±ZÔ@Ð@ä 7°Ô6Ð6r:   z0.0.26z1.0z!langchain_fireworks.ChatFireworks)ÚsinceÚremovalÚalternative_importc                   óN  — e Zd ZU dZdZeed<    ed„ ¬«      Ze	ed<   dZ
ee   ed<   d	Zeed
<   dZeed<   edeeef   fd„«       Zedefd„«       Zedee   fd„«       Z ed¬«      ededefd„«       «       Zedefd„«       Z	 	 d#dee   deee      dee   dedef
d„Z	 	 d#dee   deee      dee    dedef
d„Z!deee	      de	fd„Z"dedefd„Z#dee   deeeef      fd „Z$	 	 d#dee   deee      dee   dede%e&   f
d!„Z'	 	 d#dee   deee      dee    dede(e&   f
d"„Z)y)$ÚChatFireworkszFireworks Chat models.z*accounts/fireworks/models/llama-v2-7b-chatÚmodelc                  ó*   — ddddœj                  «       S )Ngffffffæ?i   é   )ÚtemperatureÚ
max_tokensÚtop_p)Úcopy© r:   r8   Ú<lambda>zChatFireworks.<lambda>\   s   € ØØØñ!
÷ ‰$‹&ð	!r:   )Údefault_factoryÚmodel_kwargsNÚfireworks_api_keyé   Úmax_retriesTÚ	use_retryr)   c                 ó
   — ddiS )NrM   ÚFIREWORKS_API_KEYrI   ©Úselfs    r8   Ú
lc_secretszChatFireworks.lc_secretsf   s   € à#Ð%8Ð9Ð9r:   c                  ó   — y)NTrI   ©Úclss    r8   Úis_lc_serializablez ChatFireworks.is_lc_serializablej   s   € àr:   c                 ó
   — g d¢S )z*Get the namespace of the langchain object.)Ú	langchainÚchat_modelsÚ	fireworksrI   rW   s    r8   Úget_lc_namespacezChatFireworks.get_lc_namespacen   s
   € ò 9Ð8r:   Úbefore)ÚmodeÚvaluesc                 ó´   — 	 ddl }t        t        |dd«      «      }|j	                  «       |j
                  _        |S # t        $ r}t        d«      |‚d}~ww xY w)z%Validate that api key in environment.r   Nz`Could not import fireworks-ai python package. Please install it with `pip install fireworks-ai`.rM   rR   )Úfireworks.clientÚImportErrorr    r!   Úget_secret_valueÚclientÚapi_key)rX   ra   r]   ÚerM   s        r8   Úvalidate_environmentz"ChatFireworks.validate_environments   sm   € ð	Û#ô 2Ü  Ð)<Ð>QÓRó
Ðð $5×#EÑ#EÓ#Gˆ	×ÑÔ Øˆøô ò 	ÜðEóð ðûð	ús   ‚= ½	AÁAÁAc                  ó   — y)zReturn type of llm.zfireworks-chatrI   rS   s    r8   Ú	_llm_typezChatFireworks._llm_type„   s   € ð  r:   ÚmessagesÚstopÚrun_managerÚkwargsc                 ó´   — | j                  |«      }| j                  |dœ| j                  ¥|¥}t        | | j                  f||dœ|¤Ž}| j                  |«      S ©N)rB   rl   ©rn   rm   )Ú_create_message_dictsrB   rL   Úcompletion_with_retryrP   Ú_create_chat_result©rT   rl   rm   rn   ro   Úmessage_dictsÚparamsÚresponses           r8   Ú	_generatezChatFireworks._generate‰   s�   € ð ×2Ñ2°8Ó<ˆð —Z‘ZØ%ñ
ð ×Ñð
ð ð	
ˆô )ØØ�N‰Nð
ð $Øñ	
ð
 ñ
ˆð ×'Ñ'¨Ó1Ð1r:   c              ‹   óÐ   K  — | j                  |«      }| j                  |dœ| j                  ¥|¥}t        | | j                  f||dœ|¤Žƒ d {  –—† }| j                  |«      S 7 Œ­wrq   )rs   rB   rL   Úacompletion_with_retryrP   ru   rv   s           r8   Ú
_ageneratezChatFireworks._agenerate¡   s‡   è ø€ ð ×2Ñ2°8Ó<ˆà—Z‘ZØ%ñ
ð ×Ñð
ð ð	
ˆô 0Ø�$—.‘.ð
Ø.9Àñ
ØHNñ
÷ 
ˆð ×'Ñ'¨Ó1Ð1ð
ús   ‚AA&ÁA$ÁA&Úllm_outputsc                 ó   — |d   €i S |d   S )Nr   rI   )rT   r~   s     r8   Ú_combine_llm_outputsz"ChatFireworks._combine_llm_outputs´   s   € Ø�q‰>Ð!ØˆIØ˜1‰~Ðr:   ry   c                 óì   — g }|j                   D ]I  }t        |j                  «      }t        |t	        |j
                  ¬«      ¬«      }|j                  |«       ŒK d| j                  i}t        ||¬«      S )N©Úfinish_reason©ÚmessageÚgeneration_inforB   )ÚgenerationsÚ
llm_output)	Úchoicesr<   r…   r   Údictrƒ   ÚappendrB   r   )rT   ry   r‡   Úresr…   Úgenrˆ   s          r8   ru   z!ChatFireworks._create_chat_result¹   sm   € ØˆØ×#Ô#ˆCÜ-¨c¯k©kÓ:ˆGÜ ØÜ $°3×3DÑ3DÔ EôˆCð ×Ñ˜sÕ#ð $ð ˜tŸz™zÐ*ˆ
Ü k¸jÔIÐIr:   c                 ó@   — |D �cg c]  }t        |«      ‘Œ }}|S c c}w ©Nr%   )rT   rl   Úmrw   s       r8   rs   z#ChatFireworks._create_message_dictsÅ   s+   € ñ >FÓF¹X¸Ô0°Õ3¸XˆÐFØÐùò Gs   …c              +   ó®  K  — | j                  |«      }t        }| j                  |ddœ| j                  ¥|¥}t	        | | j
                  f||dœ|¤ŽD ]  }|j                  d   }	t        |	j                  |«      }|	j                  }
|
�t        |
¬«      nd }|j                  }t        ||¬«      }|r|j                  |j                  |¬«       |–— Œ� y ­w)NT©rB   rl   Ústreamrr   r   r‚   r„   )Úchunk)rs   r   rB   rL   rt   rP   r‰   r9   Údeltarƒ   rŠ   Ú	__class__r   Úon_llm_new_tokenÚtext©rT   rl   rm   rn   ro   rw   Údefault_chunk_classrx   r”   Úchoicerƒ   r†   Úcg_chunks                r8   Ú_streamzChatFireworks._streamË   sõ   è ø€ ð ×2Ñ2°8Ó<ˆÜ6DÐà—Z‘ZØ%Øñ
ð ×Ñð	
ð
 ð
ˆô +Ø�$—.‘.ð
Ø.9Àñ
ØHNô
ˆEð —]‘] 1Ñ%ˆFÜ3°F·L±LÐBUÓVˆEØ"×0Ñ0ˆMà5BÐ5N” =Õ1ÐTXð ð #(§/¡/ÐÜ*Ø¨ôˆHñ Ø×,Ñ,¨X¯]©]À(Ð,ÔKØ‹Nñ
ùs   ‚CCc                óè  K  — | j                  |«      }t        }| j                  |ddœ| j                  ¥|¥}t	        | | j
                  f||dœ|¤Žƒ d {  –—† 2 3 d {  –—† }|j                  d   }	t        |	j                  |«      }|	j                  }
|
�t        |
¬«      nd }|j                  }t        ||¬«      }|r%|j                  |j                  |¬«      ƒ d {  –—†  |­–— Œ�7 Œ”7 Œ�7 Œ6 y ­w)NTr’   rr   r   r‚   r„   )Útokenr”   )rs   r   rB   rL   Ú acompletion_with_retry_streamingrP   r‰   r9   r•   rƒ   rŠ   r–   r   r—   r˜   r™   s                r8   Ú_astreamzChatFireworks._astreamì   s  è ø€ ð ×2Ñ2°8Ó<ˆÜ6DÐà—Z‘ZØ%Øñ
ð ×Ñð	
ð
 ð
ˆô "BØ�$—.‘.ð"
Ø.9Àñ"
ØHNñ"
÷ 
ð 
÷ 	�%ð —]‘] 1Ñ%ˆFÜ3°F·L±LÐBUÓVˆEØ"×0Ñ0ˆMà5BÐ5N” =Õ1ÐTXð ð #(§/¡/ÐÜ*Ø¨ôˆHñ Ø!×2Ñ2¸¿¹ÈhÐ2ÓW×WÐWØŒNð
øð 	øð Xøñ
ùsI   ‚AC2ÁC*ÁC2ÁC0ÁC,ÁC0Á"A=C2ÃC.Ã C2Ã,C0Ã.C2Ã0C2)NN)*Ú__name__Ú
__module__Ú__qualname__Ú__doc__rB   ÚstrÚ__annotations__r"   rL   rŠ   rM   r	   r#   rO   ÚintrP   ÚboolÚpropertyr   rU   ÚclassmethodrY   r   r^   r$   r   ri   rk   r   r   r   rz   r   r}   r€   ru   rs   r   r   r�   r   r¡   rI   r:   r8   rA   rA   R   sœ  … ñ !à=€Eˆ3Ó=Ùñô€L�$ó ð .2Ð�x 	Ñ*Ó1Ø€K�ÓØ€IˆtÓàð:˜D  c ™Nò :ó ð:ð ð 4ò ó ðð ð9  c¡ò 9ó ð9ñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð ð ˜3ò  ó ð ð %)Ø:>ñ	2à�{Ñ#ð2ð �t˜C‘yÑ!ð2ð Ð6Ñ7ð	2ð
 ð2ð 
ó2ð6 %)Ø?Cñ	2à�{Ñ#ð2ð �t˜C‘yÑ!ð2ð Ð;Ñ<ð	2ð
 ð2ð 
ó2ð&°°X¸d±^Ñ0Dð Èó ð

J¨Cð 
J°Jó 
JðØ˜[Ñ)ðà	ˆd�3˜�8‰nÑ	óð %)Ø:>ñ	à�{Ñ#ðð �t˜C‘yÑ!ðð Ð6Ñ7ð	ð
 ðð 
Ð%Ñ	&óðH %)Ø?Cñ	à�{Ñ#ðð �t˜C‘yÑ!ðð Ð;Ñ<ð	ð
 ðð 
Ð*Ñ	+ôr:   rA   Ú	conditionÚ	decoratorc                 óh   ‡ ‡— dt         t        gt        f   dt         t        gt        f   fˆ ˆfd„}|S )zŸDefine conditional decorator.

    Args:
        condition: The condition.
        decorator: The decorator.

    Returns:
        The decorated function.
    Úfuncr)   c                 ó   •— ‰r ‰| «      S | S r�   rI   )r¯   r¬   r­   s    €€r8   Úactual_decoratorz/conditional_decorator.<locals>.actual_decorator  s   ø€ ÙÙ˜T“?Ð"Øˆr:   )r   r   )r¬   r­   r±   s   `` r8   Úconditional_decoratorr²     s4   ù€ ðœx¬¨¬s¨
Ñ3ð ¼Ä#ÀÌÀÑ8Lö ð
 Ðr:   N©rn   ÚllmrP   rn   ro   c                óx   ‡— ddl Št        | |¬«      }t        ||«      dt        dt        fˆfd„«       } |di |¤ŽS )ú*Use tenacity to retry the completion call.r   Nr³   ro   r)   c                  óP   •—  ‰j                   j                  j                  di | ¤ŽS )r¶   rI   )rf   ÚChatCompletionÚcreate©ro   r]   s    €r8   Ú_completion_with_retryz5completion_with_retry.<locals>._completion_with_retry/  s.   ø€ ð 6ˆy×Ñ×.Ñ.×5Ñ5ñ 
Øñ
ð 	
r:   rI   ©rc   Ú_create_retry_decoratorr²   r   ©r´   rP   rn   ro   Úretry_decoratorr»   r]   s         @r8   rt   rt   #  sK   ø€ ó ä-¨c¸{ÔK€Oä˜9 oÓ6ð
¬ð 
´ô 
ó 7ð
ñ "Ñ+ FÑ+Ð+r:   c             ‹   ó”   ‡K  — ddl Št        | |¬«      }t        ||«      dt        dt        fˆfd„«       } |di |¤Žƒ d{  –—† S 7 Œ­w)z0Use tenacity to retry the async completion call.r   Nr³   ro   r)   c               ›   ól   •K  —  ‰j                   j                  j                  di | ¤Žƒ d {  –—† S 7 Œ­w©NrI   ©rf   r¸   Úacreaterº   s    €r8   r»   z6acompletion_with_retry.<locals>._completion_with_retryE  s:   øè ø€ à<�Y×%Ñ%×4Ñ4×<Ñ<ñ 
Øñ
÷ 
ð 	
ð 
ús   ƒ*4­2®4rI   r¼   r¾   s         @r8   r|   r|   9  óU   øè ø€ ó ä-¨c¸{ÔK€Oä˜9 oÓ6ð
¬sð 
´sô 
ó 7ð
ñ
 (Ñ1¨&Ñ1×1Ð1Ð1úó   ƒ>AÁAÁAc             ‹   ó”   ‡K  — ddl Št        | |¬«      }t        ||«      dt        dt        fˆfd„«       } |di |¤Žƒ d{  –—† S 7 Œ­w)z8Use tenacity to retry the completion call for streaming.r   Nr³   ro   r)   c               ›   óX   •K  —  ‰j                   j                  j                  di | ¤ŽS ­wrÂ   rÃ   rº   s    €r8   r»   z@acompletion_with_retry_streaming.<locals>._completion_with_retryZ  s0   øè ø€ à6ˆy×Ñ×.Ñ.×6Ñ6ñ 
Øñ
ð 	
ùs   ƒ'*rI   r¼   r¾   s         @r8   r    r    N  rÅ   rÆ   c                 ó6  — ddl }|j                  j                  j                  |j                  j                  j                  |j                  j                  j
                  |j                  j                  j                  g}t        || j                  |¬«      S )zDefine retry mechanism.r   N)Úerror_typesrO   rn   )	rc   rf   ÚerrorÚRateLimitErrorÚInternalServerErrorÚBadGatewayErrorÚServiceUnavailableErrorr   rO   )r´   rn   r]   Úerrorss       r8   r½   r½   c  s~   € ó ð 	×Ñ×Ñ×-Ñ-Ø×Ñ×Ñ×2Ñ2Ø×Ñ×Ñ×.Ñ.Ø×Ñ×Ñ×6Ñ6ð	€Fô 'Ø¨¯©À[ôð r:   r�   )7Útypingr   r   r   r   r   r   r	   r
   r   Úlangchain_core._api.deprecationr   Úlangchain_core.callbacksr   r   Ú*langchain_core.language_models.chat_modelsr   Ú#langchain_core.language_models.llmsr   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   r   r   r   Úlangchain_core.outputsr   r   r   Úlangchain_core.utilsr    Úlangchain_core.utils.envr!   Úpydanticr"   r#   r$   Ú#langchain_community.adapters.openair&   r9   r<   rA   r©   r²   rt   r|   r    r½   rI   r:   r8   Ú<module>rÜ      sè  ð÷
÷ 
õ 
õ 7÷õ EÝ K÷÷ ÷ ó ÷ SÑ RÝ 6Ý 9ß 6Ñ 6å Gð.Øð.Ø#Ð$4Ñ5ð.àó.ð,7 3ð 7¨;ó 7ñ$ Ø
ØØ:ôô
t�Mó tóð
tðnØðØ (¨#¨°¨Ñ 4ðàˆsˆe�SˆjÑóð2 7;ò	,Ø	ð,àð,ð Ð2Ñ3ð	,ð
 ð,ð 	ó,ð4 <@ò	2Ø	ð2àð2ð Ð7Ñ8ð	2ð
 ð2ð 	ó2ð2 <@ò	2Ø	ð2àð2ð Ð7Ñ8ð	2ð
 ð2ð 	ó2ð2 	ñ	Ø	ðàØÐ+Ð-EÐEÑFñðð
 ˆsˆe�SˆjÑôr:   