
    g                         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Z G d de      Z G d d	e      Z G d
 de      Z eddee   fdefdefg      Z G d de      Zy)   )CohereObject)Mode    )ListOptional
NamedTuple	GeneratorDictAnyNc                        e Zd ZdededdfdZy)TokenLikelihoodtoken
likelihoodreturnNc                      || _         || _        y N)r   r   )selfr   r   s      e/var/www/openai/venv/lib/python3.12/site-packages/cohere/manually_maintained/cohere_aws/generation.py__init__zTokenLikelihood.__init__   s    
$    )__name__
__module____qualname__strfloatr    r   r   r   r      s    %c %u % %r   r   c                   &    e Zd Zdedee   ddfdZy)
Generationtexttoken_likelihoodsr   Nc                      || _         || _        y r   )r   r    )r   r   r    s      r   r   zGeneration.__init__   s     	!2r   )r   r   r   r   r   r   r   r   r   r   r   r      s$    33$($93>B3r   r   c                   d    e Zd Zdee   ddfdZedeee	f   dee   fd       Z
defdZdefdZy)	Generationsgenerationsr   Nc                 2    || _         t        |      | _        y r   )r$   iteriterator)r   r$   s     r   r   zGenerations.__init__   s    &[)r   responsec                     g }|d   D ]\  }d }d|v r6g }|d   D ],  }d|v r|d   }nd }|j                  t        |d   |             . |j                  t        |d   |             ^  | |      S )Nr$   r    r   r   r   )appendr   r   )clsr(   r$   genr    likelihoodstoken_likelihoods          r   	from_dictzGenerations.from_dict   s    (*M*C $"c)$&!#&':#;K#{2+6|+D(+/(%,,_#G,.>.@ A $< z#f+7HIJ + ;r   c                     | j                   S r   )r'   r   s    r   __iter__zGenerations.__iter__-   s    }}r   c                 ,    t        | j                        S r   )nextr'   r1   s    r   __next__zGenerations.__next__0   s    DMM""r   )r   r   r   r   r   r   classmethodr
   r   r   r/   r&   r2   r4   r5   r   r   r   r#   r#      sc    *":.*37*
  c3h  D4D    "$ #$ #r   r#   StreamingTextindexr   is_finishedc                   <    e Zd Zd Zdee   fdZdeeddf   fdZy)StreamingGenerationsc                     || _         d | _        d | _        d | _        t	               | _        |t        j                  k(  rd| _        d| _	        y |t        j                  k(  rd| _        d| _	        y t        d      )NPayloadPartByteschunkbyteszUnsupported mode)streamidr$   finish_reason	bytearrayr@   r   	SAGEMAKERpayload_key	bytes_keyBEDROCKCohereError)r   rA   modes      r   r   zStreamingGenerations.__init__;   sk    ![
4>>!,D$DNT\\!&D$DN011r   r   c                 F   |j                  d      }|s4|j                  dd      }|j                  d      }|y t        |||      S |j                  d      | _        |j                  d      }|y |j                  d      | _        t        j                  |      | _        y )	Nr9   r8   r   r   )r   r9   r8   rC   r(   rB   )getr7   rC   rB   r#   r/   r$   )r   streaming_itemr9   r8   r   generation_responses         r   _make_response_itemz(StreamingGenerations._make_response_itemK   s    $((7"&&w2E!%%f-D| {%A A ,//@,00<&%))$/&001DEr   Nc              #   h  K   | j                   D ]|  }| j                  j                  || j                     | j                            	 | j                  t        j                  | j                              }t               | _        |y| ~ y # t        j                  j                  $ r Y w xY wwr   )rA   r@   extendrF   rG   rO   jsonloadsdecoderJSONDecodeErrorrD   )r   payloaditems      r   r2   zStreamingGenerations.__iter__`   s     {{GJJgd&6&67GH//

4::0FG
 #DJ
 # <<// s0   AB2.B6B2B2B/,B2.B//B2)	r   r   r   r   r   r7   rO   r	   r2   r   r   r   r;   r;   :   s0    2 Xm5L *)M4$=> r   r;   )r(   r   rJ   r   typingr   r   r   r	   r
   r   rR   r   r   r#   intr   boolr7   r;   r   r   r   <module>r[      sr    "  C C %l %3 3#, #> ?$hsm4#SM*D1341< 1r   