§
    xÅjDÛ  ã            	       óÎ  — 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m	Z	m
Z
 d dlZd dlmZmZmZmZmZmZ d dlmZ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  d dl!m"Z"m#Z#m$Z$m%Z% e	r&d dlm&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 	 d dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZA n# eB$ r  ed¦  «        ‚w xY w G d„ de
¦  «        ZC	 d dlDmEZE n"# eB$ r 	 d dlFmEZE n# eBeGf$ r dZEY nw xY wY nw xY w	 d dlHmIZI n# eB$ r dZIY nw xY w	 d dlHmJZJ n# eB$ r dZJY nw xY w	 d dlKmLZL n# eB$ r dZLY nw xY w	 d dlMmNZN n# eB$ r dZNY nw xY w	 d dlOmPZP n# eB$ r dZPY nw xY w	 d dlQmRZR n# eB$ r dZRY nw xY w	 d dlSmTZT n# eB$ r dZTY nw xY w	 d dlUmVZV n# eB$ r dZVY nw xY wdXd#„ZWejX        ejY        ejZ        ej[        ej\        ejY        ej]        ej^        d$œZ_	 	 	 	 dYd&„Z`dZd)„Zad[d-„Zb	 	 	 	 d\d0„Zc G d1„ d2e¦  «        Zdd]d^d6„Ze G d7„ d8e5¦  «        Zf	 	 	 	 d_d;„Zg	 	 	 	 d`d>„ZhdadA„Zi	 	 	 	 	 	 dbdF„Zj	 	 	 	 	 	 	 	 dcdJ„ZkdddM„ZldedN„ZmdfdQ„ZndfdR„ZodfdS„ZpdgdU„ZqdfdV„ZrdfdW„ZsdS )hé    N)ÚOrderedDict©Úwraps)ÚTYPE_CHECKINGÚ
NamedTuple)ÚGEN_AI_ALLOWED_MESSAGE_ROLESÚget_start_span_functionÚnormalize_message_rolesÚset_data_normalizedÚtransform_content_partÚtruncate_and_annotate_messages)ÚOPÚSPANDATA)ÚDidNotEnableÚIntegration)Úshould_send_default_pii)ÚStreamedSpan)Ú
_get_valueÚhas_span_streaming_enabledÚshould_truncate_gen_ai_input)Úcapture_internal_exceptionsÚevent_from_exceptionÚhas_data_collection_enabledÚlogger)ÚAnyÚAsyncIteratorÚCallableÚDictÚIteratorÚListÚOptionalÚUnion)ÚUUID)ÚTextPart)ÚSpan)ÚBaseCallbackHandlerÚBaseCallbackManagerÚ	CallbacksÚmanager)Ú	AIMessageÚBaseMessage)ÚChatGenerationÚChatGenerationChunkÚ
GenerationÚGenerationChunkÚ	LLMResultzlangchain not installedc                   óL   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   dS )	Ú
TokenUsageúOptional[int]Úinput_tokensÚoutput_tokensÚtotal_tokensÚ
cache_readÚcache_creationÚ	reasoningN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úRC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/langchain.pyr2   r2   G   sZ   € € € € € € Ø!Ð!Ð!Ñ!Ø"Ð"Ð"Ñ"Ø!Ð!Ð!Ñ!ØÐÐÑØ#Ð#Ð#Ñ#ØÐÐÑÐÐr?   r2   )ÚAgentExecutor)ÚOpenAIEmbeddings)ÚAzureOpenAIEmbeddings)ÚVertexAIEmbeddings)ÚBedrockEmbeddings)ÚCohereEmbeddings)ÚMistralAIEmbeddings)ÚHuggingFaceEmbeddings)ÚOllamaEmbeddingsÚ
all_paramsúDict[str, Any]ÚreturnúOptional[str]c                 ób   — |                       d¦  «        }|rt          |t          ¦  «        sd S |S )NÚ_type)ÚgetÚ
isinstanceÚstr)rJ   Úai_types     r@   Ú_get_ai_systemrT   Œ   s6   € Ø�nŠn˜WÑ%Ô%€Gàð �* W­cÑ2Ô2ð Øˆtà€Nr?   )Úfrequency_penaltyÚfunction_callÚ
max_tokensÚpresence_penaltyÚtemperatureÚ
tool_callsÚtop_kÚtop_pÚcontent_blockc                 ó,   — t          | ¦  «        }|�|n| S )zà
    Transform a LangChain content block using the shared transform_content_part function.

    Returns the original content block if transformation is not applicable
    (e.g., for text blocks or unrecognized formats).
    )r   )r]   Úresults     r@   Ú"_transform_langchain_content_blockr`   ¢   s    € õ $ MÑ2Ô2€FØÐ'ˆ6ˆ6¨]Ð:r?   Úcontentr   c                 ó  — t          | t          ¦  «        r| S t          | t          t          f¦  «        rVg }| D ]O}t          |t          ¦  «        r#|                     t          |¦  «        ¦  «         Œ:|                     |¦  «         ŒP|S | S )zk
    Transform LangChain message content, handling both string content and
    list of content blocks.
    )rQ   rR   ÚlistÚtupleÚdictÚappendr`   )ra   ÚtransformedÚblocks      r@   Ú$_transform_langchain_message_contentri   ¯   s™   € õ
 �'�3ÑÔð Øˆå�'�D¥%˜=Ñ)Ô)ð ØˆØð 	*ð 	*ˆEÝ˜%¥Ñ&Ô&ð *Ø×"Ò"Õ#EÀeÑ#LÔ#LÑMÔMÐMÐMà×"Ò" 5Ñ)Ô)Ð)Ð)ØÐà€Nr?   ÚmessagesúList[List[BaseMessage]]ú	List[str]c                 ó4  — g }| D �]}|D �]
}|j         dk    r5t          |j        t          ¦  «        r|                     |j        ¦  «         ŒC|j         dk    r¼t          |j        t
          ¦  «        r¢|j        D ]š}t          |t          ¦  «        r|                     |¦  «         Œ-t          |t          ¦  «        rX|                     d¦  «        dk    r?|                     d¦  «        }t          |t          ¦  «        r|                     |¦  «         Œ›�Œ�Œ|S )NÚsystemÚtypeÚtext)ro   rQ   ra   rR   rf   rc   re   rP   )rj   Úsystem_instructionsÚlist_ÚmessageÚitemÚinstructions         r@   Ú_get_system_instructionsrv   Ã   s-  € ØÐàð Dñ DˆØð 	Dñ 	DˆGàŒ|˜xÒ'Ð'­J°w´ÍÑ,LÔ,LÐ'Ø#×*Ò*¨7¬?Ñ;Ô;Ð;Ð;à” Ò)Ð)­j¸¼Í$Ñ.OÔ.OÐ)Ø#œOð Dð D�DÝ! $­Ñ,Ô,ð DØ+×2Ò2°4Ñ8Ô8Ð8Ð8å# D­$Ñ/Ô/ð D°D·H²H¸VÑ4DÔ4DÈÒ4NÐ4NØ&*§h¢h¨vÑ&6Ô&6˜Ý% kµ3Ñ7Ô7ð DØ/×6Ò6°{ÑCÔCÐCøùñ	Dð Ðr?   rq   úList[TextPart]c                 ó   — d„ | D ¦   «         S )Nc                 ó   — g | ]}d |dœ‘ŒS )rp   )ro   ra   r>   )Ú.0ru   s     r@   ú
<listcomp>z2_transform_system_instructions.<locals>.<listcomp>Ü   s7   € ð ð ð ð
 ð Ø"ð	
ð 	
ðð ð r?   r>   )rq   s    r@   Ú_transform_system_instructionsr|   Ù   s%   € ðð ð
 /ðñ ô ð r?   c            	       ór   — e Zd ZU dZde› �Z e¦   «         Zded<   	 	 ddd ded	d
ddfd„Z	e
dd„¦   «         ZdS )ÚLangchainIntegrationÚ	langchainzauto.ai.zset[type[Exception]]Ú_ignored_exceptionsTNÚselfÚinclude_promptsÚ	max_spansr3   rL   c                 ób   — || _         || _        |�t          j        dt          d¬¦  «         d S d S )NzsThe `max_spans` parameter of `LangchainIntegration` is deprecated and will be removed in version 3.0 of sentry-sdk.é   )Ú
stacklevel)r‚   rƒ   ÚwarningsÚwarnÚDeprecationWarning)r�   r‚   rƒ   s      r@   Ú__init__zLangchainIntegration.__init__ë   sP   € ð
  /ˆÔØ"ˆŒàÐ ÝŒMðOå"Øð	ñ ô ð ð ð ð !Ð r?   c                  ó&  — t          t          j        ¦  «        t          _        t          �Ft	          t          j        ¦  «        t          _        t          t          j        ¦  «        t          _        t          t          ¦  «         t          t          ¦  «         t          t          ¦  «         t          t          ¦  «         t          t          ¦  «         t          t          ¦  «         t          t          ¦  «         t          t           ¦  «         d S ©N)Ú_wrap_configurer)   Ú
_configurerA   Ú_wrap_agent_executor_invokeÚinvokeÚ_wrap_agent_executor_streamÚstreamÚ_patch_embeddings_providerrB   rC   rD   rE   rF   rG   rH   rI   r>   r?   r@   Ú
setup_oncezLangchainIntegration.setup_onceû   sÁ   € å,­WÔ-?Ñ@Ô@�ÔåÐ$Ý#>½}Ô?SÑ#TÔ#T�MÔ Ý#>½}Ô?SÑ#TÔ#T�MÔ õ 	#Õ#3Ñ4Ô4Ð4Ý"Õ#8Ñ9Ô9Ð9Ý"Õ#5Ñ6Ô6Ð6Ý"Õ#4Ñ5Ô5Ð5Ý"Õ#3Ñ4Ô4Ð4Ý"Õ#6Ñ7Ô7Ð7Ý"Õ#8Ñ9Ô9Ð9Ý"Õ#3Ñ4Ô4Ð4Ð4Ð4r?   )TN©rL   N)r:   r;   r<   Ú
identifierÚoriginÚsetr€   r=   ÚboolrŠ   Ústaticmethodr”   r>   r?   r@   r~   r~   å   s¥   € € € € € € Ø€JØ$˜
Ð$Ð$€Fà25°#±%´%ÐÐ/Ð7Ð7Ñ7ð !%Ø%)ðð Ø$ðàðð #ðð 
ð	ð ð ð ð  ð5ð 5ð 5ñ „\ð5ð 5ð 5r?   r~   ÚexcÚscopeúOptional[Any]c                 ó�   — t          | t          j        ¦   «         j        dddœ¬¦  «        \  }}t          j        |||¬¦  «         d S )Nr   F)ro   Úhandled)Úclient_optionsÚ	mechanism)Úhintrœ   )r   Ú
sentry_sdkÚ
get_clientÚoptionsÚcapture_event)r›   rœ   Úeventr¢   s       r@   Ú_capture_exceptionr¨     sW   € Ý&ØÝ!Ô,Ñ.Ô.Ô6Ø&°5Ð9Ð9ðñ ô �K€Eˆ4õ
 Ô˜U¨°UÐ;Ñ;Ô;Ð;Ð;Ð;r?   c                   ó’  — e Zd ZdZdddeddfd„Zd8d„Zd9d„Zd:d„Zdd d	d
ddde	de	de	ddfd„Z
	 	 	 	 	 	 	 	 d;d„Zddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d<d'„Z	 	 	 	 	 	 	 	 	 	 	 	 d=d*„Z	 	 	 	 	 	 	 	 	 	 d>d-„Z	 	 	 	 	 	 	 	 	 	 d>d.„Z	 	 	 	 	 	 	 	 	 	 d?d0„Z	 	 	 	 	 	 	 	 	 	 d@d2„Zdd ddd3e	d	d
d&dddfd4„Zdd d5e	d	d
d&dddf
d6„Z	 	 	 	 	 	 	 	 dAd7„ZdS )BÚSentryLangchainCallbackz+Callback handler that creates Sentry spans.Úmax_span_map_sizer3   r‚   rL   Nc                 óH   — t          ¦   «         | _        || _        || _        d S rŒ   )r   Úspan_mapr«   r‚   )r�   r«   r‚   s      r@   rŠ   z SentryLangchainCallback.__init__  s)   € õ \gÑ[hÔ[hˆŒØ!2ˆÔØ.ˆÔÐÐr?   c                 óø   — | j         �pt          | j        ¦  «        | j         k    rU| j                             d¬¦  «        \  }}|                      ||¦  «         t          | j        ¦  «        | j         k    °Qd S d S d S )NF)Úlast)r«   Úlenr­   ÚpopitemÚ
_exit_span)r�   Úrun_idÚspans      r@   Úgc_span_mapz#SentryLangchainCallback.gc_span_map!  s�   € ØÔ!Ð-Ý�d”mÑ$Ô$ tÔ'=Ò=Ð=Ø#œ}×4Ò4¸%Ð4Ñ@Ô@‘�˜Ø—’  fÑ-Ô-Ð-õ �d”mÑ$Ô$ tÔ'=Ò=Ð=Ð=Ð=ð .Ð-Ø=Ð=r?   r³   r#   Úerrorr   c                 óæ  — t          |t          t          j        ¦  «        ¦  «        }t	          ¦   «         5  |r	|| j        vr	 d d d ¦  «         d S | j        |         }|r|                     d d d ¦  «         nZt          |t          |t          ¦  «        r|j	        n|j
        ¦  «         |                     t          |¦  «        ||j        ¦  «         | j        |= d d d ¦  «         d S # 1 swxY w Y   d S rŒ   )rQ   rd   r~   r€   r   r­   Ú__exit__r¨   r   Ú_scoperœ   ro   Ú__traceback__)r�   r³   r¶   Ú
is_ignoredr´   s        r@   Ú_handle_errorz%SentryLangchainCallback._handle_error'  sU  € Ý ¥uÕ-AÔ-UÑ'VÔ'VÑWÔWˆ
å(Ñ*Ô*ð 	&ð 	&Øð ˜V¨4¬=Ð8Ð8Øð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð ”= Ô(ˆDàð GØ—’˜d D¨$Ñ/Ô/Ð/Ð/å"Ø­*°T½<Ñ*HÔ*HÐX˜4œ;˜;ÈdÌjñô ð ð —’�d 5™kœk¨5°%Ô2EÑFÔFÐFà”˜fÐ%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ¶C&ÁB	C&Ã&C*Ã-C*rs   r+   c                 óv   — t          |j        ¦  «        }|j        |dœ}|                     |j        ¦  «         |S )N©Úrolera   )ri   ra   ro   ÚupdateÚadditional_kwargs)r�   rs   Útransformed_contentÚparseds       r@   Ú_normalize_langchain_messagez4SentryLangchainCallback._normalize_langchain_message:  s<   € åBÀ7Ä?ÑSÔSÐØ!œ,Ð3FÐGÐGˆØ�Š�gÔ/Ñ0Ô0Ð0Øˆr?   r�   Ú	parent_idr�   ÚopÚnamer—   ú,Union[sentry_sdk.tracing.Span, StreamedSpan]c                 ó  — d }|rn| j                              |¦  «        }|rRt          |t          ¦  «        r%t          j                             ||||dœ¬¦  «        n|                     |||¬¦  «        }|€bt          t	          j	        ¦   «         j
        ¦  «        }|r$t          j                             |||dœ¬¦  «        nt	          j        |||¬¦  «        }|                     ¦   «          || j         |<   |                      ¦   «          |S )N)ú	sentry.opúsentry.origin)Úparent_spanrÇ   Ú
attributes©rÆ   rÇ   r—   ©rÇ   rÍ   )r­   rP   rQ   r   r£   ÚtracesÚ
start_spanÚstart_childr   r¤   r¥   Ú	__enter__rµ   )	r�   r³   rÅ   rÆ   rÇ   r—   r´   rÌ   Úspan_streamings	            r@   Ú_create_spanz$SentryLangchainCallback._create_spanA  sJ  € ð ˆØð 	à”×!Ò! )Ñ,Ô,ð ð ð õ " +­|Ñ<Ô<ð	R•JÔ%×0Ò0Ø$/Ø!à)+Ø-3ð$ð $ð 1ñ ô ð ð %×0Ò0°B¸TÈ&Ð0ÑQÔQð ð ˆ<Ý7½
Ô8MÑ8OÔ8OÔ8WÑXÔXˆNð "ðL•
Ô!×,Ò,Øà%'Ø)/ð ð  ð -ñ ô ð õ  Ô*¨b°tÀFÐKÑKÔKð ð 	�ŠÑÔÐØ $ˆŒ�fÑØ×ÒÑÔÐØˆr?   r´   c                 óD   — |                      d d d ¦  «         | j        |= d S rŒ   )r¸   r­   )r�   r´   r³   s      r@   r²   z"SentryLangchainCallback._exit_spano  s*   € ð
 	�Š�d˜D $Ñ'Ô'Ð'ØŒM˜&Ð!Ð!Ð!r?   )ÚtagsÚparent_run_idÚmetadataÚ
serializedrK   Úpromptsrl   r×   úOptional[List[str]]rØ   úOptional[UUID]rÙ   úOptional[Dict[str, Any]]Úkwargsc                ó  — t          ¦   «         5  |s	 d d d ¦  «         d S |                     di ¦  «        }|                     |                     di ¦  «        ¦  «         |                     d¦  «        p+|                     d¦  «        p|                     d¦  «        pd}	|                      ||t          j        d|	› �                     ¦   «         t          j        ¬¦  «        }
t          |
t          ¦  «        r|
j        n|
j        } |t          j        d	¦  «         |                     d
¦  «        }|r |t          j        |¦  «         |	r |t          j        |	¦  «         t#          |¦  «        }|r |t          j        |¦  «         t'          j        ¦   «         }t*                               ¦   «         D ]h\  }}||v r_||         �W|t          j        k    r.t1          |j        ¦  «        r|j        d         d         d         sŒOt5          |
|||         d¬¦  «         Œit7          |
|                     d¦  «        ¦  «         d}t1          |j        ¦  «        r|j        d         d         d         }nt9          ¦   «         r	| j        rd}|red„ |D ¦   «         }t'          j        ¦   «         }t?          |j        ¦  «        rtA          ||
|¦  «        n|}|�t5          |
t          j!        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚinvocation_paramsrß   ÚmodelÚ
model_nameÚmodel_idÚ ztext_completion rÎ   Útext_completionrÇ   Údata_collectionÚgen_aiÚinputsF©ÚunpackÚtoolsTc                 ó2   — g | ]}t           j        d |dœdœ‘ŒS )rp   )ro   rp   r¾   )r   ÚUSER)rz   Úprompts     r@   r{   z8SentryLangchainCallback.on_llm_start.<locals>.<listcomp>È  sB   € ð 'ð 'ð 'ð
 õ !=Ô AØ,2¸FÐ#CÐ#Cðð ð'ð 'ð 'r?   )"r   rP   rÀ   rÕ   r   ÚGEN_AI_TEXT_COMPLETIONÚstripr~   r—   rQ   r   Úset_attributeÚset_datar   ÚGEN_AI_OPERATION_NAMEÚGEN_AI_FUNCTION_IDÚGEN_AI_REQUEST_MODELrT   ÚGEN_AI_SYSTEMr£   r¤   ÚDATA_FIELDSÚitemsÚGEN_AI_RESPONSE_TOOL_CALLSr   r¥   r   Ú_set_tools_on_spanr   r‚   Úget_current_scoper   r   ÚGEN_AI_REQUEST_MESSAGES)r�   rÚ   rÛ   r³   r×   rØ   rÙ   rß   rJ   râ   r´   Úset_on_spanÚrun_nameÚ	ai_systemÚclientÚkeyÚ	attributeÚrecord_inputsÚnormalized_messagesrœ   Úmessages_datas                        r@   Úon_llm_startz$SentryLangchainCallback.on_llm_startw  sæ  € õ )Ñ*Ô*ð Z	ð Z	Øð ØðZ	ð Z	ð Z	ñ Z	ô Z	ð Z	ð Z	ð Z	ð  ŸšÐ$7¸Ñ<Ô<ˆJØ×Ò˜jŸnšn¨X°rÑ:Ô:Ñ;Ô;Ð;ð —’˜wÑ'Ô'ð Ø—>’> ,Ñ/Ô/ðà—>’> *Ñ-Ô-ðð ð	 ð ×$Ò$ØØÝÔ,Ø/¨Ð/Ð/×5Ò5Ñ7Ô7Ý+Ô2ð %ñ ô ˆDõ '1°µ|Ñ&DÔ&DÐW�Ô"Ð"È$Ì-ð ð ˆK�Ô6Ð8IÑJÔJÐJà—z’z &Ñ)Ô)ˆHØð CØ��HÔ7¸ÑBÔBÐBàð Ø�ÝÔ1Øñô ð õ
 ' zÑ2Ô2ˆIØð ?Ø��HÔ2°IÑ>Ô>Ð>åÔ*Ñ,Ô,ˆFå"-×"3Ò"3Ñ"5Ô"5ð Xð X‘��YØ˜*Ð$Ð$¨°C¬Ð)Dð "¥XÔ%HÒHÐHÝ7¸¼ÑGÔGð Ià &¤Ð/@Ô AÀ(Ô KÈHÔ Uð Ið !å'¨¨i¸ÀC¼ÐQVÐWÑWÔWÐWøå˜t Z§^¢^°GÑ%<Ô%<Ñ=Ô=Ð=à!ˆMÝ*¨6¬>Ñ:Ô:ð %Ø &¤Ð/@Ô AÀ(Ô KÈHÔ U��Ý(Ñ*Ô*ð %¨tÔ/Cð %à $�àð ð'ð 'ð
 #*ð'ñ 'ô 'Ð#õ #Ô4Ñ6Ô6�õ 4°F´NÑCÔCð-Õ2Ð3FÈÈeÑTÔTÐTà,ð ð
 !Ð,Ý'ØÝ Ô8Ø%Ø$ð	ñ ô ð ðkZ	ð Z	ð Z	ñ Z	ô Z	ð Z	ð Z	ð Z	ð Z	ð Z	ð Z	ð Z	øøøð Z	ð Z	ð Z	ð Z	ð Z	ð Z	s   �K; KK;Ë;K?ÌK?rj   rk   c          	      óþ  — t          ¦   «         5  |s	 ddd¦  «         dS |                     di ¦  «        }|                     |                     di ¦  «        ¦  «         |                     d¦  «        p+|                     d¦  «        p|                     d¦  «        pd}|                      ||                     d¦  «        t          j        d	|› �                     ¦   «         t          j        ¬
¦  «        }t          |t          ¦  «        r|j        n|j        } |t          j        d¦  «         |r |t          j        |¦  «         t!          |¦  «        }	|	r |t          j        |	¦  «         |                     d¦  «        }
t          |
t$          ¦  «        r d|
v r |t          j        |
d         ¦  «         |                     d¦  «        }|r |t          j        |¦  «         t+          j        ¦   «         }t.                               ¦   «         D ]h\  }}||v r_||         �W|t          j        k    r.t5          |j        ¦  «        r|j        d         d         d         sŒOt9          ||||         d¬¦  «         Œit;          ||                     d¦  «        ¦  «         d}t5          |j        ¦  «        r|j        d         d         d         }nt=          ¦   «         r	| j        rd}|rÿtA          |¦  «        }tC          |¦  «        dk    r5 |t          j"        tG          j$        tK          |¦  «        ¦  «        ¦  «         g }|D ];}|D ]6}|j&        dk    rŒ| '                    |  (                    |¦  «        ¦  «         Œ7Œ<tS          |¦  «        }t+          j*        ¦   «         }tW          |j        ¦  «        rtY          |||¦  «        n|}|�t9          |t          j-        |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z#Run when Chat Model starts running.Nrá   rß   râ   rã   rä   rå   rØ   zchat rÎ   ÚchatrÙ   Úlc_agent_namerÇ   rç   rè   ré   Frê   rì   Tr   rn   ).r   rP   rÀ   rÕ   r   ÚGEN_AI_CHATrñ   r~   r—   rQ   r   rò   ró   r   rô   rö   rT   r÷   re   ÚGEN_AI_AGENT_NAMErõ   r£   r¤   rø   rù   rú   r   r¥   r   rû   r   r‚   rv   r°   ÚGEN_AI_SYSTEM_INSTRUCTIONSÚjsonÚdumpsr|   ro   rf   rÄ   r
   rü   r   r   rý   )r�   rÚ   rj   r³   rß   rJ   râ   r´   rþ   r   Úagent_metadatarÿ   r  r  r  r  rq   r  rr   rs   rœ   r  s                         r@   Úon_chat_model_startz+SentryLangchainCallback.on_chat_model_startÞ  sà  € õ )Ñ*Ô*ð f	ð f	Øð Øðf	ð f	ð f	ñ f	ô f	ð f	ð f	ð f	ð  ŸšÐ$7¸Ñ<Ô<ˆJØ×Ò˜jŸnšn¨X°rÑ:Ô:Ñ;Ô;Ð;ð —’˜wÑ'Ô'ð Ø—>’> ,Ñ/Ô/ðà—>’> *Ñ-Ô-ðð ð	 ð ×$Ò$ØØ—
’
˜?Ñ+Ô+Ý”>Ø$˜U�_�_×*Ò*Ñ,Ô,Ý+Ô2ð %ñ ô ˆDõ '1°µ|Ñ&DÔ&DÐW�Ô"Ð"È$Ì-ð ð ˆK�Ô6¸Ñ?Ô?Ð?Øð BØ��HÔ9¸5ÑAÔAÐAå& zÑ2Ô2ˆIØð ?Ø��HÔ2°IÑ>Ô>Ð>à#ŸZšZ¨
Ñ3Ô3ˆNÝ˜.­$Ñ/Ô/ð Y°OÀ~Ð4UÐ4UØ��HÔ6¸ÀÔ8WÑXÔXÐXà—z’z &Ñ)Ô)ˆHØð Ø�ÝÔ/Øñô ð õ
  Ô*Ñ,Ô,ˆFå"-×"3Ò"3Ñ"5Ô"5ð Xð X‘��YØ˜*Ð$Ð$¨°C¬Ð)Dð "¥XÔ%HÒHÐHÝ7¸¼ÑGÔGð Ià &¤Ð/@Ô AÀ(Ô KÈHÔ Uð Ið !å'¨¨i¸ÀC¼ÐQVÐWÑWÔWÐWøå˜t Z§^¢^°GÑ%<Ô%<Ñ=Ô=Ð=à!ˆMÝ*¨6¬>Ñ:Ô:ð %Ø &¤Ð/@Ô AÀ(Ô KÈHÔ U��Ý(Ñ*Ô*ð %¨tÔ/Cð %à $�àð Ý&>¸xÑ&HÔ&HÐ#ÝÐ*Ñ+Ô+¨aÒ/Ð/Ø�KÝ Ô;Ýœ
Õ#AÐBUÑ#VÔ#VÑWÔWñô ð ð
 ')Ð#Ø%ð ð �EØ#(ð ð ˜Ø"œ<¨8Ò3Ð3Ø$à+×2Ò2Ø ×=Ò=¸gÑFÔFñô ð ð ð	õ '>Ð>QÑ&RÔ&RÐ#å"Ô4Ñ6Ô6�õ 4°F´NÑCÔCð-Õ2Ð3FÈÈeÑTÔTÐTà,ð ð
 !Ð,Ý'ØÝ Ô8Ø%Ø$ð	ñ ô ð ðCf	ð f	ð f	ñ f	ô f	ð f	ð f	ð f	ð f	ð f	ð f	ð f	øøøð f	ð f	ð f	ð f	ð f	ð f	s   �O2 OO2Ï2O6Ï9O6Úresponser0   c                óø  — t          ¦   «         5  |r	|| j        vr	 ddd¦  «         dS | j        |         }t          j        ¦   «         }d}t	          |j        ¦  «        r|j        d         d         d         }nt          ¦   «         r	| j        rd}|r*t          |t          j
        d„ |j        D ¦   «         ¦  «         t          ||¦  «         |                      ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z!Run when Chat Model ends running.NFrç   rè   ÚoutputsTc                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó   — g | ]	}|j         ‘Œ
S r>   ©rp   ©rz   Úxs     r@   r{   zHSentryLangchainCallback.on_chat_model_end.<locals>.<listcomp>.<listcomp>j  ó   € Ð,Ð,Ð, �a”fÐ,Ð,Ð,r?   r>   ©rz   rr   s     r@   r{   z=SentryLangchainCallback.on_chat_model_end.<locals>.<listcomp>j  ó'   € ÐOÐOÐO°Ð,Ð, eÐ,Ñ,Ô,ÐOÐOÐOr?   )r   r­   r£   r¤   r   r¥   r   r‚   r   r   ÚGEN_AI_RESPONSE_TEXTÚgenerationsÚ_record_token_usager²   )r�   r  r³   rß   r´   r  Úrecord_outputss          r@   Úon_chat_model_endz)SentryLangchainCallback.on_chat_model_endO  sy  € õ )Ñ*Ô*ð 	*ð 	*Øð ˜V¨4¬=Ð8Ð8Øð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð ”= Ô(ˆDåÔ*Ñ,Ô,ˆFà"ˆNÝ*¨6¬>Ñ:Ô:ð &Ø!'¤Ð0AÔ!BÀ8Ô!LÈYÔ!W��Ý(Ñ*Ô*ð &¨tÔ/Cð &à!%�àð Ý#ØÝÔ1ØOÐO¸(Ô:NÐOÑOÔOñô ð õ    hÑ/Ô/Ð/Ø�OŠO˜D &Ñ)Ô)Ð)ð/	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   �C/©B9C/Ã/C3Ã6C3c                ó  — t          ¦   «         5  |r	|| j        vr	 ddd¦  «         dS | j        |         }t          j        ¦   «         }d}t	          |j        ¦  «        r|j        d         d         d         }nt          ¦   «         r	| j        rd}	 |j        d         d         }n# t          $ r d}Y nw xY wt          |t          ¦  «        r|j        n|j        }|�:|j        �3|j                             d¦  «        }	|	� |t           j        |	g¦  «         t          |t$          ¦  «        rt|j        j                             d	¦  «        }
|
� |t           j        |
¦  «         |r;t-          |j        d
d¦  «        }|�#|g k    rt/          |t           j        |d¬¦  «         |r*t/          |t           j        d„ |j        D ¦   «         ¦  «         t5          ||¦  «         |                      ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zRun when LLM ends running.NFrç   rè   r  Tr   Úfinish_reasonrã   rZ   rê   c                 ó&   — g | ]}d „ |D ¦   «         ‘ŒS )c                 ó   — g | ]	}|j         ‘Œ
S r>   r  r  s     r@   r{   zASentryLangchainCallback.on_llm_end.<locals>.<listcomp>.<listcomp>«  r  r?   r>   r  s     r@   r{   z6SentryLangchainCallback.on_llm_end.<locals>.<listcomp>«  r  r?   )r   r­   r£   r¤   r   r¥   r   r‚   r  Ú
IndexErrorrQ   r   rò   ró   Úgeneration_inforP   r   ÚGEN_AI_RESPONSE_FINISH_REASONSr,   rs   Úresponse_metadataÚGEN_AI_RESPONSE_MODELÚgetattrr   rú   r  r  r²   )r�   r  r³   rß   r´   r  r   Ú
generationrþ   r#  Úresponse_modelrZ   s               r@   Ú
on_llm_endz"SentryLangchainCallback.on_llm_endp  sÁ  € õ )Ñ*Ô*ð 7	*ð 7	*Øð ˜V¨4¬=Ð8Ð8Øð7	*ð 7	*ð 7	*ñ 7	*ô 7	*ð 7	*ð 7	*ð 7	*ð ”= Ô(ˆDåÔ*Ñ,Ô,ˆFà"ˆNÝ*¨6¬>Ñ:Ô:ð &Ø!'¤Ð0AÔ!BÀ8Ô!LÈYÔ!W��Ý(Ñ*Ô*ð &¨tÔ/Cð &à!%�ð"Ø%Ô1°!Ô4°QÔ7�
�
øÝð "ð "ð "Ø!�
�
�
ð"øøøõ '1°µ|Ñ&DÔ&DÐW�Ô"Ð"È$Ì-ð ð Ð%¨*Ô*DÐ*PØ *Ô :× >Ò >¸Ñ OÔ O�Ø Ð,Ø�KÝ Ô?Ø&˜ñô ð õ
 ˜*¥nÑ5Ô5ð Ø!+Ô!3Ô!E×!IÒ!IÈ,Ñ!WÔ!W�Ø!Ð-Ø�K¥Ô >ÀÑOÔOÐOà!ð Ý!(¨Ô);¸\È4Ñ!PÔ!P�JØ!Ð-°*ÀÒ2BÐ2BÝ+Ø Ý$Ô?Ø&Ø#(ð	ñ ô ð ð ð Ý#ØÝÔ1ØOÐO¸(Ô:NÐOÑOÔOñô ð õ    hÑ/Ô/Ð/Ø�OŠO˜D &Ñ)Ô)Ð)ðo7	*ð 7	*ð 7	*ñ 7	*ô 7	*ð 7	*ð 7	*ð 7	*ð 7	*ð 7	*ð 7	*ð 7	*øøøð 7	*ð 7	*ð 7	*ð 7	*ð 7	*ð 7	*s<   �G>©A'G>ÂB%Â$G>Â%B4Â1G>Â3B4Â4D=G>Ç>HÈHÚBaseExceptionc                ó2   — |                       ||¦  «         dS )zRun when LLM errors.N©r¼   ©r�   r¶   r³   rß   s       r@   Úon_llm_errorz$SentryLangchainCallback.on_llm_error±  ó    € ð 	×Ò˜6 5Ñ)Ô)Ð)Ð)Ð)r?   ú#Union[Exception, KeyboardInterrupt]c                ó2   — |                       ||¦  «         dS )zRun when Chat Model errors.Nr1  r2  s       r@   Úon_chat_model_errorz+SentryLangchainCallback.on_chat_model_error»  r4  r?   Ú	input_strc          	      óv  — t          ¦   «         5  |s	 ddd¦  «         dS |                     d¦  «        p|                     d¦  «        pd}|                      ||                     d¦  «        t          j        d|› �                     ¦   «         t          j        ¬¦  «        }t          |t          ¦  «        r|j
        n|j        } |t          j        d¦  «          |t          j        |¦  «         |                     d¦  «        }|� |t          j        |¦  «         |                     d	¦  «        }	t          |	t           ¦  «        r d
|	v r |t          j        |	d
         ¦  «         |                     d¦  «        }
|
r |t          j        |
¦  «         t'          j        ¦   «         }d}t+          |j        ¦  «        r|j        d         d         d         }nt/          ¦   «         r	| j        rd}|r0t3          |t          j        |                     d|g¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zRun when tool starts running.NrÇ   rå   rØ   zexecute_tool rÎ   Úexecute_toolÚdescriptionrÙ   r
  Frç   rè   ré   T)r   rP   rÕ   r   ÚGEN_AI_EXECUTE_TOOLrñ   r~   r—   rQ   r   rò   ró   r   rô   ÚGEN_AI_TOOL_NAMEÚGEN_AI_TOOL_DESCRIPTIONre   r  rõ   r£   r¤   r   r¥   r   r‚   r   ÚGEN_AI_TOOL_INPUT)r�   rÚ   r8  r³   rß   Ú	tool_namer´   rþ   Útool_descriptionr  rÿ   r  r  s                r@   Úon_tool_startz%SentryLangchainCallback.on_tool_startÅ  s®  € õ )Ñ*Ô*ð 2	ð 2	Øð Øð2	ð 2	ð 2	ñ 2	ô 2	ð 2	ð 2	ð 2	ð #Ÿš vÑ.Ô.ÐJ°&·*²*¸VÑ2DÔ2DÐJÈˆIà×$Ò$ØØ—
’
˜?Ñ+Ô+ÝÔ)Ø0 YÐ0Ð0×6Ò6Ñ8Ô8Ý+Ô2ð %ñ ô ˆDõ '1°µ|Ñ&DÔ&DÐW�Ô"Ð"È$Ì-ð ð ˆK�Ô6¸ÑGÔGÐGØˆK�Ô1°9Ñ=Ô=Ð=à)Ÿ~š~¨mÑ<Ô<ÐØÐ+Ø��HÔ<Ð>NÑOÔOÐOà#ŸZšZ¨
Ñ3Ô3ˆNÝ˜.­$Ñ/Ô/ð Y°OÀ~Ð4UÐ4UØ��HÔ6¸ÀÔ8WÑXÔXÐXà—z’z &Ñ)Ô)ˆHØð Ø�ÝÔ/Øñô ð õ
  Ô*Ñ,Ô,ˆFà!ˆMÝ*¨6¬>Ñ:Ô:ð %Ø &¤Ð/@Ô AÀ(Ô KÈHÔ U��Ý(Ñ*Ô*ð %¨tÔ/Cð %à $�àð Ý#ØÝÔ.Ø—J’J˜x¨)¨Ñ5Ô5ñô ð ð]2	ð 2	ð 2	ñ 2	ô 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	øøøð 2	ð 2	ð 2	ð 2	ð 2	ð 2	s   �H. HH.È.H2È5H2Úoutputc                óº  — t          ¦   «         5  |r	|| j        vr	 ddd¦  «         dS | j        |         }t          j        ¦   «         }d}t	          |j        ¦  «        r|j        d         d         d         }nt          ¦   «         r	| j        rd}|rt          |t          j
        |¦  «         |                      ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zRun when tool ends running.NFrç   rè   r  T)r   r­   r£   r¤   r   r¥   r   r‚   r   r   ÚGEN_AI_TOOL_OUTPUTr²   )r�   rC  r³   rß   r´   r  r   s          r@   Úon_tool_endz#SentryLangchainCallback.on_tool_end  sN  € õ )Ñ*Ô*ð 	*ð 	*Øð ˜V¨4¬=Ð8Ð8Øð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð ”= Ô(ˆDåÔ*Ñ,Ô,ˆFà"ˆNÝ*¨6¬>Ñ:Ô:ð &Ø!'¤Ð0AÔ!BÀ8Ô!LÈYÔ!W��Ý(Ñ*Ô*ð &¨tÔ/Cð &à!%�àð OÝ# D­(Ô*EÀvÑNÔNÐNà�OŠO˜D &Ñ)Ô)Ð)ð%	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   �C©BCÃCÃCc                ó2   — |                       ||¦  «         dS )zRun when tool errors.Nr1  r2  s       r@   Úon_tool_errorz%SentryLangchainCallback.on_tool_error  r4  r?   r•   )r³   r#   r¶   r   rL   N)rs   r+   rL   r   )r�   rª   r´   rÈ   r³   r#   rL   N)r�   rª   rÚ   rK   rÛ   rl   r³   r#   r×   rÜ   rØ   rÝ   rÙ   rÞ   rß   r   rL   r   )r�   rª   rÚ   rK   rj   rk   r³   r#   rß   r   rL   r   )
r�   rª   r  r0   r³   r#   rß   r   rL   r   )
r�   rª   r¶   r/  r³   r#   rß   r   rL   r   )
r�   rª   r¶   r5  r³   r#   rß   r   rL   r   )r¶   r/  r³   r#   rß   r   rL   r   )r:   r;   r<   Ú__doc__r™   rŠ   rµ   r¼   rÄ   rR   rÕ   r²   r  r  r!  r.  r3  r7  rB  rF  rH  r>   r?   r@   rª   rª     s¾  € € € € € Ø5Ð5ð/Ø!0ð/ØCGð/à	ð/ð /ð /ð /ð.ð .ð .ð .ð&ð &ð &ð &ð&ð ð ð ð,Ø'ð,àð,ð #ð,ð ð	,ð
 ð,ð ð,ð 
8ð,ð ,ð ,ð ,ð\"Ø'ð"à<ð"ð ð"ð 
ð	"ð "ð "ð "ð '+Ø*.Ø/3ðeð eØ'ðeà$ðeð ðeð
 ðeð $ðeð (ðeð -ðeð ðeð 
ðeð eð eð eðNoØ'ðoà$ðoð ,ðoð
 ðoð ðoð 
ðoð oð oð oðb*Ø'ð*àð*ð ð	*ð
 ð*ð 
ð*ð *ð *ð *ðB?*Ø'ð?*àð?*ð ð	?*ð
 ð?*ð 
ð?*ð ?*ð ?*ð ?*ðB*Ø'ð*àð*ð ð	*ð
 ð*ð 
ð*ð *ð *ð *ð*Ø'ð*à4ð*ð ð	*ð
 ð*ð 
ð*ð *ð *ð *ð;Ø'ð;à$ð;ð ð;ð
 ð;ð ð;ð 
ð;ð ;ð ;ð ;ðz*Ø'ð*Ø14ð*ØAGð*ØSXð*à	ð*ð *ð *ð *ð0*àð*ð ð	*ð
 ð*ð 
ð*ð *ð *ð *ð *ð *r?   rª   Útoken_usageú2tuple[Optional[int], Optional[int], Optional[int]]c                 ó´   — | sdS t          | d¦  «        pt          | d¦  «        }t          | d¦  «        pt          | d¦  «        }t          | d¦  «        }|||fS )N©NNNÚprompt_tokensr4   Úcompletion_tokensr5   r6   ©r   )rJ  r4   r5   r6   s       r@   Ú_extract_tokensrQ  %  s�   € ð ð  ØÐå˜k¨?Ñ;Ô;ð ½zØ�^ñ@ô @€Lõ ˜{Ð,?Ñ@Ô@ð ÅJØ�_ñEô E€Mõ ˜k¨>Ñ:Ô:€Là˜¨Ð4Ð4r?   r  úOlist[list[Generation | ChatGeneration | GenerationChunk | ChatGenerationChunk]]c                 ó@  — d}d}d}d}d}d}| D �]ã}|sŒt          |d         ¦  «        }t          |¦  «        \  }	}
}|t          |	t          ¦  «        r|	ndz  }|t          |
t          ¦  «        r|
ndz  }|t          |t          ¦  «        r|ndz  }t          |d         t          ¦  «        sŒž|d         j        }t          |t          ¦  «        rt          |d¦  «        sŒÑ|j        }t          |t          ¦  «        sŒî| 
                    d¦  «        }t          |t          ¦  «        rjt          | 
                    d¦  «        t          ¦  «        r|pd|d         z   }t          | 
                    d¦  «        t          ¦  «        r|pd|d         z   }| 
                    d¦  «        }t          |t          ¦  «        s�Œ®t          | 
                    d¦  «        t          ¦  «        r|pd|d         z   }�Œåt          |dk    r|nd|dk    r|nd|dk    r|nd|||¦  «        S )	z8Extract token usage from response.generations structure.r   NÚusage_metadataÚinput_token_detailsr7   r8   Úoutput_token_detailsr9   )Ú_get_token_usagerQ  rQ   Úintr,   rs   r*   ÚhasattrrT  re   rP   r2   )r  Útotal_inputÚtotal_outputÚtotal_totalÚtotal_cache_readÚtotal_cache_creationr9   Úgen_listrJ  r4   r5   r6   rs   rT  rU  rV  s                   r@   Ú _extract_tokens_from_generationsr`  6  sv  € ð €KØ€LØ€KØÐØÐØ€Iàð )Mñ )MˆØð 	Øå& x°¤{Ñ3Ô3ˆÝ4CÀKÑ4PÔ4PÑ1ˆ�m \Ø¥z°,ÅÑ'DÔ'DÐK�|�|È!ÑKˆØ­°MÅ3Ñ)GÔ)GÐN˜˜ÈQÑNˆØ¥z°,ÅÑ'DÔ'DÐK�|�|È!ÑKˆå˜( 1œ+¥~Ñ6Ô6ð 	Øà˜1”+Ô%ˆõ ˜'¥9Ñ-Ô-ð 	µW¸WÐFVÑ5WÔ5Wð 	Øà Ô/ˆå˜.­$Ñ/Ô/ð 	Øà,×0Ò0Ð1FÑGÔGÐÝÐ)­4Ñ0Ô0ð 		:ÝÐ-×1Ò1°,Ñ?Ô?ÅÑEÔEð Ø$4Ð$9¸Ð=PØ ô>ñ $Ð õ Ð-×1Ò1Ð2BÑCÔCÅSÑIÔIð :à(Ð-¨AØ'Ð(8Ô9ñ(:Ð$ð  .×1Ò1Ð2HÑIÔIÐÝÐ.µÑ5Ô5ð 	ÙåÐ*×.Ò.¨{Ñ;Ô;½SÑAÔAð 	MØ"˜ aÐ+?ÀÔ+LÑLˆIùåØ" Q’�ˆˆ¨DØ$ qÒ(Ð(ˆˆ¨dØ" Q’�ˆˆ¨DØØØñô ð r?   ÚobjrÞ   c                 óô   — d}t          | d¦  «        }|�|D ]}t          ||¦  «        }|�|c S Œt          | d¦  «        }|�|D ]}t          ||¦  «        }|�|c S Œ|D ]}t          | |¦  «        }|�|c S ŒdS )zM
    Check multiple paths to extract token usage from different objects.
    )ÚusagerJ  rT  rs   NÚ
llm_outputrP  )ra  Úpossible_namesrs   rÇ   rc  rd  s         r@   rW  rW  v  sÕ   € ð @€Nå˜˜iÑ(Ô(€GØÐØ"ð 	ð 	ˆDÝ˜w¨Ñ-Ô-ˆEØÐ Ø���ð !õ ˜C Ñ.Ô.€JØÐØ"ð 	ð 	ˆDÝ˜z¨4Ñ0Ô0ˆEØÐ Ø���ð !ð ð ð ˆÝ˜3 Ñ%Ô%ˆØÐØˆLˆLˆLð ð ˆ4r?   r´   úUnion[Span, StreamedSpan]r  r0   c                 ó®  — d }d }d }d }d }d }t          |¦  «        }|rt          |¦  «        \  }}}|j        �ht          |j        ¦  «        }|j        �|j        }|j        �|j        }|j        �|j        }|j        �|j        }|j        �|j        }|j	        �|j	        }t          | t          ¦  «        r| j        n| j        }	|� |	t          j        |¦  «         |� |	t          j        |¦  «         |� |	t          j        |¦  «         |� |	t          j        |¦  «         |� |	t          j        |¦  «         |� |	t          j        |¦  «         d S d S rŒ   )rW  rQ  r  r`  r4   r5   r6   r7   r8   r9   rQ   r   rò   ró   r   ÚGEN_AI_USAGE_INPUT_TOKENSÚGEN_AI_USAGE_OUTPUT_TOKENSÚGEN_AI_USAGE_TOTAL_TOKENSÚ$GEN_AI_USAGE_CACHE_READ_INPUT_TOKENSÚ(GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENSÚ$GEN_AI_USAGE_REASONING_OUTPUT_TOKENS)
r´   r  r4   r5   r6   Úcache_read_tokensÚcache_creation_tokensr9   rJ  rþ   s
             r@   r  r  ’  s³  € ð €LØ€MØ€LØÐØ ÐØ€Iõ # 8Ñ,Ô,€KØð QÝ4CÀKÑ4PÔ4PÑ1ˆ�m \ð ÔÐ'Ý6°xÔ7KÑLÔLˆØÔ#Ð/Ø&Ô3ˆLØÔ$Ð0Ø'Ô5ˆMØÔ#Ð/Ø&Ô3ˆLØÔ!Ð-Ø +Ô 6ÐØÔ%Ð1Ø$/Ô$>Ð!ØÔ Ð,Ø#Ô-ˆIõ )¨­|Ñ<Ô<ÐOˆÔÐÀ$Ä-ð ð ÐØˆ•HÔ6¸ÑEÔEÐEàÐ Øˆ•HÔ7¸ÑGÔGÐGàÐØˆ•HÔ6¸ÑEÔEÐEàÐ$Øˆ•HÔAÐCTÑUÔUÐUàÐ(ØˆÝÔ=Ð?Tñ	
ô 	
ð 	
ð ÐØˆ•HÔAÀ9ÑMÔMÐMÐMÐMð Ðr?   Úargsrß   ú)tuple[Optional[str], Optional[List[Any]]]c                 óì  — t          | dd¦  «        }t          |dd¦  «        }t          |di ¦  «        }t          | dd¦  «        p:t          |dd¦  «        p)|                     d¦  «        p|                     d¦  «        }|rt          |¦  «        dk    r|nd}	 d}t          |¦  «        dk    r|d                              d	¦  «        }|€|                     d	¦  «        }n# t          $ r Y nw xY w||fS )
z?
    Get the agent name and available tools for the agent.
    ÚagentNÚrunnableÚconfigrì   Úavailable_toolsr   é   rÿ   )r+  rP   r°   Ú	Exception)ra  rp  rß   rs  rt  Úrunnable_configrì   Ú
agent_names           r@   Ú_get_request_datar{  Ê  s!  € õ �C˜ $Ñ'Ô'€EÝ�u˜j¨$Ñ/Ô/€HÝ˜h¨°"Ñ5Ô5€Oå��W˜dÑ#Ô#ð 	2Ý�5˜' 4Ñ(Ô(ð	2à×Ò˜wÑ'Ô'ð	2ð ×ÒÐ0Ñ1Ô1ð	 
ð Ð7�s 5™zœz¨Aš~˜~ˆEˆE°4€EðØˆ
Ýˆt‰9Œ9�qŠ=ˆ=Ø˜aœŸš ZÑ0Ô0ˆJØÐØ(×,Ò,¨ZÑ8Ô8ˆJøøÝð ð ð Øˆðøøøð ˜ÐÐs   ÂAC" Ã"
C/Ã.C/rì   úOptional[List[Any]]c           	      óÂ  — | sdS t          | t          t          f¦  «        sdS g }| D �]2}	 t          |t          ¦  «        �r9d|v rmt          |d         t          ¦  «        rR|d         }|                     d¦  «        |                     d¦  «        dœ}|d         r|                     |¦  «         �n–d|v rB|                     d¦  «        |                     d¦  «        dœ}|                     |¦  «         �nP|                     d¦  «        p)|                     d¦  «        p|                     d¦  «        }|r@|                     ||                     d¦  «        p|                     d¦  «        dœ¦  «         nÎt          |d¦  «        rRt          |dd¦  «        t          |dd¦  «        pt          |dd¦  «        dœ}|d         r|                     |¦  «         nlt          |d	¦  «        r-|                     |j        t          |d
d¦  «        dœ¦  «         n/t          |¦  «        }|r|dk    r|                     |ddœ¦  «         �Œ## t          $ r Y �Œ0w xY w|r|ndS )z/Parse and simplify tools into a cleaner format.NÚfunctionrÇ   r;  )rÇ   r;  r@  Úfunction_nameÚdescr:   rI  rå   )rQ   rc   rd   re   rP   rf   rY  r+  r:   rR   rx  )rì   Úsimplified_toolsÚtoolÚfuncÚsimplified_toolrÇ   Útool_strs          r@   Ú_simplify_langchain_toolsr†  ç  sß  € àð Øˆtå�e�d¥E˜]Ñ+Ô+ð ØˆtàÐØð 3ñ 3ˆð2	Ý˜$¥Ñ%Ô%ñ /UØ Ð%Ð%­*°T¸*Ô5EÅtÑ*LÔ*LÐ%Ø 
Ô+�Dà $§¢¨Ñ 0Ô 0Ø'+§x¢x°Ñ'>Ô'>ð'ð '�Oð ' vÔ.ð AØ(×/Ò/°Ñ@Ô@Ð@ùØ˜t�^�^à $§¢¨Ñ 0Ô 0Ø'+§x¢x°Ñ'>Ô'>ð'ð '�Oð %×+Ò+¨OÑ<Ô<Ð<Ñ<ð Ÿš Ñ(Ô(ð 5ØŸ8š8 KÑ0Ô0ð5àŸ8š8 OÑ4Ô4ð ð
 ð Ø(×/Ò/à(,Ø/3¯xªx¸Ñ/FÔ/Fð 04Ø#'§8¢8¨FÑ#3Ô#3ðð ñô ð øõ ˜˜vÑ&Ô&ð Uå# D¨&°$Ñ7Ô7Ý#*¨4°ÀÑ#EÔ#Eð $3Ý˜t V¨TÑ2Ô2ð#ð #�ð
 # 6Ô*ð =Ø$×+Ò+¨OÑ<Ô<Ð<øÝ˜˜zÑ*Ô*ð 
UØ ×'Ò'à $¤Ý'.¨t°YÀÑ'EÔ'Eðð ñô ð ð õ ˜t™9œ9�Øð U ¨B¢ Ø$×+Ò+°XÈdÐ,SÐ,SÑTÔTÐTùøÝð 	ð 	ð 	Ø‰Hð	øøøð  0Ð9ÐÐ°TÐ9s   «HI
É

IÉIc                 ó  — |€dS t          j        ¦   «         }t          j        }t	          |j        ¦  «        r'|j        d         d         d         sdS t          j        }t          |¦  «        }|rt          | ||d¬¦  «         dS dS )z9Set available tools data on a span if tools are provided.Nrç   rè   ré   Frê   )	r£   r¤   r   ÚGEN_AI_REQUEST_AVAILABLE_TOOLSr   r¥   ÚGEN_AI_TOOL_DEFINITIONSr†  r   )r´   rì   r  Úattribute_namer�  s        r@   rû   rû   (  sª   € à€}ØˆåÔ"Ñ$Ô$€FÝÔ<€NÝ" 6¤>Ñ2Ô2ð >ØŒ~Ð/Ô0°Ô:¸8ÔDð 	>ØˆFå%Ô=ˆNõ 1°Ñ7Ô7ÐØð 
ÝØØØØð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ð
ð 
r?   ÚfúCallable[..., Any]c                 óf   ‡ — t          ‰ ¦  «        	 	 d
dt          ddddddddddfˆ fd	„¦   «         }|S )NÚcallback_manager_clsÚinheritable_callbacksr(   Úlocal_callbacksrp  r   rß   rL   c                 ó.  •— t          j        ¦   «                              t          ¦  «        }|€ ‰	| ||g|¢R i |¤ŽS |pg }t	          |t
          ¦  «        r|j        }nTt	          |t          ¦  «        r|g}n;t	          |t          ¦  «        r|}n#t          j
        d|¦  «          ‰	| ||g|¢R i |¤ŽS t	          |t
          ¦  «        r|j        }nt	          |t          ¦  «        r|}ng }t          d„ t          j        ||¦  «        D ¦   «         ¦  «        stt          |j        |j        ¦  «        }t	          |t
          ¦  «        r%|                     ¦   «         }g |j        ¢|‘|_        n t	          |t          ¦  «        r||g}ng |¢|‘} ‰	| ||g|¢R i |¤ŽS )NzUnknown callback type: %sc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rŒ   )rQ   rª   )rz   Úcbs     r@   ú	<genexpr>z9_wrap_configure.<locals>.new_configure.<locals>.<genexpr>r  sA   è è € ð 
ð 
àõ �rÕ2Ñ3Ô3ð
ð 
ð 
ð 
ð 
ð 
r?   )r£   r¤   Úget_integrationr~   rQ   r'   Úhandlersr&   rc   r   ÚdebugÚanyÚ	itertoolsÚchainrª   rƒ   r‚   Úcopy)
rŽ  r�  r�  rp  rß   ÚintegrationÚcallbacks_listÚinheritable_callbacks_listÚsentry_handlerr‹  s
            €r@   Únew_configurez&_wrap_configure.<locals>.new_configureA  sb  ø€ õ !Ô+Ñ-Ô-×=Ò=Õ>RÑSÔSˆØÐØ�1Ø$Ø%Øðð ð	ð ð ð
 ðð ð ð *Ð/¨Rˆõ �oÕ':Ñ;Ô;ð 	Ø,Ô5ˆNˆNÝ˜Õ)<Ñ=Ô=ð 	Ø-Ð.ˆNˆNÝ˜­Ñ.Ô.ð 	Ø,ˆNˆNåŒLÐ4°oÑFÔFÐFà�1Ø$Ø%Øðð ð	ð ð ð
 ðð ð õ Ð+Õ-@ÑAÔAð 	,Ø)>Ô)GÐ&Ð&ÝÐ-­tÑ4Ô4ð 	,Ø)>Ð&Ð&à)+Ð&åð 
ð 
å”o nÐ6PÑQÔQð
ñ 
ô 
ñ 
ô 
ð 	Eõ 5ØÔ%ØÔ+ñô ˆNõ ˜/Õ+>Ñ?Ô?ð 	EØ"1×"6Ò"6Ñ"8Ô"8�ð,Ø$Ô-ð,à"ð,�Ô(Ð(õ ˜OÕ-@ÑAÔAð EØ#2°NÐ"C��à"D OÐ"D°^Ð"D�àˆqØ Ø!Øð
ð ð	
ð 
ð 
ð
 ð
ð 
ð 	
r?   )NN)r   ro   )r‹  r   s   ` r@   r�   r�   @  sŒ   ø€ Ý
ˆ1�X„Xð .2Ø'+ðI
ð I
Ý"ðI
à*ðI
ð %ðI
ð ð	I
ð
 ðI
ð 
ðI
ð I
ð I
ð I
ð I
ñ „XðI
ðV Ðr?   c                 ó>   ‡ — t          ‰ ¦  «        dˆ fd„¦   «         }|S )Nr�   r   rp  rß   rL   c                 ór  •— t          j        ¦   «         }|                     t          ¦  «        }|€ ‰| g|¢R i |¤ŽS t	          | ||¦  «        \  }}d}d}t          |j        ¦  «        r3|j        d         d         d         }|j        d         d         d         }nt          ¦   «         r|j        rd}d}t          |j        ¦  «        �rht           j
                             |rd|› �ndd	t          j        d
t          j        t          j        dt          j        di¬¦  «        5 }	|r |	                     t          j        |¦  «         t)          |	|¦  «          ‰| g|¢R i |¤Ž}
|
                     d¦  «        }|�k|rit-          |g¦  «        }t          j        ¦   «         }t1          |j        ¦  «        rt3          ||	|¦  «        n|}|�t5          |	t          j        |d¬¦  «         |
                     d¦  «        }|�|rt5          |	t          j        |¦  «         |
cd d d ¦  «         S # 1 swxY w Y   d S t;          ¦   «         } |t          j        |rd|› �ndt          j        ¬¦  «        5 }	|r |	                     t          j        |¦  «         |	                     t          j        d¦  «         |	                     t          j        d¦  «         t)          |	|¦  «          ‰| g|¢R i |¤Ž}
|
                     d¦  «        }|�k|rit-          |g¦  «        }t          j        ¦   «         }t1          |j        ¦  «        rt3          ||	|¦  «        n|}|�t5          |	t          j        |d¬¦  «         |
                     d¦  «        }|�|rt5          |	t          j        |¦  «         |
cd d d ¦  «         S # 1 swxY w Y   d S )NFrç   rè   ré   r  Túinvoke_agent Úinvoke_agentrÊ   rË   rÏ   Úinputrê   rC  rÎ   )r£   r¤   r•  r~   r{  r   r¥   r   r‚   r   rÐ   rÑ   r   ÚGEN_AI_INVOKE_AGENTr—   r   rô   ÚGEN_AI_RESPONSE_STREAMINGrò   rõ   rû   rP   r
   rü   r   r   r   rý   r  r	   ró   )r�   rp  rß   r  rœ  rÿ   rì   r  r   r´   r_   r¥  r  rœ   r  rC  Ústart_span_functionr‹  s                    €r@   Ú
new_invokez/_wrap_agent_executor_invoke.<locals>.new_invoke‘  s¼  ø€ åÔ&Ñ(Ô(ˆØ×,Ò,Õ-AÑBÔBˆØÐØ�1�TÐ+˜DÐ+Ð+Ð+ FÐ+Ð+Ð+å+¨D°$¸Ñ?Ô?‰ˆ�%àˆØˆÝ& v¤~Ñ6Ô6ð 	"Ø"œNÐ+<Ô=¸hÔGÈÔQˆMØ#œ^Ð,=Ô>¸xÔHÈÔSˆNˆNÝ$Ñ&Ô&ð 	"¨;Ô+Fð 	"à ˆMØ!ˆNå% f¤nÑ5Ô5ñ R	ÝÔ"×-Ò-Ø3;ÐOÐ/ XÐ/Ð/Ð/Àà¥Ô!7Ø#Õ%9Ô%@ÝÔ2°NÝÔ6¸ð	ð .ñ ô ð 'ð Øð NØ×&Ò&¥xÔ'BÀHÑMÔMÐMå" 4¨Ñ/Ô/Ð/ð ˜˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1�àŸ
š
 7Ñ+Ô+�ØÐ$¨Ð$Ý*AÀ5À'Ñ*JÔ*JÐ'å&Ô8Ñ:Ô:�Eõ 8¸¼ÑGÔGð1Õ6Ð7JÈDÐRWÑXÔXÐXà0ð "ð
 %Ð0Ý+Ø Ý$Ô<Ø)Ø#(ð	ñ ô ð ð  Ÿš HÑ-Ô-�ØÐ%¨.Ð%Ý'¨­hÔ.KÈVÑTÔTÐTàðO'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'õR #:Ñ";Ô";Ðà$Ð$ÝÔ)Ø3;ÐOÐ/ XÐ/Ð/Ð/ÀÝ+Ô2ðñ ô ð &ð Øð IØ—M’M¥(Ô"=¸xÑHÔHÐHà—’�hÔ<¸nÑMÔMÐMØ—’�hÔ@À%ÑHÔHÐHå" 4¨Ñ/Ô/Ð/ð ˜˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1�àŸ
š
 7Ñ+Ô+�ØÐ$¨Ð$Ý*AÀ5À'Ñ*JÔ*JÐ'å&Ô8Ñ:Ô:�Eõ 8¸¼ÑGÔGð1Õ6Ð7JÈDÐRWÑXÔXÐXà0ð "ð
 %Ð0Ý+Ø Ý$Ô<Ø)Ø#(ð	ñ ô ð ð  Ÿš HÑ-Ô-�ØÐ%¨.Ð%Ý'¨­hÔ.KÈVÑTÔTÐTàðM&ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s&   Ä"C6H%È%H)È,H)É)D6N,Î,N0Î3N0©r�   r   rp  r   rß   r   rL   r   r   )r‹  r©  s   ` r@   r�   r�   �  s@   ø€ Ý
ˆ1�X„Xðdð dð dð dð dñ „XðdðL Ðr?   c                 ó>   ‡ — t          ‰ ¦  «        dˆ fd„¦   «         }|S )Nr�   r   rp  rß   rL   c                 óì  •‡‡‡— t          j        ¦   «         }|                     t          ¦  «        }|€ ‰| g|¢R i |¤ŽS t	          | ||¦  «        \  }}d}dŠt          |j        ¦  «        r3|j        d         d         d         }|j        d         d         d         Šnt          ¦   «         r|j        rd}dŠt          |j        ¦  «        r{t           j
                             |rd|› �ndd	t          j        d
t          j        t          j        dt          j        di¬¦  «        Š|r ‰                     t          j        |¦  «         n­t)          ¦   «         } |t          j        |rd|› �ndt          j        ¬¦  «        Š‰                     ¦   «          ‰                     t          j        d¦  «         ‰                     t          j        d¦  «         |r ‰                     t          j        |¦  «         t/          ‰|¦  «         t1          |¦  «        dk    r|d                              d¦  «        nd }	|	�k|rit5          |	g¦  «        }
t          j        ¦   «         }t9          |j        ¦  «        rt;          |
‰|¦  «        n|
}|�t=          ‰t          j        |d¬¦  «          ‰| g|¢R i |¤Ž}|Šdˆˆˆfd„}dˆˆˆfd„}tA          tC          |¦  «        ¦  «        dk    r |¦   «         }n
 |¦   «         }|S )NFrç   rè   ré   r  Tr£  r¤  rÊ   rË   rÏ   rÎ   rw  r   r¥  rê   rL   úIterator[Any]c               3   ó†  •K  — d} 	 ‰D ]}|V — Œ	 |                      d¦  «        }n# t          $ r d }Y nw xY w|�‰rt          ‰t          j        |¦  «         ‰                     d d d ¦  «         d S # t          $ rE t          j        ¦   «         } t          ¦   «         5   ‰j        | Ž  d d d ¦  «         n# 1 swxY w Y   ‚ w xY w©NrM  rC  ©	rP   rx  r   r   r  r¸   ÚsysÚexc_infor   ©r²  r§   rC  Úold_iteratorr   r´   s      €€€r@   Únew_iteratorzE_wrap_agent_executor_stream.<locals>.new_stream.<locals>.new_iteratorE  s>  øè è € Ø/AˆHðØ)ð  ð  �EØ�K�K�K�Kð"Ø"ŸYšY xÑ0Ô0�F�FøÝ ð "ð "ð "Ø!�F�F�Fð"øøøð Ð%¨.Ð%Ý'¨­hÔ.KÈVÑTÔTÐTà—’˜d D¨$Ñ/Ô/Ð/Ð/Ð/øÝð ð ð Ýœ<™>œ>�Ý0Ñ2Ô2ð -ð -Ø!�D”M 8Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -àð	øøøsJ   ‡	A1 ‘' ¦A1 §6³A1 µ6¶9A1 Á1+C ÂB3Â'C Â3B7	Â7C Â:B7	Â;C úAsyncIterator[Any]c                 ó”  •K  — d} 	 ‰2 3 d {V —†}|W V — Œ6 	 |                      d¦  «        }n# t          $ r d }Y nw xY w|�‰rt          ‰t          j        |¦  «         ‰                     d d d ¦  «         d S # t          $ rE t          j        ¦   «         } t          ¦   «         5   ‰j        | Ž  d d d ¦  «         n# 1 swxY w Y   ‚ w xY wr¯  r°  r³  s      €€€r@   Únew_iterator_asynczK_wrap_agent_executor_stream.<locals>.new_stream.<locals>.new_iterator_asyncZ  s^  øè è € Ø/AˆHðØ#/ð  ð  ð  ð  ð  ð  ð  ˜%Ø�K�K�K�K�Kð $0ð"Ø"ŸYšY xÑ0Ô0�F�FøÝ ð "ð "ð "Ø!�F�F�Fð"øøøð Ð%¨.Ð%Ý'¨­hÔ.KÈVÑTÔTÐTà—’˜d D¨$Ñ/Ô/Ð/Ð/Ð/øÝð ð ð Ýœ<™>œ>�Ý0Ñ2Ô2ð -ð -Ø!�D”M 8Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -àð	øøøsS   ‡A8 ‰�A8 ˜. ­A8 ®=ºA8 ¼=½9A8 Á8+CÂ#B:Â.CÂ:B>	Â>CÃB>	ÃCz<class 'async_generator'>)rL   r­  )rL   r¶  )"r£   r¤   r•  r~   r{  r   r¥   r   r‚   r   rÐ   rÑ   r   r¦  r—   r   rô   r§  rò   rõ   r	   rÓ   ró   rû   r°   rP   r
   rü   r   r   r   rý   rR   ro   )r�   rp  rß   r  rœ  rÿ   rì   r  r¨  r¥  r  rœ   r  r_   rµ  r¸  r´  r   r´   r‹  s                   @@@€r@   Ú
new_streamz/_wrap_agent_executor_stream.<locals>.new_streamü  sw  øøøø€ åÔ&Ñ(Ô(ˆØ×,Ò,Õ-AÑBÔBˆØÐØ�1�TÐ+˜DÐ+Ð+Ð+ FÐ+Ð+Ð+å+¨D°$¸Ñ?Ô?‰ˆ�%àˆØˆÝ& v¤~Ñ6Ô6ð 	"Ø"œNÐ+<Ô=¸hÔGÈÔQˆMØ#œ^Ð,=Ô>¸xÔHÈÔSˆNˆNÝ$Ñ&Ô&ð 	"¨;Ô+Fð 	"à ˆMØ!ˆNå% f¤nÑ5Ô5ð 	EÝÔ$×/Ò/Ø3;ÐOÐ/ XÐ/Ð/Ð/Àà¥Ô!7Ø#Õ%9Ô%@ÝÔ2°NÝÔ6¸ð	ð 0ñ ô ˆDð ð JØ×"Ò"¥8Ô#>ÀÑIÔIÐIøå"9Ñ";Ô";Ðà&Ð&ÝÔ)Ø3;ÐOÐ/ XÐ/Ð/Ð/ÀÝ+Ô2ðñ ô ˆDð
 �NŠNÑÔÐà�MŠM�(Ô8¸.ÑIÔIÐIØ�MŠM�(Ô<¸dÑCÔCÐCàð EØ—’�hÔ9¸8ÑDÔDÐDå˜4 Ñ'Ô'Ð'å(+¨D©	¬	°Qª¨��Q”—’˜GÑ$Ô$Ð$¸DˆØÐ ÐÝ"9¸5¸'Ñ"BÔ"BÐåÔ0Ñ2Ô2ˆEõ 0°´Ñ?Ô?ð)Õ.Ð/BÀDÈ%ÑPÔPÐPà(ð ð
 Ð(Ý#ØÝÔ4Ø!Ø ð	ñ ô ð ð ��4Ð)˜$Ð)Ð)Ð) &Ð)Ð)ˆàˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð*	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ* �t�F‰|Œ|ÑÔÐ ;Ò;Ð;Ø'Ð'Ñ)Ô)ˆFˆFà!�\‘^”^ˆFàˆr?   rª  r   )r‹  r¹  s   ` r@   r‘   r‘   û  s@   ø€ Ý
ˆ1�X„Xðwð wð wð wð wñ „Xðwðr Ðr?   Úprovider_classc                 óZ  — | €dS t          | d¦  «        rt          | j        ¦  «        | _        t          | d¦  «        rt          | j        ¦  «        | _        t          | d¦  «        rt	          | j        ¦  «        | _        t          | d¦  «        rt	          | j        ¦  «        | _        dS dS )z<Patch an embeddings provider class with monitoring wrappers.NÚembed_documentsÚembed_queryÚaembed_documentsÚaembed_query)rY  Ú_wrap_embedding_methodr¼  r½  Ú_wrap_async_embedding_methodr¾  r¿  )rº  s    r@   r“   r“   y  sÇ   € àÐØˆåˆ~Ð0Ñ1Ô1ð 
Ý)?ØÔ*ñ*
ô *
ˆÔ&õ ˆ~˜}Ñ-Ô-ð XÝ%;¸NÔ<VÑ%WÔ%WˆÔ"Ýˆ~Ð1Ñ2Ô2ð 
Ý*FØÔ+ñ+
ô +
ˆÔ'õ ˆ~˜~Ñ.Ô.ð 
Ý&BØÔ'ñ'
ô '
ˆÔ#Ð#Ð#ð
ð 
r?   c                 ó>   ‡ — t          ‰ ¦  «        dˆ fd„¦   «         }|S )z>Wrap sync embedding methods (embed_documents and embed_query).r�   r   rp  rß   rL   c           	      ó(  •— t          j        ¦   «         }|                     t          ¦  «        }|€ ‰| g|¢R i |¤ŽS t	          | dd ¦  «        pt	          | dd ¦  «        }d}t          |j        ¦  «        r|j        d         d         d         }nt          ¦   «         r	|j        rd}t          |j        ¦  «        rêt           j
                             |rd|› �nd	d
t          j        dt          j        t          j        d	i¬¦  «        5 }|r |                     t          j        |¦  «         |rRt'          |¦  «        dk    r?|d         }t)          |t*          ¦  «        r|n|g}	t-          |t          j        |	d¬¦  «          ‰| g|¢R i |¤Ž}
|
cd d d ¦  «         S # 1 swxY w Y   d S t          j        t          j        |rd|› �nd	t          j        ¬¦  «        5 }|                     t          j        d	¦  «         |r |                     t          j        |¦  «         |rRt'          |¦  «        dk    r?|d         }t)          |t*          ¦  «        r|n|g}	t-          |t          j        |	d¬¦  «          ‰| g|¢R i |¤Ž}
|
cd d d ¦  «         S # 1 swxY w Y   d S ©Nrâ   rã   Frç   rè   ré   Tzembeddings Ú
embeddingsrÊ   rË   rÏ   r   rê   rÎ   ©r£   r¤   r•  r~   r+  r   r¥   r   r‚   r   rÐ   rÑ   r   ÚGEN_AI_EMBEDDINGSr—   r   rô   rò   rö   r°   rQ   rc   r   ÚGEN_AI_EMBEDDINGS_INPUTró   ©r�   rp  rß   r  rœ  rã   r  r´   Ú
input_dataÚtextsr_   r‹  s              €r@   Únew_embedding_methodz4_wrap_embedding_method.<locals>.new_embedding_method‘  s|  ø€ åÔ&Ñ(Ô(ˆØ×,Ò,Õ-AÑBÔBˆØÐØ�1�TÐ+˜DÐ+Ð+Ð+ FÐ+Ð+Ð+å˜T 7¨DÑ1Ô1ÐVµW¸TÀ<ÐQUÑ5VÔ5Vˆ
àˆÝ& v¤~Ñ6Ô6ð 	!Ø"œNÐ+<Ô=¸hÔGÈÔQˆMˆMÝ$Ñ&Ô&ð 	!¨;Ô+Fð 	!à ˆMå% f¤nÑ5Ô5ð )	ÝÔ"×-Ò-Ø3=ÐOÐ/ :Ð/Ð/Ð/À<à¥Ô!5Ø#Õ%9Ô%@ÝÔ2°Lðð .ñ ô ð ð Øð RØ×&Ò&¥xÔ'DÀjÑQÔQÐQà ð ¥S¨¡Y¤Y°¢] ]Ø!% a¤�Jå*4°ZÅÑ*FÔ*FÐX˜J˜JÈZÈL�EÝ'Ø�hÔ>ÀÈeðñ ô ð ð ˜˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1�Øð)ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð õ, Ô&ÝÔ'Ø3=ÐOÐ/ :Ð/Ð/Ð/À<Ý+Ô2ðñ ô ð ð Ø—’�hÔ<¸lÑKÔKÐKØð MØ—M’M¥(Ô"?ÀÑLÔLÐLà ð ¥S¨¡Y¤Y°¢] ]Ø!% a¤�Jå*4°ZÅÑ*FÔ*FÐX˜J˜JÈZÈL�EÝ'Ø�hÔ>ÀÈeðñ ô ð ð ˜˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1�Øð%ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s&   ÄBFÆFÆFÇB$JÊJÊJrª  r   )r‹  rÌ  s   ` r@   rÀ  rÀ  Ž  s<   ø€ õ ˆ1�X„Xð8ð 8ð 8ð 8ð 8ñ „Xð8ðt  Ðr?   c                 óN   ‡ — t          ‰ ¦  «        	 	 	 	 	 	 	 	 dˆ fd„¦   «         }|S )zAWrap async embedding methods (aembed_documents and aembed_query).r�   r   rp  rß   rL   c           	   Ÿ   óP  •K  — t          j        ¦   «         }|                     t          ¦  «        }|€ ‰| g|¢R i |¤Žƒ d {V —†S t	          | dd ¦  «        pt	          | dd ¦  «        }d}t          |j        ¦  «        r|j        d         d         d         }nt          ¦   «         r	|j        rd}t          |j        ¦  «        rðt           j
                             |rd|› �nd	d
t          j        dt          j        t          j        d	i¬¦  «        5 }|r |                     t          j        |¦  «         |rRt'          |¦  «        dk    r?|d         }t)          |t*          ¦  «        r|n|g}	t-          |t          j        |	d¬¦  «          ‰| g|¢R i |¤Žƒ d {V —†}
|
cd d d ¦  «         S # 1 swxY w Y   d S t          j        t          j        |rd|› �nd	t          j        ¬¦  «        5 }|                     t          j        d	¦  «         |r |                     t          j        |¦  «         |rRt'          |¦  «        dk    r?|d         }t)          |t*          ¦  «        r|n|g}	t-          |t          j        |	d¬¦  «          ‰| g|¢R i |¤Žƒ d {V —†}
|
cd d d ¦  «         S # 1 swxY w Y   d S rÄ  rÆ  rÉ  s              €r@   Únew_async_embedding_methodz@_wrap_async_embedding_method.<locals>.new_async_embedding_methodÒ  s¸  øè è € õ Ô&Ñ(Ô(ˆØ×,Ò,Õ-AÑBÔBˆØÐØ˜˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1å˜T 7¨DÑ1Ô1ÐVµW¸TÀ<ÐQUÑ5VÔ5Vˆ
àˆÝ& v¤~Ñ6Ô6ð 	!Ø"œNÐ+<Ô=¸hÔGÈÔQˆMˆMÝ$Ñ&Ô&ð 	!¨;Ô+Fð 	!à ˆMå% f¤nÑ5Ô5ð )	ÝÔ"×-Ò-Ø3=ÐOÐ/ :Ð/Ð/Ð/À<à¥Ô!5Ø#Õ%9Ô%@ÝÔ2°Lðð .ñ ô ð ð Øð RØ×&Ò&¥xÔ'DÀjÑQÔQÐQà ð ¥S¨¡Y¤Y°¢] ]Ø!% a¤�Jå*4°ZÅÑ*FÔ*FÐX˜J˜JÈZÈL�EÝ'Ø�hÔ>ÀÈeðñ ô ð ð  !˜q Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7�Øð)ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð õ, Ô&ÝÔ'Ø3=ÐOÐ/ :Ð/Ð/Ð/À<Ý+Ô2ðñ ô ð ð Ø—’�hÔ<¸lÑKÔKÐKØð MØ—M’M¥(Ô"?ÀÑLÔLÐLà ð ¥S¨¡Y¤Y°¢] ]Ø!% a¤�Jå*4°ZÅÑ*FÔ*FÐX˜J˜JÈZÈL�EÝ'Ø�hÔ>ÀÈeðñ ô ð ð  !˜q Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7�Øð%ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s&   ÄB
F%Æ%F)Æ,F)Ç$B*JÊJÊ"Jrª  r   )r‹  rÏ  s   ` r@   rÁ  rÁ  Ï  s\   ø€ õ ˆ1�X„Xð:Øð:Ø!ð:Ø-2ð:à	ð:ð :ð :ð :ð :ñ „Xð:ðx &Ð%r?   )rJ   rK   rL   rM   )r]   rK   rL   rK   )ra   r   rL   r   )rj   rk   rL   rl   )rq   rl   rL   rw   rŒ   )r›   r   rœ   r�   rL   N)rJ  r   rL   rK  )r  rR  rL   r2   )ra  r   rL   rÞ   )r´   rf  r  r0   rL   N)ra  r   rp  r   rß   r   rL   rq  )rì   r   rL   r|  )r´   rf  rì   r   rL   N)r‹  rŒ  rL   rŒ  )rº  r   rL   N)tr™  r  r±  r‡   Úcollectionsr   Ú	functoolsr   Útypingr   r   r£   Úsentry_sdk.ai.utilsr   r	   r
   r   r   r   Úsentry_sdk.constsr   r   Úsentry_sdk.integrationsr   r   Úsentry_sdk.scoper   Úsentry_sdk.tracesr   Úsentry_sdk.tracing_utilsr   r   r   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   r   r    r!   r"   Úuuidr#   Úsentry_sdk._typesr$   Úsentry_sdk.tracingr%   Úlangchain_core.callbacksr&   r'   r(   r)   Úlangchain_core.messagesr*   r+   Úlangchain_core.outputsr,   r-   r.   r/   r0   ÚImportErrorr2   Úlangchain_classic.agentsrA   Úlangchain.agentsÚ	TypeErrorÚlangchain_openairB   rC   Úlangchain_google_vertexairD   Úlangchain_awsrE   Úlangchain_cohererF   Úlangchain_mistralairG   Úlangchain_huggingfacerH   Úlangchain_ollamarI   rT   Ú GEN_AI_REQUEST_FREQUENCY_PENALTYrú   ÚGEN_AI_REQUEST_MAX_TOKENSÚGEN_AI_REQUEST_PRESENCE_PENALTYÚGEN_AI_REQUEST_TEMPERATUREÚGEN_AI_REQUEST_TOP_KÚGEN_AI_REQUEST_TOP_Prø   r`   ri   rv   r|   r~   r¨   rª   rQ  r`  rW  r  r{  r†  rû   r�   r�   r‘   r“   rÀ  rÁ  r>   r?   r@   ú<module>rñ     sž  ðØ Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð (ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ÐÐÐÐÐà*Ð*Ð*Ð*Ð*Ð*Ø'Ð'Ð'Ð'Ð'Ð'ð2ðð ð ð ð ð ð ð ð ð ð ð ð ?Ð>Ð>Ð>Ð>Ð>Ð>Ð>ðð ð ð ð ð ð ð ð ð ð ð ð ð ð øð ð 2ð 2ð 2Ø
ˆ,Ð0Ñ
1Ô
1Ð1ð2øøøðð ð ð ð �ñ ô ð ð	à6Ð6Ð6Ð6Ð6Ð6Ð6øØð ð ð ðà2Ð2Ð2Ð2Ð2Ð2Ð2øà˜Ð#ð ð ð ØˆˆˆðøøøøøðøøøðØ1Ð1Ð1Ð1Ð1Ð1Ð1øØð ð ð ØÐÐÐðøøøð!Ø6Ð6Ð6Ð6Ð6Ð6Ð6øØð !ð !ð !Ø ÐÐÐð!øøøððð ð ð ð ð ð øð ð ð ð ØÐÐÐðøøøðØ/Ð/Ð/Ð/Ð/Ð/Ð/øØð ð ð ØÐÐÐðøøøðØ1Ð1Ð1Ð1Ð1Ð1Ð1øØð ð ð ØÐÐÐðøøøððð ð ð ð ð ð øð ð ð ð ØÐÐÐðøøøð!ðð ð ð ð ð ð øð ð !ð !ð !Ø ÐÐÐð!øøøðØ1Ð1Ð1Ð1Ð1Ð1Ð1øØð ð ð ØÐÐÐðøøøðð ð ð ð "ÔBàÔ8ØÔ4Ø Ô@ØÔ6ØÔ5ØÔ*ØÔ*ð
ð 
€ð
;Ø#ð
;àð
;ð 
;ð 
;ð 
;ðð ð ð ð(ð ð ð ð,	Ø$ð	àð	ð 	ð 	ð 	ð&5ð &5ð &5ð &5ð &5˜;ñ &5ô &5ð &5ðR<ð <ð <ð <ð <ðK*ð K*ð K*ð K*ð K*Ð1ñ K*ô K*ð K*ð\5Øð5à9ð5ð 5ð 5ð 5ð"=Øbð=àð=ð =ð =ð =ð@ð ð ð ð85NØ
%ð5NØ1<ð5Nà	ð5Nð 5Nð 5Nð 5NðpØ	ðØðØ%*ðà0ðð ð ð ð:>:ð >:ð >:ð >:ðB
ð 
ð 
ð 
ð0Mð Mð Mð Mð`hð hð hð hðV{ð {ð {ð {ð|
ð 
ð 
ð 
ð*> ð > ð > ð > ðB@&ð @&ð @&ð @&ð @&ð @&sÒ   Â"B7 Â7CÃC! Ã!D Ã'C.Ã-D Ã.	C:Ã7D Ã9C:Ã:D Ã?D ÄD ÄDÄDÄD  Ä D*Ä)D*Ä.D5 Ä5D?Ä>D?ÅE
 Å
EÅEÅE ÅE)Å(E)Å-E4 Å4E>Å=E>ÆF	 Æ	FÆFÆF ÆF(Æ'F(