0i$ddlmZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z e rddl mZmZmZdd lmZdd lZdd lmZdd lmZmZdd lmZmZ ddlmZddlmZddlm Z m!Z!e rddlm"Z" ddlm$Z$ejLejNejPejRejTejVejXdZ-ej\ej^dZ0ejbejdejfdZ4ejjejlejnejpejrdZ:GddeZ;dZy #e#$r edwxYw#e#$r ddlm%Z$YwxYw)wraps)consts)record_token_usage)SPANDATA)set_data_normalized) TYPE_CHECKING)set_span_errored)AnyCallableIterator)SpanN)should_send_default_pii) DidNotEnable Integration)capture_internal_exceptionsevent_from_exception)Client) BaseCohere)ChatStreamEndEventNonStreamedChatResponse)StreamedChatResponsezCohere not installed)StreamEndStreamedChatResponse)StreamedChatResponse_StreamEnd)modelkpseedfrequency_penaltypresence_penalty raw_prompting)toolspreamble) generation_idis_search_required finish_reason) citations documentssearch_queriessearch_results tool_callsc2eZdZdZdeZddZedZy)CohereIntegrationcoherezauto.ai.c||_y)N)include_prompts)selfr0s M/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/cohere.py__init__zCohereIntegration.__init__Ks .cttjdt_ttj t_ttj dt_y)NF) streamingT) _wrap_chatrchat _wrap_embedrembed chat_streamr4r2 setup_oncezCohereIntegration.setup_onceOs;%Z__F "6<<0 !+J,B,Bd!S r4N)T)__name__ __module__ __qualname__ identifieroriginr3 staticmethodr=r<r4r2r-r-Gs.J | $F/TTr4r-ctt|tjjddd\}}tj ||y)Nr.F)typehandled)client_options mechanism)hint)r r sentry_sdk get_clientoptions capture_event)exceventrIs r2_capture_exceptionrPWsE& !,,.66#6KE4 U.r4c<dtfd}|S)Nc ^|rdt|dr&t|tj|jgt D])}t||st|d|zt ||+tD])}t||st|d|zt ||+t|drt|jdrKt||jjj|jjjn`t|jdrJt||jjj|jjjt|jdr0t|tj|jjyyy)Ntextzai.meta billed_units) input_tokens output_tokenstokenswarnings)hasattrrr AI_RESPONSESrSCOLLECTED_PII_CHAT_RESP_ATTRSgetattrCOLLECTED_CHAT_RESP_ATTRSrTrrUrVrWrX AI_WARNINGSrY)spanres include_piipii_attrattrs r2collect_chat_response_fieldsz0_wrap_chat..collect_chat_response_fieldsfsE sF##))XXJ :3)'eh.>X@VW:.DsD!#D%$,T8JK. 3 sxx0"!$!6!6!C!C"%(("7"7"E"E 8,"!$!=!="%((//"?"? sxx,#D(*>*>@Q@QR- r4c tjjt#d|vst |j dt s |i|S|j d}tjtjjdtj j  |i|}t!5t#rj$rwt' t(j*t-t/d|j dgd|dgzt0j3D]\}}||vs t' |||t4j3D]\}}||vs t' |||t' t(j6d r|  fd }|cdddSt |t8r5 |t#xr j$  jdddn t' d d  jddd|cdddS#t$r&}t| jddd|dd}~wwxYw#1swYyxYw) Nmessagezcohere.client.ChatopnamerBcTt|ddjt|dddS)Nrolergrlcontent)r]lower)xs r2z._wrap_chat..new_chat..s((/62(>(D(D(F+21i+D'r4 chat_historyuserrnFc3 Kt5D]Q}t|tst|tr+|jt xr j |S dddjdddy#1swYxYww)Nrb)r isinstancerrresponserr0__exit__)rqre integration old_iteratorr`s r2 new_iteratorz2_wrap_chat..new_chat..new_iterators56!-A)!-?@J !#@E!=$($%JJ0G0I1D(3(C(C !" #$G".7MM$d376s BAB&BB Brvunknown_responseT)rJrKget_integrationr-rwgetstr start_spanrOPCOHERE_CHAT_COMPLETIONS_CREATErB __enter__ ExceptionrPryrrr0rrAI_INPUT_MESSAGESlistmapCOLLECTED_PII_CHAT_PARAMSitemsCOLLECTED_CHAT_PARAMS AI_STREAMINGr)argskwargsrgraervr|rzr{r`refr6s @@@r2new_chatz_wrap_chat..new_chatsA!++-==>OP   &fjj3S9d%f% %**Y'$$yy77%$++   T$V$C ) *&([-H-H#..#JJ~r: !'7;< = 6;;=DAqF{+D!VAY?>.3351;'a;6 h&;&;U C" 4$$~]+ *^C!89, 7 9!4#33   dD$/#D*.new_embeds!++-==>OP  d%f% %  " "yy11,$++ & ')k.I.IfWos3'h.?.?&/ARSvg5F7O,q0"6'?1#5s;'h88&/& #D(*>*>wP "(( V$CHHn5CHH11>B"!$!6!6!C!C!$!6!6!C!C I  . ""1%T! "/  s21CG8:GB G8 G5"G00G55G88Hr)rrs` r2r9r9s$ 1X**X r4)? functoolsrrJrsentry_sdk.ai.monitoringrsentry_sdk.constsrsentry_sdk.ai.utilsrtypingr sentry_sdk.tracing_utilsr r r r sentry_sdk.tracingrsentry_sdk.scopersentry_sdk.integrationsrrsentry_sdk.utilsrr cohere.clientrcohere.base_clientrr.rrr ImportErrorrrrAI_TOP_KAI_TOP_PAI_SEEDAI_FREQUENCY_PENALTYAI_PRESENCE_PENALTYAI_RAW_PROMPTINGrAI_TOOLS AI_PREAMBLErAI_GENERATION_IDAI_SEARCH_REQUIREDAI_FINISH_REASONr^ AI_CITATIONS AI_DOCUMENTSAI_SEARCH_QUERIESAI_SEARCH_RESULTS AI_TOOL_CALLSr\r-rPr7r9r<r4r2rsf7&3 5..'4=N /$- /W4  ! !         !66 44..  $$ .."55..&&&&0000(( ! T T /|~0G/ - ../ WVWsE5E(E%( E65E6