o
    iW,                     @   sD  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	 d	eeZG d
d deeZG dd deeZG dd deZG dd deeZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZdS )$   )CohereObject)CohereError)Mode    )ListOptional	GeneratorDictAnyUnion)EnumNc                	       s6   e Zd Z	ddededee ddf fddZ  ZS )	ToolParameterDefinitionsValueNtypedescriptionrequiredreturnc                    :   t  jdi | | | _|| _|| _|d ur|| _d S d S N )super__init____dict__r   r   r   )selfr   r   r   kwargs	__class__r   p/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/cohere/manually_maintained/cohere_aws/chat.pyr         
z&ToolParameterDefinitionsValue.__init__N)__name__
__module____qualname__strr   boolr   __classcell__r   r   r   r   r   
   s    r   c                
       s>   e Zd Z	ddededeeeef  ddf fddZ  ZS )	ToolNnamer   parameter_definitionsr   c                    r   r   )r   r   r   r&   r   r'   )r   r&   r   r'   r   r   r   r   r      r   zTool.__init__r   )	r   r    r!   r"   r   r	   r   r   r$   r   r   r   r   r%      s    r%   c                       s   e Zd Zdedeeef deddf fddZedeeef dd fd	d
Zede	e
eeef   de	e
d   fddZ  ZS )ToolCallr&   
parametersgeneration_idr   Nc                    s.   t  jdi | | | _|| _|| _|| _d S r   )r   r   r   r&   r)   r*   )r   r&   r)   r*   r   r   r   r   r   +   s
   
zToolCall.__init__tool_call_resc                 C   s    | | d| d| ddS )Nr&   r)   r*   )r&   r)   r*   )get)clsr+   r   r   r   	from_dict8   s
   zToolCall.from_dicttool_calls_resc                 C   s$   |d u s	t |tsd S dd |D S )Nc                 S   s   g | ]}t |qS r   )r(   r.   ).0tcr   r   r   
<listcomp>E   s    z&ToolCall.from_list.<locals>.<listcomp>)
isinstancelist)r-   r/   r   r   r   	from_list@   s   zToolCall.from_list)r   r    r!   r"   r	   r
   r   classmethodr.   r   r   r5   r$   r   r   r   r   r(   *   s    
4r(   c                   @   s   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dZedeeef dd fddZdS )ChatNresponse_idr*   textchat_historypreamblefinish_reasontoken_count
tool_calls	citations	documentssearch_resultssearch_queriesis_search_requiredr   c                 C   sR   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _d S r   )r8   r*   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   )r   r8   r*   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r   r   r   r   J   s   
zChat.__init__responsec                 C   st   | |d | d| d| d| d| d| d| d| d	| d
| d| dt| ddS )Nr8   r*   r9   r:   r;   r=   rC   r?   r@   rA   rB   r<   r>   )r8   r*   r9   r:   r;   r=   rC   r?   r@   rA   rB   r<   r>   )r,   r(   r5   )r-   rD   r   r   r   r.   h   s   zChat.from_dict)
NNNNNNNNNN)r   r    r!   r"   r   r   r	   r
   intr(   r#   r   r6   r.   r   r   r   r   r7   I   sT    
	

 r7   c                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	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   r   rF   ~   s    rF   c                       s:   e Zd Zdedeeef dee ddf fddZ	  Z
S )StreamResponseis_finished
event_typeindexr   Nc                    s(   t  jdi | || _|| _|| _d S r   )r   r   rO   rQ   rP   )r   rO   rP   rQ   r   r   r   r   r      s   
zStreamResponse.__init__)r   r    r!   r#   r   rF   r"   r   rE   r   r$   r   r   r   r   rN      s    
rN   c                       s.   e Zd Zdedee ddf fddZ  ZS )StreamStartr*   conversation_idr   Nc                    "   t  jdi | || _|| _d S r   )r   r   r*   rS   )r   r*   rS   r   r   r   r   r         
zStreamStart.__init__)r   r    r!   r"   r   r   r$   r   r   r   r   rR      s    rR   c                       &   e Zd Zdeddf fddZ  ZS )StreamTextGenerationr9   r   Nc                       t  jdi | || _d S r   )r   r   r9   )r   r9   r   r   r   r   r         
zStreamTextGeneration.__init__r   r    r!   r"   r   r$   r   r   r   r   rW          rW   c                       6   e Zd Zdeeeeef   ddf fddZ  Z	S )StreamCitationGenerationr?   r   Nc                    rX   r   )r   r   r?   )r   r?   r   r   r   r   r      rY   z!StreamCitationGeneration.__init__
r   r    r!   r   r   r	   r"   r
   r   r$   r   r   r   r   r]          r]   c                       r\   )StreamQueryGenerationrB   r   Nc                    rX   r   )r   r   rB   )r   rB   r   r   r   r   r      rY   zStreamQueryGeneration.__init__r^   r   r   r   r   r`      r_   r`   c                       sJ   e Zd Zdeeeeef   deeeeef   ddf fddZ  Z	S )StreamSearchResultsrA   r@   r   Nc                    rT   r   )r   r   rA   r@   )r   rA   r@   r   r   r   r   r      rU   zStreamSearchResults.__init__r^   r   r   r   r   ra      s    ra   c                       rV   )	StreamEndr<   r   Nc                    rX   r   )r   r   r<   )r   r<   r   r   r   r   r      rY   zStreamEnd.__init__rZ   r   r   r   r   rb      r[   rb   c                       s.   e Zd Zdeee  ddf fddZ  ZS )ChatToolCallsGenerationEventr>   r   Nc                    rX   r   )r   r   r>   )r   r>   r   r   r   r   r      rY   z%ChatToolCallsGenerationEvent.__init__)r   r    r!   r   r   r(   r   r$   r   r   r   r   rc      s    
rc   c                   @   s:   e Zd Zdd ZdefddZdeeddf fddZdS )	StreamingChatc                 C   s   || _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _d | _d | _t | _|tjkr>d| _d| _d S |tjkrKd| _d| _d S d S )NPayloadPartByteschunkbytes)stream_responser9   r8   r*   r;   promptr:   r<   r=   rC   r?   r@   rA   rB   r>   	bytearrayrh   r   	SAGEMAKERpayload_key	bytes_keyBEDROCK)r   ri   moder   r   r   r      s.   



zStreamingChat.__init__r   c                 C   s  | d}|tjkr!| d| _| d| _t| j| jd||dS |tjkr3| d}t|d||dS |tjkrK| d}| d	}t	||d||d
S |tj
kr]| d}t|d||dS |tjkro| d}t|d||dS |tjkrt| d}	t|	d||dS |tjkr| d}
| d}|| _|
d u rd S |
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d| _|
 d	| _|
 d| _|
 d| _t|
 d| _t |d||dS d S )NrP   rS   r*   F)rS   r*   rO   rP   rQ   rB   )rB   rO   rP   rQ   rA   r@   )rA   r@   rO   rP   rQ   r9   )r9   rO   rP   rQ   r?   )r?   rO   rP   rQ   r>   )r>   rO   rP   rQ   rD   r<   r8   r;   rj   r:   r=   rC   T)r<   rO   rP   rQ   )!r,   rF   rG   rS   r*   rR   rH   r`   rI   ra   rJ   rW   rL   r]   rK   r(   r5   rc   rM   r<   r8   r9   r;   rj   r:   r=   rC   r?   r@   rA   rB   r>   rb   )r   rQ   streaming_itemrP   rB   rA   r@   r9   r?   r>   rD   r<   r   r   r   _make_response_item   sv   














z!StreamingChat._make_response_itemNc              	   c   s|    d}| j D ]5}| j|| j | j  z| |t| j}W n tjj	y+   Y qw t
 | _|d ur;|d7 }|V  qd S )Nr   r   )ri   rh   extendrm   rn   rr   jsonloadsdecoderJSONDecodeErrorrk   )r   rQ   payloaditemr   r   r   __iter__8  s   
zStreamingChat.__iter__)	r   r    r!   r   r
   rr   r   rN   rz   r   r   r   r   rd      s    @rd   ) rD   r   errorr   rp   r   typingr   r   r   r	   r
   r   enumr   rt   dictr   r%   r(   r7   r"   rF   rN   rR   rW   r]   r`   ra   rb   rc   rd   r   r   r   r   <module>   s(     5	



	