§
    é˜ºhËN  ã                  ó²  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mc 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 d d	lmZ dMd„ZdNd„ZdOd„ZdPd„ZdQd„Z	 dRddddœdSd%„Z	 dRddddœdSd&„Zddddddddd'œdTd2„Zd3Zd3dddddddddd4œ
dUd8„Z  ej!        e j"        ¦  «        d3dddddddddd4œ
dVd:„¦   «         Z#ej$        j%        ej$        j&        fd;k    rd<d=iZ'ni Z'ej(         ej!        ej)        j"        ¦  «         ej*        dWi e'¤d>d?i¤Ž G d@„ dAej)        ¦  «        ¦   «         ¦   «         ¦   «         Z)dXdF„Z+	 dRdYdG„Z,	 dRdZdH„Z-ddddeddIœd[dL„Z.dS )\é    )ÚannotationsN)ÚIterableÚListÚOptionalÚUnion)Úget_default_discuss_client)Ú get_default_discuss_async_client)Ústring_utils)Údiscuss_types)Úmodel_types)Úsafety_typesÚcontentúdiscuss_types.MessageOptionsÚreturnúglm.Messagec                ó¶   — t          | t          j        ¦  «        r| S t          | t          ¦  «        rt          j        | ¬¦  «        S t          j        | ¦  «        S )z9Creates a `glm.Message` object from the provided content.©r   )Ú
isinstanceÚglmÚMessageÚstrr   s    úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/google/generativeai/discuss.pyÚ_make_messager   !   sP   € å�'�3œ;Ñ'Ô'ð ØˆÝ�'�3ÑÔð $ÝŒ{ 7Ð+Ñ+Ô+Ð+åŒ{˜7Ñ#Ô#Ð#ó    Úmessagesúdiscuss_types.MessagesOptionsúList[glm.Message]c                ó¢  — t          | t          t          t          j        f¦  «        rt          | ¦  «        g} nd„ | D ¦   «         } t          d„ | ddd…         D ¦   «         ¦  «        }|sd}n<t          |¦  «        dk    r|                     ¦   «         }nt          j
        d¦  «        ‚t          d„ | ddd…         D ¦   «         ¦  «        }|sd	}n<t          |¦  «        dk    r|                     ¦   «         }nt          j
        d¦  «        ‚t          d
„ | D ¦   «         ¦  «        r| S ||g}t          | ¦  «        D ]\  }}||dz           |_        Œ| S )a'  
    Creates a list of `glm.Message` objects from the provided messages.

    This function takes a variety of message content inputs, such as strings, dictionaries,
    or `glm.Message` objects, and creates a list of `glm.Message` objects. It ensures that
    the authors of the messages alternate appropriately. If authors are not provided,
    default authors are assigned based on their position in the list.

    Args:
        messages: The messages to convert.

    Returns:
        A list of `glm.Message` objects with alternating authors.
    c                ó,   — g | ]}t          |¦  «        ‘ŒS © )r   )Ú.0Úmessages     r   ú
<listcomp>z"_make_messages.<locals>.<listcomp>?   s    € ÐCÐCÐC¨w•M 'Ñ*Ô*ÐCÐCÐCr   c              3  ó2   K  — | ]}|j         ¯	|j         V — Œd S ©N©Úauthor©r!   Úmsgs     r   ú	<genexpr>z!_make_messages.<locals>.<genexpr>A   s+   è è € ÐIÐI c¸c¼jÐI�s”zÐIÐIÐIÐIÐIÐIr   Né   Ú0é   z$Authors are not strictly alternatingc              3  ó2   K  — | ]}|j         ¯	|j         V — Œd S r%   r&   r(   s     r   r*   z!_make_messages.<locals>.<genexpr>I   s+   è è € ÐIÐI S¸c¼jÐI�c”jÐIÐIÐIÐIÐIÐIr   Ú1c              3  ó$   K  — | ]}|j         V — Œd S r%   r&   r(   s     r   r*   z!_make_messages.<locals>.<genexpr>Q   s$   è è € Ð
*Ð
*˜#ˆ3Œ:Ð
*Ð
*Ð
*Ð
*Ð
*Ð
*r   )r   r   Údictr   r   r   ÚsetÚlenÚpopr   ÚAuthorErrorÚallÚ	enumerater'   )r   Úeven_authorsÚeven_authorÚodd_authorsÚ
odd_authorÚauthorsÚir)   s           r   Ú_make_messagesr>   +   s~  € õ" �(�S¥$­¬Ð4Ñ5Ô5ð DÝ! (Ñ+Ô+Ð,ˆˆàCÐC¸(ÐCÑCÔCˆåÐIÐI¨X°c°c¸°c¬]ÐIÑIÔIÑIÔI€LØð PØˆˆÝ	ˆ\Ñ	Ô	˜aÒ	Ð	Ø"×&Ò&Ñ(Ô(ˆˆåÔ'Ð(NÑOÔOÐOåÐIÐI¨H°Q°T¸°T¬NÐIÑIÔIÑIÔI€KØð PØˆ
ˆ
Ý	ˆ[Ñ	Ô	˜QÒ	Ð	Ø —_’_Ñ&Ô&ˆ
ˆ
åÔ'Ð(NÑOÔOÐOå
Ð
*Ð
* Ð
*Ñ
*Ô
*Ñ*Ô*ð Øˆà˜JÐ'€GÝ˜HÑ%Ô%ð $ð $‰ˆˆ3Ø˜Q ™U”^ˆŒ
ˆ
à€Or   Úitemúdiscuss_types.ExampleOptionsúglm.Examplec                óê  — t          | t          j        ¦  «        r| S t          | t          ¦  «        rX|                      ¦   «         } t          | d         ¦  «        | d<   t          | d         ¦  «        | d<   t          j        | ¦  «        S t          | t          ¦  «        rBt          | ¦  «        \  }}t          j        t          |¦  «        t          |¦  «        ¬¦  «        S t          j        | ¦  «        S )z6Creates a `glm.Example` object from the provided item.ÚinputÚoutput©rC   rD   )r   r   ÚExampler1   Úcopyr   r   Úlist)r?   rC   rD   s      r   Ú_make_examplerI   [   sÍ   € å�$�œÑ$Ô$ð Øˆå�$�ÑÔð !Ø�yŠy‰{Œ{ˆÝ% d¨7¤mÑ4Ô4ˆˆW‰Ý& t¨H¤~Ñ6Ô6ˆˆX‰ÝŒ{˜4Ñ Ô Ð å�$�Ñ!Ô!ð UÝ˜T™
œ
‰ˆˆvÝŒ{¥¨uÑ!5Ô!5½mÈFÑ>SÔ>SÐTÑTÔTÐTõ Œ;�tÑÔÐr   Úexamplesú"List[discuss_types.MessageOptions]úList[glm.Example]c                ó–  — t          | ¦  «        dz  dk    r2t          t          j        dt          | ¦  «        › d�¦  «        ¦  «        ‚g }g }t	          | ¦  «        D ]l\  }}t          |¦  «        }|                     |¦  «         |dz  dk    rŒ3t          j        |d         |d         ¬¦  «        }|                     |¦  «         g }Œm|S )a  
    Creates a list of `glm.Example` objects from a list of message options.

    This function takes a list of `discuss_types.MessageOptions` and pairs them into
    `glm.Example` objects. The input examples must be in pairs to create valid examples.

    Args:
        examples: The list of `discuss_types.MessageOptions`.

    Returns:
        A list of `glm.Example objects` created by pairing up the provided messages.

    Raises:
        ValueError: If the provided list of examples is not of even length.
    r+   r   zt            You must pass `Primer` objects, pairs of messages, or an *even* number of messages, got: 
              z	 messagesr-   rE   )	r3   Ú
ValueErrorÚtextwrapÚdedentr7   r   Úappendr   rF   )rJ   ÚresultÚpairÚnr?   r)   Úprimers          r   Ú_make_examples_from_flatrV   n   sò   € õ$ ˆ8�}„}�qÑ˜AÒÐÝÝŒOð*å�8‰}Œ}ð*ð *ð *ñô ñ
ô 
ð 	
ð €FØ€DÝ˜XÑ&Ô&ð 
ð 
‰ˆˆ4Ý˜DÑ!Ô!ˆØ�Š�CÑÔÐØˆq‰5�AŠ:ˆ:ØÝ”Ø�q”'Ø˜”7ð
ñ 
ô 
ˆð 	�Š�fÑÔÐØˆˆØ€Mr   údiscuss_types.ExamplesOptionsc                óä  — t          | t          j        ¦  «        r| gS t          | t          ¦  «        rt	          | ¦  «        gS t          | ¦  «        } | s| S | d         }t          |t          ¦  «        r+d|v rt          | ¦  «        S d|v rd|v st          d¦  «        ‚n)t          |t          j	        ¦  «        rt          | ¦  «        S g }| D ]$}| 
                    t	          |¦  «        ¦  «         Œ%|S )aÉ  
    Creates a list of `glm.Example` objects from the provided examples.

    This function takes various types of example content inputs and creates a list
    of `glm.Example` objects. It handles the conversion of different input types and ensures
    the appropriate structure for creating valid examples.

    Args:
        examples: The examples to convert.

    Returns:
        A list of `glm.Example` objects created from the provided examples.
    r   r   rC   rD   zTTo create an `Example` from a dict you must supply both `input` and an `output` keys)r   r   rF   r1   rI   rH   rV   Ú	TypeErrorr   ÚMESSAGE_OPTIONSrQ   )rJ   ÚfirstrR   r?   s       r   Ú_make_examplesr\   ˜   s  € õ  �(�CœKÑ(Ô(ð ØˆzÐå�(�DÑ!Ô!ð )Ý˜hÑ'Ô'Ð(Ð(å�H‰~Œ~€Hàð Øˆà�QŒK€Eå�%�ÑÔð 6Ø˜ÐÐå+¨HÑ5Ô5Ð5à˜uÐ$Ð$¨°UÐ):Ð):ÝØjñô ð ð *;õ
 �e�]Ô:Ñ;Ô;ð 	6Ý+¨HÑ5Ô5Ð5à€FØð +ð +ˆØ�Š•m DÑ)Ô)Ñ*Ô*Ð*Ð*Ø€Mr   ©ÚcontextrJ   r   Úpromptú"discuss_types.MessagePromptOptionsr^   ú
str | Noneú$discuss_types.ExamplesOptions | Noneú$discuss_types.MessagesOptions | Noneúglm.MessagePromptc               óx  — | €t          |||¬¦  «        } nS|dup|dup|du}|rt          d¦  «        ‚t          | t          j        ¦  «        r| S t          | t           ¦  «        rnd| i} t          |                      ¦   «         ¦  «        }|                     t          j	        ¦  «        st          d|t          j	        z
  › �¦  «        ‚|                      dd¦  «        }|�t          |¦  «        | d<   |                      dd¦  «        }|�t          |¦  «        | d<   d„ |                      ¦   «         D ¦   «         } | S )aˆ  
    Creates a `glm.MessagePrompt` object from the provided prompt components.

    This function constructs a `glm.MessagePrompt` object using the provided `context`, `examples`,
    or `messages`. It ensures the proper structure and handling of the input components.

    Either pass a `prompt` or it's component `context`, `examples`, `messages`.

    Args:
        prompt: The complete prompt components.
        context: The context for the prompt.
        examples: The examples for the prompt.
        messages: The messages for the prompt.

    Returns:
        A `glm.MessagePrompt` object created from the provided prompt components.
    Nr]   zWYou can't set `prompt`, and its fields `(context, examples, messages)` at the same timer   z.Found extra entries in the prompt dictionary: rJ   c                ó   — i | ]
\  }}|®||“ŒS r%   r    )r!   ÚkÚvs      r   ú
<dictcomp>z-_make_message_prompt_dict.<locals>.<dictcomp>  s   € Ð?Ð?Ð?‘t�q˜!°°ˆa�°°°r   )r1   rN   r   r   ÚMessagePromptr2   ÚkeysÚissubsetr   ÚMESSAGE_PROMPT_KEYSÚKeyErrorÚgetr\   r>   Úitems)r_   r^   rJ   r   Úflat_promptrk   s         r   Ú_make_message_prompt_dictrr   È   sl  € ð0 €~ÝØØØð
ñ 
ô 
ˆˆð  dÐ*Ð_°ÀÐ0DÐ_È(ÐZ^ÐJ^ˆØð 	Ýð$ñô ð õ �f�cÔ/Ñ0Ô0ð 	*ØˆMÝ˜¥Ñ%Ô%ð 	*Øà  &Ð)ˆFåˆv�{Š{‰}Œ}ÑÔ€DØ�=Š=�Ô:Ñ;Ô;ð 
ÝØg¸TÅMÔDeÑ=eÐgÐgñ
ô 
ð 	
ð �zŠz˜* dÑ+Ô+€HØÐÝ+¨HÑ5Ô5ˆˆzÑØ�zŠz˜* dÑ+Ô+€HØÐÝ+¨HÑ5Ô5ˆˆzÑà?Ð?˜vŸ|š|™~œ~Ð?Ñ?Ô?€FØ€Mr   c               óP   — t          | |||¬¦  «        } t          j        | ¦  «        S )zICreates a `glm.MessagePrompt` object from the provided prompt components.©r_   r^   rJ   r   )rr   r   rj   rt   s       r   Ú_make_message_promptru     s4   € õ 'Ø˜w°ÀHðñ ô €Fõ Ô˜VÑ$Ô$Ð$r   )r^   rJ   r   ÚtemperatureÚcandidate_countÚtop_pÚtop_kr_   Úmodelú&model_types.AnyModelNameOptions | Nonerv   úfloat | Nonerw   ú
int | Nonerx   ry   ú)discuss_types.MessagePromptOptions | Noneúglm.GenerateMessageRequestc        	        ó„   — t          j        | ¦  «        } t          ||||¬¦  «        }t          j        | |||||¬¦  «        S )zFCreates a `glm.GenerateMessageRequest` object for generating messages.rt   )rz   r_   rv   rx   ry   rw   )r   Úmake_model_nameru   r   ÚGenerateMessageRequest©	rz   r^   rJ   r   rv   rw   rx   ry   r_   s	            r   Ú_make_generate_message_requestr„     s_   € õ Ô'¨Ñ.Ô.€Eå!Ø˜w°ÀHðñ ô €Fõ Ô%ØØØØØØ'ðñ ô ð r   zmodels/chat-bison-001)
rz   r^   rJ   r   rv   rw   rx   ry   r_   Úclientr…   úglm.DiscussServiceClient | Noneúdiscuss_types.ChatResponsec        
        óT   — t          | ||||||||¬¦	  «	        }
t          |	|
¬¦  «        S )a#  Calls the API and returns a `types.ChatResponse` containing the response.

    Args:
        model: Which model to call, as a string or a `types.Model`.
        context: Text that should be provided to the model first, to ground the response.

            If not empty, this `context` will be given to the model first before the
            `examples` and `messages`.

            This field can be a description of your prompt to the model to help provide
            context and guide the responses.

            Examples:

            * "Translate the phrase from English to French."
            * "Given a statement, classify the sentiment as happy, sad or neutral."

            Anything included in this field will take precedence over history in `messages`
            if the total input size exceeds the model's `Model.input_token_limit`.
        examples: Examples of what the model should generate.

            This includes both the user input and the response that the model should
            emulate.

            These `examples` are treated identically to conversation messages except
            that they take precedence over the history in `messages`:
            If the total input size exceeds the model's `input_token_limit` the input
            will be truncated. Items will be dropped from `messages` before `examples`
        messages: A snapshot of the conversation history sorted chronologically.

            Turns alternate between two authors.

            If the total input size exceeds the model's `input_token_limit` the input
            will be truncated: The oldest items will be dropped from `messages`.
        temperature: Controls the randomness of the output. Must be positive.

            Typical values are in the range: `[0.0,1.0]`. Higher values produce a
            more random and varied response. A temperature of zero will be deterministic.
        candidate_count: The **maximum** number of generated response messages to return.

            This value must be between `[1, 8]`, inclusive. If unset, this
            will default to `1`.

            Note: Only unique candidates are returned. Higher temperatures are more
            likely to produce unique candidates. Setting `temperature=0.0` will always
            return 1 candidate regardless of the `candidate_count`.
        top_k: The API uses combined [nucleus](https://arxiv.org/abs/1904.09751) and
            top-k sampling.

            `top_k` sets the maximum number of tokens to sample from on each step.
        top_p: The API uses combined [nucleus](https://arxiv.org/abs/1904.09751) and
           top-k sampling.

           `top_p` configures the nucleus sampling. It sets the maximum cumulative
            probability of tokens to sample from.

            For example, if the sorted probabilities are
            `[0.5, 0.2, 0.1, 0.1, 0.05, 0.05]` a `top_p` of `0.8` will sample
            as `[0.625, 0.25, 0.125, 0, 0, 0]`.

            Typical values are in the `[0.9, 1.0]` range.
        prompt: You may pass a `types.MessagePromptOptions` **instead** of a
            setting `context`/`examples`/`messages`, but not both.
        client: If you're not relying on the default client, you pass a
            `glm.DiscussServiceClient` instead.

    Returns:
        A `types.ChatResponse` containing the model's reply.
    rƒ   ©r…   Úrequest)r„   Ú_generate_response©rz   r^   rJ   r   rv   rw   rx   ry   r_   r…   rŠ   s              r   Úchatr�   3  sI   € õd -ØØØØØØ'ØØØð
ñ 
ô 
€Gõ  V°WÐ=Ñ=Ô=Ð=r   ú$glm.DiscussServiceAsyncClient | Nonec        
      ƒ  ód   K  — t          | ||||||||¬¦	  «	        }
t          |	|
¬¦  «        ƒ d {V —†S )Nrƒ   r‰   )r„   Ú_generate_response_asyncrŒ   s              r   Ú
chat_asyncr‘   ”  s^   è è € õ -ØØØØØØ'ØØØð
ñ 
ô 
€Gõ *°ÀÐIÑIÔIÐIÐIÐIÐIÐIÐIÐIr   )é   é
   Úkw_onlyTÚinitFc                  ón  — e Zd ZU  ej        d„ d¬¦  «        Zded<   d„ Ze e	j
        ej        j        j        ¦  «        dd	„¦   «         ¦   «         Zej        dd„¦   «         Z e	j
        ej        j        j        ¦  «        dd„¦   «         Z e	j
        ej        j        j        ¦  «        dd„¦   «         ZdS )ÚChatResponsec                 ó   — d S r%   r    r    r   r   ú<lambda>zChatResponse.<lambda>»  s   € ÐQU€ r   F)ÚdefaultÚreprr†   Ú_clientc                ó\   — |                      ¦   «         D ]\  }}t          | ||¦  «         Œd S r%   )rp   Úsetattr)ÚselfÚkwargsÚkeyÚvalues       r   Ú__init__zChatResponse.__init__½  s<   € Ø Ÿ,š,™.œ.ð 	&ð 	&‰JˆC�Ý�D˜#˜uÑ%Ô%Ð%Ð%ð	&ð 	&r   r   ra   c                óF   — | j         d         r| j         d         d         S d S )Néÿÿÿÿr   )r   )rŸ   s    r   ÚlastzChatResponse.lastÁ  s*   € ð Œ=˜Ôð 	Ø”= Ô$ YÔ/Ð/à�4r   r"   r   c                ó|   — t          |¦  «        }t          |¦  «                             |¦  «        }|| j        d<   d S )Nr¥   )r   ÚtypeÚto_dictr   )rŸ   r"   s     r   r¦   zChatResponse.lastÉ  s:   € å Ñ(Ô(ˆÝ�w‘-”-×'Ò'¨Ñ0Ô0ˆØ#ˆŒ�bÑÐÐr   r‡   c                óÜ  — t          | j        t          j        ¦  «        rt	          d¦  «        ‚| j        €t          d| j        › �¦  «        ‚|                      ¦   «         }| 	                    d¦  «         | 	                    dd ¦  «         t          |d         ¦  «        |d<   |d                              t          |¦  «        ¦  «         t          di |¤Ž}t          || j        ¬¦  «        S )NzBreply can't be called on an async client, use reply_async instead.z‡The last response from the model did not return any candidates.
Check the `.filters` attribute to see why the responses were filtered:
Ú
candidatesÚfiltersr   ©rŠ   r…   r    )r   rœ   r   ÚDiscussServiceAsyncClientrY   r¦   rN   r¬   r©   r4   rH   rQ   r   r„   r‹   ©rŸ   r"   rŠ   s      r   ÚreplyzChatResponse.replyÏ  sì   € å�d”l¥CÔ$AÑBÔBð 	cÝÐaÑbÔbÐbØŒ9ÐÝð"à”<ð"ð "ñô ð ð —,’,‘.”.ˆØ�Š�LÑ!Ô!Ð!Ø�Š�I˜tÑ$Ô$Ð$Ý" 7¨:Ô#6Ñ7Ô7ˆ�
ÑØ�
Ô×"Ò"¥=°Ñ#9Ô#9Ñ:Ô:Ð:Ý0Ð;Ð;°7Ð;Ð;ˆÝ!¨'¸$¼,ÐGÑGÔGÐGr   c              ƒ  ó°  K  — t          | j        t          j        ¦  «        rt	          d¦  «        ‚|                      ¦   «         }|                     d¦  «         |                     dd ¦  «         t          |d         ¦  «        |d<   |d                              t          |¦  «        ¦  «         t          di |¤Ž}t          || j        ¬¦  «        ƒ d {V —†S )NzEreply_async can't be called on a non-async client, use reply instead.r«   r¬   r   r­   r    )r   rœ   r   ÚDiscussServiceClientrY   r©   r4   rH   rQ   r   r„   r�   r¯   s      r   Úreply_asynczChatResponse.reply_asyncâ  sÛ   è è € õ �d”l¥CÔ$<Ñ=Ô=ð 	ÝØXñô ð ð —,’,‘.”.ˆØ�Š�LÑ!Ô!Ð!Ø�Š�I˜tÑ$Ô$Ð$Ý" 7¨:Ô#6Ñ7Ô7ˆ�
ÑØ�
Ô×"Ò"¥=°Ñ#9Ô#9Ñ:Ô:Ð:Ý0Ð;Ð;°7Ð;Ð;ˆÝ-°gÀdÄlÐSÑSÔSÐSÐSÐSÐSÐSÐSÐSr   N)r   ra   )r"   r   )r"   r   r   r‡   )Ú__name__Ú
__module__Ú__qualname__ÚdataclassesÚfieldrœ   Ú__annotations__r£   Úpropertyr
   Úset_docr   r—   r¦   Ú__doc__Úsetterr°   r³   r    r   r   r—   r—   ·  s,  € € € € € € ð 0A¨{Ô/@ÈÈÐ\aÐ/bÑ/bÔ/b€GÐbÐbÐbÑbð&ð &ð &ð Ø€\Ô˜-Ô4Ô9ÔAÑBÔBðð ð ñ CÔBñ „Xðð 
„[ð$ð $ð $ñ „[ð$ð
 €\Ô˜-Ô4Ô:ÔBÑCÔCðHð Hð Hñ DÔCðHð$ €\Ô˜-Ô4Ô:ÔBÑCÔCðTð Tð Tñ DÔCðTð Tð Tr   r—   rŠ   Úresponseúglm.GenerateMessageResponseú8glm.DiscussServiceClient | glm.DiscussServiceAsyncClientc                ó:  — t          | ¦  «                             | ¦  «        } |                      d¦  «        }|d         | d<   |d         | d<   |d         | d<   t          |¦  «                             |¦  «        }|                     d¦  «         t          j        |d         ¦  «        |d<   |d         r|d         d         }nd }| d                              |¦  «         |                      dd ¦  «         |                      d	d ¦  «         t          dd
|i|¤| ¤ŽS )Nr_   rJ   r^   r   r¬   r«   r   rv   rw   rœ   r    )r¨   r©   r4   r   Úconvert_filters_to_enumsrQ   Ú
setdefaultr—   )rŠ   r¾   r…   r_   r¦   s        r   Ú_build_chat_responserÄ   ó  s'  € õ
 �7‰mŒm×#Ò# GÑ,Ô,€GØ�[Š[˜Ñ"Ô"€FØ  Ô,€GˆJÑØ 	Ô*€GˆIÑØ  Ô,€GˆJÑå�H‰~Œ~×%Ò% hÑ/Ô/€HØ‡L‚L�ÑÔÐå&Ô?ÀÈÔ@SÑTÔT€HˆYÑà�Ôð Ø˜Ô% aÔ(ˆˆàˆØˆJÔ×Ò˜tÑ$Ô$Ð$Ø×Ò�} dÑ+Ô+Ð+Ø×ÒÐ(¨$Ñ/Ô/Ð/åÐ>Ð> Ð>¨(Ð>°gÐ>Ð>Ð>r   c                ón   — |€t          ¦   «         }|                     | ¦  «        }t          | ||¦  «        S r%   )r   Úgenerate_messagerÄ   ©rŠ   r…   r¾   s      r   r‹   r‹     s9   € ð €~Ý+Ñ-Ô-ˆà×&Ò& wÑ/Ô/€Hå ¨°6Ñ:Ô:Ð:r   c              ƒ  ó~   K  — |€t          ¦   «         }|                     | ¦  «        ƒ d {V —†}t          | ||¦  «        S r%   )r	   rÆ   rÄ   rÇ   s      r   r�   r�     sO   è è € ð €~Ý1Ñ3Ô3ˆà×,Ò,¨WÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5€Hå ¨°6Ñ:Ô:Ð:r   )r_   r^   rJ   r   rz   r…   úmodel_types.AnyModelNameOptionsúdiscuss_types.TokenCountc                óâ   — t          j        |¦  «        }t          | |||¬¦  «        } |€t          ¦   «         }|                     || ¬¦  «        }t          |¦  «                             |¦  «        S )Nr]   )rz   r_   )r   r�   ru   r   Úcount_message_tokensr¨   r©   )r_   r^   rJ   r   rz   r…   rR   s          r   rÌ   rÌ   &  sm   € õ Ô'¨Ñ.Ô.€EÝ! &°'ÀHÐW_Ð`Ñ`Ô`€Fà€~Ý+Ñ-Ô-ˆà×(Ò(¨u¸VÐ(ÑDÔD€Få�‰<Œ<×Ò Ñ'Ô'Ð'r   )r   r   r   r   )r   r   r   r   )r?   r@   r   rA   )rJ   rK   r   rL   )rJ   rW   r   rL   r%   )
r_   r`   r^   ra   rJ   rb   r   rc   r   rd   )rz   r{   r^   ra   rJ   rb   r   rc   rv   r|   rw   r}   rx   r|   ry   r|   r_   r~   r   r   )rz   r{   r^   ra   rJ   rb   r   rc   rv   r|   rw   r}   rx   r|   ry   r|   r_   r~   r…   r†   r   r‡   )rz   r{   r^   ra   rJ   rb   r   rc   rv   r|   rw   r}   rx   r|   ry   r|   r_   r~   r…   rŽ   r   r‡   r    )rŠ   r   r¾   r¿   r…   rÀ   r   r—   )rŠ   r   r…   r†   r   r—   )rŠ   r   r…   rŽ   r   r—   )r_   r`   r^   ra   rJ   rb   r   rc   rz   rÉ   r…   rŽ   r   rÊ   )/Ú
__future__r   r·   ÚsysrO   Útypingr   r   r   r   Úgoogle.ai.generativelanguageÚaiÚgenerativelanguager   Úgoogle.generativeai.clientr   r	   Úgoogle.generativeair
   Úgoogle.generativeai.typesr   r   r   r   r>   rI   rV   r\   rr   ru   r„   ÚDEFAULT_DISCUSS_MODELr�   r»   r¼   r‘   Úversion_infoÚmajorÚminorÚDATACLASS_KWARGSÚprettyprintr—   Ú	dataclassrÄ   r‹   r�   rÌ   r    r   r   ú<module>rÝ      sã  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 
€
€
€
Ø €€€à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à AÐ AÐ AÐ AÐ AÐ AØ GÐ GÐ GÐ GÐ GÐ GØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ð$ð $ð $ð $ð-ð -ð -ð -ð`ð ð ð ð&'ð 'ð 'ð 'ðT-ð -ð -ð -ðb 26ð:ð Ø59Ø59ð:ð :ð :ð :ð :ð :ð| 26ð%ð Ø59Ø59ð%ð %ð %ð %ð %ð %ð" Ø59Ø59Ø $Ø"&ØØØ8<ðð ð ð ð ð ð: 0Ð ð
 5LØØ59Ø59Ø $Ø"&ØØØ8<Ø.2ð^>ð ^>ð ^>ð ^>ð ^>ð ^>ðB €Ô�d”lÑ#Ô#ð 5LØØ59Ø59Ø $Ø"&ØØØ8<Ø37ðJð Jð Jð Jð Jñ $Ô#ðJð8 ÔÔ˜CÔ,Ô2Ð3°wÒ>Ð>Ø! 4Ð(ÐÐàÐð ÔØ€Ô�mÔ0Ô8Ñ9Ô9Ø€ÔÐ6Ð6Ð)Ð6Ð6°Ð6Ð6Ð6ð6Tð 6Tð 6Tð 6Tð 6T�=Ô-ñ 6Tô 6Tñ 7Ô6ñ :Ô9ñ Ôð6Tðr?ð ?ð ?ð ?ð: /3ð	;ð 	;ð 	;ð 	;ð 	;ð 48ð	;ð 	;ð 	;ð 	;ð 	;ð 26ØØ59Ø59Ø-BØ37ð(ð (ð (ð (ð (ð (ð (ð (r   