Ë
    õ�Dj2$  ã                   óF  — 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	 d dl
mZ erd dl
mZmZmZ d dlmZ d d	lZd d
l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 erd dlm Z  	 d dlm"Z" ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  dœZ+ejX                  ejZ                  dœZ.ddddœZ/ddddddœZ0 G d „ d!e«      Z1d"„ Z2d#„ Z3d$„ Z4y	# e!$ r	  ed«      ‚w xY w# e!$ r	 d dlm#Z" Y Œªw xY w)%é    ©Úwraps)Úconsts)Úrecord_token_usage)ÚSPANDATA)Úset_data_normalized)ÚTYPE_CHECKING)ÚAnyÚCallableÚIterator)ÚSpanN)Úshould_send_default_pii)ÚDidNotEnableÚIntegration)Úcapture_internal_exceptionsÚevent_from_exception)ÚClient)Ú
BaseCohere)ÚChatStreamEndEventÚNonStreamedChatResponse)ÚStreamedChatResponsezCohere not installed)ÚStreamEndStreamedChatResponse)ÚStreamedChatResponse_StreamEnd)ÚmodelÚkÚpÚseedÚfrequency_penaltyÚpresence_penaltyÚraw_prompting)ÚtoolsÚpreamblezai.generation_idzai.is_search_requiredzai.finish_reason)Úgeneration_idÚis_search_requiredÚfinish_reasonzai.citationszai.documentszai.search_querieszai.search_resultszai.tool_calls)Ú	citationsÚ	documentsÚsearch_queriesÚsearch_resultsÚ
tool_callsc                   ó2   — e Zd ZdZde› �Zdd„Zed„ «       Zy)ÚCohereIntegrationÚcoherezauto.ai.c                 ó   — || _         y )N)Úinclude_prompts)Úselfr/   s     úbC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\sentry_sdk/integrations/cohere.pyÚ__init__zCohereIntegration.__init__I   s
   € à.ˆÕó    c                  óØ   — t        t        j                  d¬«      t        _        t        t        j
                  «      t        _        t        t        j                  d¬«      t        _        y )NF)Ú	streamingT)Ú
_wrap_chatr   ÚchatÚ_wrap_embedr   ÚembedÚchat_stream© r3   r1   Ú
setup_oncezCohereIntegration.setup_onceM   s;   € ô %¤Z§_¡_ÀÔFŒ
ŒÜ"¤6§<¡<Ó0ŒŒÜ!+¬J×,BÑ,BÈdÔ!SŒ
Õr3   N)T)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚoriginr2   Ústaticmethodr<   r;   r3   r1   r,   r,   E   s.   „ Ø€JØ˜
�|Ð$€Fó/ð ñTó ñTr3   r,   c                 ó’   — t        | t        j                  «       j                  dddœ¬«      \  }}t        j                  ||¬«       y )Nr-   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   Ú
sentry_sdkÚ
get_clientÚoptionsÚcapture_event)ÚexcÚeventrH   s      r1   Ú_capture_exceptionrO   U   s?   € ä&ØÜ!×,Ñ,Ó.×6Ñ6Ø#°Ñ6ô�K€Eˆ4ô
 ×Ñ˜U¨Ö.r3   c                 ó<   ‡ ‡‡— d„ Št        ‰ «      ˆˆ ˆfd„«       }|S )Nc           	      ó@  — |rdt        |d«      r&t        | t        j                  |j                  g«       t
        D ])  }t        ||«      sŒt        | d|z   t        ||«      «       Œ+ t        D ])  }t        ||«      sŒt        | d|z   t        ||«      «       Œ+ t        |d«      rút        |j                  d«      rKt        | |j                  j                  j                  |j                  j                  j                  ¬«       n`t        |j                  d«      rJt        | |j                  j                  j                  |j                  j                  j                  ¬«       t        |j                  d«      r"t        | d|j                  j                  «       y y y )	NÚtextzai.ÚmetaÚbilled_units)Úprompt_tokensÚcompletion_tokensÚtokensÚwarningszai.warnings)Úhasattrr   r   ÚAI_RESPONSESrR   ÚCOLLECTED_PII_CHAT_RESP_ATTRSÚgetattrÚCOLLECTED_CHAT_RESP_ATTRSrS   r   rT   Úinput_tokensÚoutput_tokensrW   rX   )ÚspanÚresÚinclude_piiÚpii_attrÚattrs        r1   Úcollect_chat_response_fieldsz0_wrap_chat.<locals>.collect_chat_response_fieldsb   sM  € áÜ�s˜FÔ#Ü#ØÜ×)Ñ)Ø—X‘X�Jôô
 :ò X�Ü˜3 Õ)Ü'¨¨e°hÑ.>ÄÈÈXÓ@VÕWðXô .ò 	LˆDÜ�s˜DÕ!Ü# D¨%°$©,¼ÀÀTÓ8JÕKð	Lô �3˜ÔÜ�s—x‘x Ô0Ü"ØØ"%§(¡(×"7Ñ"7×"DÑ"DØ&)§h¡h×&;Ñ&;×&IÑ&Iöô
 ˜Ÿ™ 8Ô,Ü"ØØ"%§(¡(§/¡/×">Ñ">Ø&)§h¡h§o¡o×&CÑ&Cõô �s—x‘x Ô,Ü# D¨-¸¿¹×9JÑ9JÕKð -ð  r3   c                  óÞ  •‡‡	‡
— t        j                  «       j                  t        «      Š‰�#d|vst	        |j                  d«      t        «      s ‰| i |¤ŽS |j                  d«      }t        j                  t        j                  j                  dt        j                  ¬«      Š
‰
j                  «        	  ‰| i |¤Ž}t!        «       5  t#        «       rƒ‰j$                  rwt'        ‰
t(        j*                  t-        t/        d„ |j                  dg «      «      «      d|dœgz   «       t0        j3                  «       D ]  \  }}||v sŒt'        ‰
|||   «       Œ t4        j3                  «       D ]  \  }}||v sŒt'        ‰
|||   «       Œ t'        ‰
t(        j6                  d«       ‰r|Š	ˆˆˆ	ˆ
fd	„} |«       cd d d «       S t	        |t8        «      r5 ‰‰
|t#        «       xr ‰j$                  ¬
«       ‰
j                  d d d «       n t'        ‰
dd«       ‰
j                  d d d «       |cd d d «       S # t        $ r&}t        |«       ‰
j                  d d d «       |d ‚d }~ww xY w# 1 sw Y   y xY w)NÚmessagezcohere.client.Chat©ÚopÚnamerA   c                 óT   — t        | dd«      j                  «       t        | dd«      dœS )NÚroleÚ rg   ©rl   Úcontent)r\   Úlower)Úxs    r1   ú<lambda>z._wrap_chat.<locals>.new_chat.<locals>.<lambda>¦   s*   € Ü(/°°6¸2Ó(>×(DÑ(DÓ(FÜ+2°1°iÀÓ+Dñ'€ r3   Úchat_historyÚuserrn   Fc               3   ó   •K  — t        «       5  ‰D ]Q  } t        | t        «      st        | t        «      r+ ‰‰| j                  t        «       xr ‰j                  ¬«       | –— ŒS 	 d d d «       ‰j                  d d d «       y # 1 sw Y   ŒxY w­w)N©rb   )r   Ú
isinstancer   r   Úresponser   r/   Ú__exit__)rq   re   ÚintegrationÚold_iteratorr`   s    €€€€r1   Únew_iteratorz2_wrap_chat.<locals>.new_chat.<locals>.new_iterator»   s�   øè ø€ ô 5Ó6ñ $Ø!-ò 
$˜AÜ)¨!Ô-?Ô@ÄJØ !Ô#@ôEñ !=Ø$(Ø$%§J¡JÜ0GÓ0Iò 1DØ(3×(CÑ(Cõ	!"ð #$›Gñ
$÷$ð —M‘M $¨¨dÕ3÷$ð $üs   ƒBŽABÁ&BÂBÂBrv   Úunknown_responseT)rI   rJ   Úget_integrationr,   rw   ÚgetÚstrÚ
start_spanr   ÚOPÚCOHERE_CHAT_COMPLETIONS_CREATErA   Ú	__enter__Ú	ExceptionrO   ry   r   r   r/   r   r   ÚAI_INPUT_MESSAGESÚlistÚmapÚCOLLECTED_PII_CHAT_PARAMSÚitemsÚCOLLECTED_CHAT_PARAMSÚAI_STREAMINGr   )ÚargsÚkwargsrg   ra   Úer   Úvr|   rz   r{   r`   re   Úfr5   s           @@@€€€r1   Únew_chatz_wrap_chat.<locals>.new_chat„   sX  û€ ô !×+Ñ+Ó-×=Ñ=Ô>OÓPˆð ÐØ Ñ&Ü˜fŸj™j¨Ó3´SÔ9á�dÐ%˜fÑ%Ð%à—*‘*˜YÓ'ˆä×$Ñ$Ü�y‰y×7Ñ7Ø%Ü$×+Ñ+ô
ˆð
 	�‰Ôð	Ù�TÐ$˜VÑ$ˆCô )Ó*ñ :	Ü&Ô(¨[×-HÒ-HÜ#ØÜ×.Ñ.ÜÜñð #ŸJ™J ~°rÓ:óóð !'°7Ñ;Ð<ñ	=ôô 6×;Ñ;Ó=ò @‘D�A�qØ˜F’{Ü+¨D°!°V¸A±YÕ?ð@ô .×3Ñ3Ó5ò <‘��1Ø˜’;Ü'¨¨a°¸±Õ;ð<ô   ¤h×&;Ñ&;¸UÔCáØ"�÷4ñ$ $“~÷]:	ñ :	ô^ ˜CÔ!8Ô9Ù,ØØÜ 7Ó 9ò !4Ø#×3Ñ3õ	ð —‘˜d D¨$Õ/ä# DÐ*<¸dÔCØ—‘˜d D¨$Ô/Ø÷u:	ñ :	øô ò 	Ü˜qÔ!Ø�M‰M˜$  dÔ+Ø˜Ðûð	ú÷
:	ð :	ús8   Â9H1 ÃA;I#Å0I#Å8?I#ÇA&I#È1	I È:!IÉI É#I,r   )r‘   r5   r’   re   s   `` @r1   r6   r6   _   s,   ú€ ò LôD ˆ1ƒXõTó ðTðl €Or3   c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                  óì  •— t        j                  «       j                  t        «      }|€ ‰| i |¤ŽS t        j                  t
        j                  j                  dt        j                  ¬«      5 }d|v r“t        «       r‰|j                  r}t        |d   t        «      rt        |d|d   g«       nXt        |d   t        «      rEt        |d   «      dkD  r4t        |d   d   t        «      rt        |t         j"                  |d   «       d|v rt        |t         j$                  |d   «       	  ‰| i |¤Ž}t+        |d«      r€t+        |j,                  d«      rjt+        |j,                  j.                  d	«      rJt1        ||j,                  j.                  j2                  |j,                  j.                  j2                  ¬
«       |cd d d «       S # t&        $ r}t)        |«       |d ‚d }~ww xY w# 1 sw Y   y xY w)NzCohere Embedding Creationrh   Útextszai.textsr   r   rS   rT   r^   )rU   Útotal_tokens)rI   rJ   r~   r,   r�   r   r‚   ÚCOHERE_EMBEDDINGS_CREATErA   r   r/   rw   r€   r   r‡   Úlenr   r†   ÚAI_MODEL_IDr…   rO   rY   rS   rT   r   r^   )r�   rŽ   rz   r`   ra   r�   r‘   s         €r1   Ú	new_embedz_wrap_embed.<locals>.new_embedá   s¸  ø€ ô !×+Ñ+Ó-×=Ñ=Ô>OÓPˆØÐÙ�dÐ%˜fÑ%Ð%ä×"Ñ"Ü�y‰y×1Ñ1Ø,Ü$×+Ñ+ô
ð $	ð Ø˜&Ñ Ü'Ô)¨k×.IÒ.Iä˜f W™o¬sÔ3Ü'¨¨j¸6À'¹?Ð:KÕLä˜v g™´Ô5Ü˜F 7™OÓ,¨qÒ0Ü" 6¨'¡?°1Ñ#5´sÔ;ä'Øœh×8Ñ8¸&À¹/ôð ˜&Ñ Ü# D¬(×*>Ñ*>ÀÀwÁÔPð"Ù˜Ð( Ñ(�ô
 ˜˜VÔ$Ü˜CŸH™H nÔ5Ü˜CŸH™H×1Ñ1°>ÔBä"ØØ"%§(¡(×"7Ñ"7×"DÑ"DØ!$§¡×!6Ñ!6×!CÑ!Cõð
 ÷I$	ñ $	øô. ò "Ü" 1Ô%Ø˜TÐ!ûð"ú÷/$	ð $	ús2   Á1B:G*Ä,GÄ4BG*Ç	G'ÇG"Ç"G'Ç'G*Ç*G3r   )r‘   rš   s   ` r1   r8   r8   Þ   s$   ø€ ô ˆ1ƒXó*ó ð*ðX Ðr3   )5Ú	functoolsr   rI   r   Úsentry_sdk.ai.monitoringr   Úsentry_sdk.constsr   Úsentry_sdk.ai.utilsr   Útypingr	   r
   r   r   Úsentry_sdk.tracingr   Úsentry_sdk.scoper   Úsentry_sdk.integrationsr   r   Úsentry_sdk.utilsr   r   Úcohere.clientr   Úcohere.base_clientr   r-   r   r   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‰   r]   r[   r,   rO   r6   r8   r;   r3   r1   ú<module>r¯      s3  ðÝ å Ý 7Ý &Ý 3å  áß.Ñ.Ý'ã Ý 4ß =ß Nð/Ý$Ý-÷ñ
 Ý/ðWå4ð ×!Ñ!Ø	×	Ñ	Ø	×	Ñ	Ø×ÑØ!×6Ñ6Ø ×4Ñ4Ø×.Ñ.ñÐ ð ×ÑØ×$Ñ$ñÐ ð (Ø1Ø'ñÐ ð  ØØ)Ø)Ø!ñ!Ð ôT˜ô Tò /ò|ó~0øðC ò /Ù
Ð-Ó
.Ð.ð/ûð ò WßVðWús   ÁD Á/D ÄDÄD ÄD 