
    gW,                        d dl mZ d dlmZ d dlmZ ddlmZmZm	Z	m
Z
mZmZ ddlmZ ddlZ G d d	ee      Z G d
 dee      Z G d dee      Z G d de      Z G d dee      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Zy)$   )CohereObject)CohereError)Mode    )ListOptional	GeneratorDictAnyUnion)EnumNc            	       :     e Zd Z	 ddededee   ddf fdZ xZS )ToolParameterDefinitionsValueNtypedescriptionrequiredreturnc                 b    t        |   di | | | _        || _        || _        ||| _        y y N )super__init____dict__r   r   r   )selfr   r   r   kwargs	__class__s        _/var/www/openai/venv/lib/python3.12/site-packages/cohere/manually_maintained/cohere_aws/chat.pyr   z&ToolParameterDefinitionsValue.__init__   s=     	"6"	&$DM      N)__name__
__module____qualname__strr   boolr   __classcell__r   s   @r   r   r   
   s<    
 $(	%% % 4.	% 
% %r   r   c            
       D     e Zd Z	 ddededeeeef      ddf fdZ xZS )ToolNnamer   parameter_definitionsr   c                 b    t        |   di | | | _        || _        || _        ||| _        y y r   )r   r   r   r)   r   r*   )r   r)   r   r*   r   r   s        r   r   zTool.__init__   s>     	"6"	& ,)>D& -r   r   )	r    r!   r"   r#   r   r
   r   r   r%   r&   s   @r   r(   r(      sJ    
 UY	?? ?  (S2O-O(PQ	? 
? ?r   r(   c                        e Zd Zdedeeef   deddf fdZedeeef   dd fd       Zed	e	e
eeef         de	e
d       fd
       Z xZS )ToolCallr)   
parametersgeneration_idr   Nc                 \    t        |   di | | | _        || _        || _        || _        y r   )r   r   r   r)   r.   r/   )r   r)   r.   r/   r   r   s        r   r   zToolCall.__init__+   s2     	"6"	$*r   tool_call_resc                 r     | |j                  d      |j                  d      |j                  d            S )Nr)   r.   r/   )r)   r.   r/   )get)clsr1   s     r   	from_dictzToolCall.from_dict8   s9    ""6*$((6'++O<
 	
r   tool_calls_resc                 x    |t        |t              sy |D cg c]  }t        j                  |       c}S c c}w r   )
isinstancelistr-   r5   )r4   r6   tcs      r   	from_listzToolCall.from_list@   s7    !ND)I1?@2""2&@@@s   7)r    r!   r"   r#   r
   r   r   classmethodr5   r   r   r;   r%   r&   s   @r   r-   r-   *   s    ++ cN+ 	+ 
+ 
d38n 
 
 
 AxT#s(^0D'E A(SWXbScJd A Ar   r-   c                   "   e Zd Z	 	 	 	 	 	 	 	 	 	 ddedededeeeeef         dee   dee   deeeef      d	eee	      d
eeeeef         deeeeef         deeeeef         deeeeef         dee
   ddfdZedeeef   dd fd       Zy)ChatNresponse_idr/   textchat_historypreamblefinish_reasontoken_count
tool_calls	citations	documentssearch_resultssearch_queriesis_search_requiredr   c                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        y r   )r?   r/   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   )r   r?   r/   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   s                 r   r   zChat.__init__J   sg      '*	( *&$"",,"4r   responsec                     | |d   |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d	      |j                  d
      |j                  d      |j                  d      t        j                  |j                  d                  S )Nr?   r/   r@   rA   rB   rD   rJ   rF   rG   rH   rI   rC   rE   )r?   r/   r@   rA   rB   rD   rJ   rF   rG   rH   rI   rC   rE   )r3   r-   r;   )r4   rL   s     r   r5   zChat.from_dicth   s     /",,7f%!n5\\*- ]3'||,@All;/ll;/#<<(89#<<(89",,7))(,,|*DE
 	
r   )
NNNNNNNNNN)r    r!   r"   r#   r   r   r
   r   intr-   r$   r   r<   r5   r   r   r   r>   r>   I   sW    8<"&'+04/348489=9=-155 5 	5
 tDcN345 3-5  }5 d38n-5 T(^,5 Dc3h015 Dc3h015 !d38n!565 !d38n!565 %TN5 
5< 
c3h 
F 
 
r   r>   c                   (    e Zd ZdZdZdZdZdZdZdZ	y)	StreamEventzstream-startzsearch-queries-generationzsearch-resultsztext-generationztool-calls-generationzcitation-generationz
stream-endN)
r    r!   r"   STREAM_STARTSEARCH_QUERIES_GENERATIONSEARCH_RESULTSTEXT_GENERATIONTOOL_CALLS_GENERATIONCITATION_GENERATION
STREAM_ENDr   r   r   rP   rP   ~   s(    !L ;%N'O3/Jr   rP   c                   @     e Zd Zdedeeef   dee   ddf fdZ	 xZ
S )StreamResponseis_finished
event_typeindexr   Nc                 N    t        |   di | || _        || _        || _        y r   )r   r   rZ   r\   r[   )r   rZ   r[   r\   r   r   s        r   r   zStreamResponse.__init__   s+     	"6"&
$r   )r    r!   r"   r$   r   rP   r#   r   rN   r   r%   r&   s   @r   rY   rY      sA    
%
% +s*+
% }	
% 

% 
%r   rY   c                   2     e Zd Zdedee   ddf fdZ xZS )StreamStartr/   conversation_idr   Nc                 @    t        |   di | || _        || _        y r   )r   r   r/   r`   )r   r/   r`   r   r   s       r   r   zStreamStart.__init__   s%     	"6"*.r   )r    r!   r"   r#   r   r   r%   r&   s   @r   r_   r_      s-    // "#/
 
/ /r   r_   c                   (     e Zd Zdeddf fdZ xZS )StreamTextGenerationr@   r   Nc                 2    t        |   di | || _        y r   )r   r   r@   )r   r@   r   r   s      r   r   zStreamTextGeneration.__init__   s    
 	"6"	r   r    r!   r"   r#   r   r%   r&   s   @r   rc   rc      s     
	 r   rc   c                   >     e Zd Zdeeeeef         ddf fdZ xZ	S )StreamCitationGenerationrF   r   Nc                 2    t        |   di | || _        y r   )r   r   rF   )r   rF   r   r   s      r   r   z!StreamCitationGeneration.__init__   s    
 	"6""r   
r    r!   r"   r   r   r
   r#   r   r   r%   r&   s   @r   rg   rg      s1    #Dc3h01# 
	# #r   rg   c                   >     e Zd Zdeeeeef         ddf fdZ xZ	S )StreamQueryGenerationrI   r   Nc                 2    t        |   di | || _        y r   )r   r   rI   )r   rI   r   r   s      r   r   zStreamQueryGeneration.__init__   s    
 	"6",r   ri   r&   s   @r   rk   rk      s1    - d38n!56- 
	- -r   rk   c                   X     e Zd Zdeeeeef         deeeeef         ddf fdZ xZ	S )StreamSearchResultsrH   rG   r   Nc                 @    t        |   di | || _        || _        y r   )r   r   rH   rG   )r   rH   rG   r   r   s       r   r   zStreamSearchResults.__init__   s$     	"6","r   ri   r&   s   @r   rn   rn      sM    # d38n!56# Dc3h01#
 
# #r   rn   c                   (     e Zd Zdeddf fdZ xZS )	StreamEndrC   r   Nc                 2    t        |   di | || _        y r   )r   r   rC   )r   rC   r   r   s      r   r   zStreamEnd.__init__   s    
 	"6"*r   re   r&   s   @r   rq   rq      s    ++ 
	+ +r   rq   c                   4     e Zd Zdeee      ddf fdZ xZS )ChatToolCallsGenerationEventrE   r   Nc                 2    t        |   di | || _        y r   )r   r   rE   )r   rE   r   r   s      r   r   z%ChatToolCallsGenerationEvent.__init__   s    
 	"6"$r   )r    r!   r"   r   r   r-   r   r%   r&   s   @r   rt   rt      s(    %T(^,% 
	% %r   rt   c                   6    e Zd Zd ZdefdZdeeddf   fdZy)StreamingChatc                 |   || _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        t               | _        |t"        j$                  k(  rd| _        d| _        y |t"        j*                  k(  rd| _        d| _        y y )NPayloadPartByteschunkbytes)stream_responser@   r?   r/   rB   promptrA   rC   rD   rJ   rF   rG   rH   rI   rE   	bytearrayr|   r   	SAGEMAKERpayload_key	bytes_keyBEDROCK)r   r}   modes      r   r   zStreamingChat.__init__   s    .	! !"&""[
4>>!,D$DNT\\!&D$DN "r   r   c                 `   |j                  d      }|t        j                  k(  rP|j                  d      | _        |j                  d      | _        t        | j                  | j                  d||      S |t        j                  k(  r |j                  d      }t        |d||      S |t        j                  k(  r2|j                  d      }|j                  d	      }t        ||d||
      S |t        j                  k(  r |j                  d      }t        |d||      S |t        j                  k(  r |j                  d      }t        |d||      S |t        j                  k(  r3t        j!                  |j                  d            }	t#        |	d||      S |t        j$                  k(  r|j                  d      }
|j                  d      }|| _        |
y |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d      | _        |
j                  d	      | _        |
j                  d      | _        |
j                  d      | _        t        j!                  |
j                  d            | _        tA        |d||      S y )Nr[   r`   r/   F)r`   r/   rZ   r[   r\   rI   )rI   rZ   r[   r\   rH   rG   )rH   rG   rZ   r[   r\   r@   )r@   rZ   r[   r\   rF   )rF   rZ   r[   r\   rE   )rE   rZ   r[   r\   rL   rC   r?   rB   r~   rA   rD   rJ   T)rC   rZ   r[   r\   )!r3   rP   rQ   r`   r/   r_   rR   rk   rS   rn   rT   rc   rV   rg   rU   r-   r;   rt   rW   rC   r?   r@   rB   r~   rA   rD   rJ   rF   rG   rH   rI   rE   rq   )r   r\   streaming_itemr[   rI   rH   rG   r@   rF   rE   rL   rC   s               r   _make_response_itemz!StreamingChat._make_response_item   s   #''5
111#1#5#56G#HD !/!3!3O!DD $ 4 4"00!%  ;@@@+//0@AN(-5Z_d  ;555+//0@AN&**;7I&-#!%  ;666!%%f-D'TuQ[chii;:::&**;7I+iU_iqvww;<<<!++N,>,>|,LMJ/%5ZW\  ;111%))*5H*..?M!.D'||M:D#+<<0A#BD  V,DI!)o!>D$LL4DM",,x0DK (^ <D'||M:D&.ll3G&HD#%\\+6DN%\\+6DN"*,,/?"@D"*,,/?"@D&00l1KLDO=dWainoor   Nc              #   x  K   d}| j                   D ]  }| j                  j                  || j                     | j                            	 | j                  |t        j                  | j                              }t               | _        |z|dz  }|  y # t        j                  j                  $ r Y w xY ww)Nr   r   )r}   r|   extendr   r   r   jsonloadsdecoderJSONDecodeErrorr   )r   r\   payloaditems       r   __iter__zStreamingChat.__iter__8  s     ++GJJgd&6&67GH//tzz$**7MN
 #DJ

 , <<// s0   AB:
/B9B:B:B74B:6B77B:)	r    r!   r"   r   r   r   r	   rY   r   r   r   r   rw   rw      s,    %2>C >@)ND$$>? r   rw   ) rL   r   errorr   r   r   typingr   r   r	   r
   r   r   enumr   r   dictr   r(   r-   r>   r#   rP   rY   r_   rc   rg   rk   rn   rq   rt   rw   r   r   r   <module>r      s    "   > >  %L$ % ?< ? A|T A>/
< /
j#t %\ %	/. 	/> #~ #-N -	#. 	#+ +%> %gL gr   