§
    xÅjˆ*  ã                   ó¬  — d dl Z d dlmZ d dlmZ d dl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 erd d
lmZmZmZmZ d dlmZ d dlZd dlmZmZ d dlmZ d dlmZmZm Z m!Z! 	 d dl"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( erd dl"m)Z) n# e*$ r  ed¦  «        ‚w xY w	 d dl"m+Z+ n# e*$ r	 d dl"m,Z+ Y nw xY wej-        ej.        ej/        ej0        ej1        ej2        ej3        dœZ4ej5        ej6        dœZ7ej8        ej9        ej:        dœZ;ej<        ej=        ej>        ej?        ej@        dœZA G d„ de¦  «        ZBdddeCdeDfd„ZEd*d"„ZFd+d$„ZGd%d&d'eDdd&fd(„ZHd,d)„ZIdS )-é    N©Úwraps)ÚTYPE_CHECKING)Úconsts)Úrecord_token_usage)Úget_start_span_functionÚset_data_normalized)ÚSPANDATA)ÚStreamedSpan)Úhas_span_streaming_enabled)ÚAnyÚCallableÚIteratorÚUnion)ÚSpan)ÚDidNotEnableÚIntegration)Úshould_send_default_pii)Úcapture_internal_exceptionsÚevent_from_exceptionÚhas_data_collection_enabledÚreraise)ÚChatStreamEndEventÚNonStreamedChatResponse)Ú
BaseCohere)ÚClient)ÚStreamedChatResponsezCohere not installed)ÚStreamEndStreamedChatResponse)ÚStreamedChatResponse_StreamEnd)ÚmodelÚkÚpÚseedÚfrequency_penaltyÚpresence_penaltyÚraw_prompting)ÚtoolsÚpreamble)Úgeneration_idÚis_search_requiredÚfinish_reason)Ú	citationsÚ	documentsÚsearch_queriesÚsearch_resultsÚ
tool_callsc                   óJ   — e Zd ZdZde› �Zd
dd deddfd„Zedd	„¦   «         ZdS )ÚCohereIntegrationÚcoherezauto.ai.TÚselfÚinclude_promptsÚreturnNc                 ó   — || _         d S ©N)r5   )r4   r5   s     úOC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/cohere.pyÚ__init__zCohereIntegration.__init__Q   s   € Ø.ˆÔÐÐó    c                  óà   — t          t          j        d¬¦  «        t          _        t          t          j        ¦  «        t          _        t          t          j        d¬¦  «        t          _        d S )NF)Ú	streamingT)Ú
_wrap_chatr   ÚchatÚ_wrap_embedr   ÚembedÚchat_stream© r;   r9   Ú
setup_oncezCohereIntegration.setup_onceT   sG   € å$¥Z¤_ÀÐFÑFÔF�
ŒÝ"¥6¤<Ñ0Ô0�ŒÝ!+­JÔ,BÈdÐ!SÑ!SÔ!S�
ÔÐÐr;   )T)r6   N)	Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚoriginÚboolr:   ÚstaticmethodrD   rC   r;   r9   r2   r2   M   s{   € € € € € Ø€JØ$˜
Ð$Ð$€Fð/ð /Ð*ð /¸Tð /ÈTð /ð /ð /ð /ð ðTð Tð Tñ „\ðTð Tð Tr;   r2   ÚintegrationÚcategoryr6   c                 óÆ   — t          j        ¦   «         }t          |j        ¦  «        r&t	          |j        d         d         |         ¦  «        S t          ¦   «         o| j        S )NÚdata_collectionÚgen_ai)Ú
sentry_sdkÚ
get_clientr   ÚoptionsrJ   r   r5   )rL   rM   Úclients      r9   Ú_should_recordrU   [   sW   € ÝÔ"Ñ$Ô$€FÝ" 6¤>Ñ2Ô2ð KÝ�F”NÐ#4Ô5°hÔ?ÀÔIÑJÔJÐJå"Ñ$Ô$ÐD¨Ô)DÐDr;   Úexcr   c                 óŽ   — t          | t          j        ¦   «         j        dddœ¬¦  «        \  }}t          j        ||¬¦  «         d S )Nr3   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   rQ   rR   rS   Úcapture_event)rV   Úeventr\   s      r9   Ú_capture_exceptionr_   c   sU   € Ý&ØÝ!Ô,Ñ.Ô.Ô6Ø#°Ð6Ð6ðñ ô �K€Eˆ4õ
 Ô˜U¨Ð.Ñ.Ô.Ð.Ð.Ð.r;   Úspanc                 óŠ   — t          | t          ¦  «        r|                      ¦   «          d S |                      d d d ¦  «         d S r8   )Ú
isinstancer   ÚendÚ__exit__)r`   s    r9   Ú	_end_spanre   l   sA   € Ý�$�Ñ%Ô%ð (Ø�Š‰
Œ
ˆ
ˆ
ˆ
à�Š�d˜D $Ñ'Ô'Ð'Ð'Ð'r;   ÚfúCallable[..., Any]r=   c                 óh   ‡ ‡‡— dddddt           dd fd„Št          ‰ ¦  «        dˆˆ ˆfd„¦   «         }|S )Nr`   zUnion[Span, StreamedSpan]Úresr   Úinclude_piir6   c           	      ó  — |rmt          |d¦  «        r!t          | t          j        |j        g¦  «         t
          D ]4}t          ||¦  «        r"t          | d|z   t          ||¦  «        ¦  «         Œ5t          D ]4}t          ||¦  «        r"t          | d|z   t          ||¦  «        ¦  «         Œ5t          |d¦  «        rÇt          |j        d¦  «        r1t          | |j        j
        j        |j        j
        j        ¬¦  «         nEt          |j        d¦  «        r0t          | |j        j        j        |j        j        j        ¬¦  «         t          |j        d¦  «        r)t          | t          j        |j        j        ¦  «         d S d S d S )NÚtextzai.ÚmetaÚbilled_units)Úinput_tokensÚoutput_tokensÚtokensÚwarnings)Úhasattrr	   r
   ÚAI_RESPONSESrl   ÚCOLLECTED_PII_CHAT_RESP_ATTRSÚgetattrÚCOLLECTED_CHAT_RESP_ATTRSrm   r   rn   ro   rp   rq   ÚAI_WARNINGSrr   )r`   ri   rj   Úpii_attrÚattrs        r9   Úcollect_chat_response_fieldsz0_wrap_chat.<locals>.collect_chat_response_fieldst   s½  € ð
 ð 		XÝ�s˜FÑ#Ô#ð Ý#ØÝÔ)Ø”X�Jñô ð õ
 :ð Xð X�Ý˜3 Ñ)Ô)ð XÝ'¨¨e°hÑ.>ÅÈÈXÑ@VÔ@VÑWÔWÐWøå-ð 	Lð 	LˆDÝ�s˜DÑ!Ô!ð LÝ# D¨%°$©,½ÀÀTÑ8JÔ8JÑKÔKÐKøå�3˜ÑÔð 	SÝ�s”x Ñ0Ô0ð Ý"ØØ!$¤Ô!6Ô!CØ"%¤(Ô"7Ô"Eðñ ô ð ð õ
 ˜œ 8Ñ,Ô,ð Ý"ØØ!$¤¤Ô!=Ø"%¤(¤/Ô"?ðñ ô ð õ �s”x Ñ,Ô,ð SÝ# D­(Ô*>ÀÄÔ@QÑRÔRÐRÐRÐRð	Sð 	SðSð Sr;   Úargsr   Úkwargsc                  ó€  •‡
‡‡— t          j        ¦   «                              t          ¦  «        Š
t	          t          j        ¦   «         j        ¦  «        }‰
�,d|vs(t          |                     d¦  «        t          ¦  «        s ‰| i |¤ŽS |                     d¦  «        }|r>t           j	         
                    dt          j        j        t          j        dœ¬¦  «        ŠnG t          ¦   «         t          j        j        dt          j        ¬¦  «        Š‰                     ¦   «          	  ‰| i |¤Ž}nr# t"          $ re}t%          j        ¦   «         }t)          ¦   «         5  t+          |¦  «          ‰j        |Ž  d d d ¦  «         n# 1 swxY w Y   t/          |Ž  Y d }~nd }~ww xY wt)          ¦   «         5  t1          ‰
d¦  «        rŒt3          ‰t4          j        t9          t;          d„ |                     dg ¦  «        ¦  «        ¦  «        d	|d
œgz   ¦  «         t<                               ¦   «         D ] \  }}||v rt3          ‰|||         ¦  «         Œ!t@                               ¦   «         D ] \  }}||v rt3          ‰|||         ¦  «         Œ!t3          ‰t4          j!        d¦  «         ‰r!|Šdˆˆ
ˆˆfd„}	 |	¦   «         cd d d ¦  «         S t          |tD          ¦  «        r, ‰‰|t1          ‰
d¦  «        ¬¦  «         tG          ‰¦  «         n t3          ‰dd¦  «         tG          ‰¦  «         d d d ¦  «         n# 1 swxY w Y   |S )NÚmessagezcohere.client.Chat©z	sentry.opzsentry.origin©ÚnameÚ
attributes©Úopr‚   rI   Úinputsc                 ól   — t          | dd¦  «                             ¦   «         t          | dd¦  «        dœS )NÚroleÚ r   ©rˆ   Úcontent)rv   Úlower)Úxs    r9   ú<lambda>z._wrap_chat.<locals>.new_chat.<locals>.<lambda>É   s8   € Ý(/°°6¸2Ñ(>Ô(>×(DÒ(DÑ(FÔ(FÝ+2°1°iÀÑ+DÔ+Dð'ð '€ r;   Úchat_historyÚuserrŠ   Fr6   úIterator[StreamedChatResponse]c            
   3   ó   •K  — t          ¦   «         5  ‰D ]Q} t          | t          ¦  «        st          | t          ¦  «        r! ‰‰| j        t          ‰d¦  «        ¬¦  «         | V — ŒR	 d d d ¦  «         n# 1 swxY w Y   t          ‰¦  «         d S )NÚoutputs©rj   )r   rb   r   r   ÚresponserU   re   )r�   r{   rL   Úold_iteratorr`   s    €€€€r9   Únew_iteratorz2_wrap_chat.<locals>.new_chat.<locals>.new_iteratorÞ   s÷   øè è € Ý4Ñ6Ô6ð 
$ð 
$Ø!-ð 	$ð 	$˜AÝ)¨!Õ-?Ñ@Ô@ð "ÅJØ !Õ#@ñEô Eð "ð !=Ð <Ø$(Ø$%¤JÝ0>¸{ÈIÑ0VÔ0Vð!"ñ !"ô !"ð !"ð
 #$˜G˜G˜G˜Gð	$ð
$ð 
$ð 
$ñ 
$ô 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$øøøð 
$ð 
$ð 
$ð 
$õ ˜d‘O”O�O�O�Os   ’AA4Á4A8Á;A8r“   r”   Úunknown_responseT)r6   r‘   )$rQ   rR   Úget_integrationr2   r   rS   rb   ÚgetÚstrÚtracesÚ
start_spanr   ÚOPÚCOHERE_CHAT_COMPLETIONS_CREATErI   r   Ú	__enter__Ú	ExceptionÚsysÚexc_infor   r_   rd   r   rU   r	   r
   ÚAI_INPUT_MESSAGESÚlistÚmapÚCOLLECTED_PII_CHAT_PARAMSÚitemsÚCOLLECTED_CHAT_PARAMSÚAI_STREAMINGr   re   )r|   r}   Úis_span_streaming_enabledr   ri   Úer£   r!   Úvr—   rL   r–   r`   r{   rf   r=   s             @@@€€€r9   Únew_chatz_wrap_chat.<locals>.new_chat™   sY  øøøø€ å Ô+Ñ-Ô-×=Ò=Õ>OÑPÔPˆÝ$>ÝÔ!Ñ#Ô#Ô+ñ%
ô %
Ð!ð
 ÐØ Ð&Ð&Ý˜fŸjšj¨Ñ3Ô3µSÑ9Ô9ð 'ð �1�dÐ%˜fÐ%Ð%Ð%à—*’*˜YÑ'Ô'ˆà$ð 	ÝÔ$×/Ò/Ø)å!'¤Ô!IÝ%6Ô%=ðð ð 0ñ ô ˆDˆDð -Õ*Ñ,Ô,Ý”9Ô;Ø)Ý(Ô/ðñ ô ˆDð
 �NŠNÑÔÐð	Ø�!�TÐ$˜VÐ$Ð$ˆCˆCøÝð 	ð 	ð 	Ý”|‘~”~ˆHÝ,Ñ.Ô.ð )ð )Ý" 1Ñ%Ô%Ð%Ø�”˜xÐ(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ �XÐÐÐÐÐÐÐøøøøð	øøøõ )Ñ*Ô*ð 4	 ð 4	 Ý˜k¨8Ñ4Ô4ð @Ý#ØÝÔ.ÝÝðð ð #ŸJšJ ~°rÑ:Ô:ñô ñô ð !'°7Ð;Ð;Ð<ñ	=ñô ð õ 6×;Ò;Ñ=Ô=ð @ð @‘D�A�qØ˜F�{�{Ý+¨D°!°V¸A´YÑ?Ô?Ð?øå-×3Ò3Ñ5Ô5ð <ð <‘��1Ø˜�;�;Ý'¨¨a°¸´Ñ;Ô;Ð;øÝ ¥hÔ&;¸UÑCÔCÐCàð  Ø"�ð$ð $ð $ð $ð $ð $ð $ð $ð $ð $�|‘~”~ðU4	 ð 4	 ð 4	 ð 4	 ñ 4	 ô 4	 ð 4	 ð 4	 õV ˜CÕ!8Ñ9Ô9ð 	 Ø,Ð,ØØÝ .¨{¸IÑ FÔ Fðñ ô ð õ
 ˜$‘”��å# DÐ*<¸dÑCÔCÐCÝ˜$‘”�ði4	 ð 4	 ð 4	 ñ 4	 ô 4	 ð 4	 ð 4	 ð 4	 ð 4	 ð 4	 ð 4	 øøøð 4	 ð 4	 ð 4	 ð 4	 ðj ˆ
sV   Ä(D1 Ä1
F Ä;!FÅFÅ6FÆF	ÆFÆ	F	Æ
FÆF Æ1DL3ËA!L3Ì3L7Ì:L7©r|   r   r}   r   r6   r   )rJ   r   )rf   r=   r®   r{   s   `` @r9   r>   r>   s   s�   øøø€ ð#SØ)ð#Sà&ð#Sõ ð#Sð 
ð	#Sð #Sð #Sð #SõJ ˆ1�X„Xð]ð ]ð ]ð ]ð ]ð ]ð ]ñ „Xð]ð~ €Or;   c                 ó>   ‡ — t          ‰ ¦  «        dˆ fd„¦   «         }|S )Nr|   r   r}   r6   c                  óv  •— t          j        ¦   «                              t          ¦  «        }|€ ‰	| i |¤ŽS t	          t          j        ¦   «         j        ¦  «        }|r>t           j                             dt          j	        j
        t          j        dœ¬¦  «        }n3 t          ¦   «         t          j	        j
        dt          j        ¬¦  «        }|5 }d|v rÄt          |d¦  «        r´t          |d         t          ¦  «        r#t!          |t"          j        |d         g¦  «         nvt          |d         t&          ¦  «        r[t)          |d         ¦  «        dk    rBt          |d         d         t          ¦  «        r!t!          |t"          j        |d         ¦  «         d|v r!t!          |t"          j        |d         ¦  «         	  ‰	| i |¤Ž}nh# t.          $ r[}t1          j        ¦   «         }t5          ¦   «         5  t7          |¦  «         d d d ¦  «         n# 1 swxY w Y   t9          |Ž  Y d }~nd }~ww xY wt;          |d	¦  «        r_t;          |j        d
¦  «        rJt;          |j        j        d¦  «        r0tA          ||j        j        j!        |j        j        j!        ¬¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )NzCohere Embedding Creationr€   r�   r„   Útextsr†   r   r    rm   rn   ro   )ro   Útotal_tokens)"rQ   rR   r™   r2   r   rS   rœ   r�   r   rž   ÚCOHERE_EMBEDDINGS_CREATErI   r   rU   rb   r›   r	   r
   ÚAI_TEXTSr¥   Úlenr¤   ÚAI_MODEL_IDr¡   r¢   r£   r   r_   r   rs   rm   rn   r   ro   )
r|   r}   rL   r«   Úspan_ctxr`   ri   r¬   r£   rf   s
            €r9   Ú	new_embedz_wrap_embed.<locals>.new_embedý   s]  ø€ å Ô+Ñ-Ô-×=Ò=Õ>OÑPÔPˆØÐØ�1�dÐ%˜fÐ%Ð%Ð%å$>ÝÔ!Ñ#Ô#Ô+ñ%
ô %
Ð!ð %ð 	Ý!Ô(×3Ò3Ø0å!'¤Ô!CÝ%6Ô%=ðð ð 4ñ ô ˆHˆHð 1Õ.Ñ0Ô0Ý”9Ô5Ø0Ý(Ô/ðñ ô ˆHð ð  	˜Ø˜&Ð Ð ¥^°KÀÑ%JÔ%JÐ Ý˜f Wœo­sÑ3Ô3ð 	Ý'¨­hÔ.?À&ÈÄ/ÐARÑSÔSÐSÐSå˜v gœµÑ5Ô5ðå˜F 7œOÑ,Ô,¨qÒ0Ð0Ý" 6¨'¤?°1Ô#5µsÑ;Ô;ð 1õ (Ø�hÔ8¸&À¼/ñô ð ð ˜&Ð Ð Ý# D­(Ô*>ÀÀwÄÑPÔPÐPð#Ø�a˜Ð( Ð(Ð(��øÝð #ð #ð #Ýœ<™>œ>�Ý0Ñ2Ô2ð *ð *Ý& qÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *å˜Ð"Ð"Ð"Ð"Ð"Ð"Ð"øøøøð	#øøøõ ˜˜VÑ$Ô$ð	å˜CœH nÑ5Ô5ð	õ ˜CœHÔ1°>ÑBÔBð	õ
 #ØØ!$¤Ô!6Ô!CØ!$¤Ô!6Ô!Cðñ ô ð ð
 ðA 	ð  	ð  	ð  	ñ  	ô  	ð  	ð  	ð  	ð  	ð  	ð  	øøøð  	ð  	ð  	ð  	ð  	ð  	sb   ÃC.J.Ç G	ÇJ.Ç	
H.Ç!H)Ç4HÈH)ÈHÈH)ÈHÈH)È$J.È)H.È.A3J.Ê.J2Ê5J2r¯   r   )rf   r¹   s   ` r9   r@   r@   ü   s:   ø€ Ý
ˆ1�X„Xð8ð 8ð 8ð 8ð 8ñ „Xð8ðt Ðr;   )rV   r   r6   N)r`   r   r6   N)rf   rg   r6   rg   )Jr¢   Ú	functoolsr   Útypingr   rQ   r   Úsentry_sdk.ai.monitoringr   Úsentry_sdk.ai.utilsr   r	   Úsentry_sdk.constsr
   Úsentry_sdk.tracesr   Úsentry_sdk.tracing_utilsr   r   r   r   r   Úsentry_sdk.tracingr   Úsentry_sdk.integrationsr   r   Úsentry_sdk.scoper   Úsentry_sdk.utilsr   r   r   r   r3   r   r   Úcohere.base_clientr   Úcohere.clientr   r   ÚImportErrorr   r   r·   ÚAI_TOP_KÚAI_TOP_PÚAI_SEEDÚAI_FREQUENCY_PENALTYÚAI_PRESENCE_PENALTYÚAI_RAW_PROMPTINGr©   ÚAI_TOOLSÚAI_PREAMBLEr§   ÚAI_GENERATION_IDÚAI_SEARCH_REQUIREDÚAI_FINISH_REASONrw   ÚAI_CITATIONSÚAI_DOCUMENTSÚAI_SEARCH_QUERIESÚAI_SEARCH_RESULTSÚAI_TOOL_CALLSru   r2   r›   rJ   rU   r_   re   r>   r@   rC   r;   r9   ú<module>rØ      s¾  ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?àð (Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5à'Ð'Ð'Ð'Ð'Ð'à Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð/ðð ð ð ð ð ð ð ð .Ð-Ð-Ð-Ð-Ð-Ø$Ð$Ð$Ð$Ð$Ð$àð 0Ø/Ð/Ð/Ð/Ð/Ð/øøØð /ð /ð /Ø
ˆ,Ð-Ñ
.Ô
.Ð.ð/øøøðWà4Ð4Ð4Ð4Ð4Ð4Ð4øØð Wð Wð WØVÐVÐVÐVÐVÐVÐVÐVðWøøøð
 Ô!Ø	Ô	Ø	Ô	ØÔØ!Ô6Ø Ô4ØÔ.ðð Ð ð ÔØÔ$ðð Ð ð Ô.Ø"Ô5ØÔ.ðð Ð ð Ô&ØÔ&ØÔ0ØÔ0ØÔ(ð!ð !Ð ðTð Tð Tð Tð T˜ñ Tô Tð TðEÐ 3ð E¸sð EÀtð Eð Eð Eð Eð/ð /ð /ð /ð(ð (ð (ð (ðFÐ&ð F°4ð FÐ<Pð Fð Fð Fð FðR<ð <ð <ð <ð <ð <s   Á*B ÂBÂB# Â#B1Â0B1