Ë
    ´ŒjÂŒ  ã                  ó(  — d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d dlmZmZ d d	lmZmZmZ d d
lm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z* g d¢Z+eddddœ	 	 	 	 	 	 	 	 	 	 	 d!d„«       Z,e	 d"ddddœ	 	 	 	 	 	 	 	 	 	 	 d#d„«       Z,e	 d"ddddœ	 	 	 	 	 	 	 	 	 	 	 d$d„«       Z,	 d"ddddœ	 	 	 	 	 	 	 	 	 	 	 d%d„Z,ddœ	 	 	 	 	 	 	 d&d„Z-h d£Z.d'd„Z/d(d„Z0ddœd)d„Z1d*d„Z2dZ3 G d „ deee
f   «      Z4y)+é    )ÚannotationsN)ÚAsyncIteratorÚIteratorÚSequence)Úutil)ÚAnyÚCallableÚLiteralÚOptionalÚUnionÚcastÚoverload)ÚBaseChatModelÚLanguageModelInputÚSimpleChatModel)Úagenerate_from_streamÚgenerate_from_stream)Ú
AnyMessageÚBaseMessage)ÚRunnableÚRunnableConfigÚensure_config)ÚStreamEvent)ÚBaseTool)ÚRunLogÚRunLogPatch)Ú	BaseModel)Ú	TypeAliasÚoverride)r   r   r   r   Úinit_chat_model)Úmodel_providerÚconfigurable_fieldsÚconfig_prefixc                ó   — y ©N© ©Úmodelr!   r"   r#   Úkwargss        úd/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain/chat_models/base.pyr    r    +   s   € ð ó    Ú_ConfigurableModelc                ó   — y r%   r&   r'   s        r*   r    r    6   ó   € ð r+   .c                ó   — y r%   r&   r'   s        r*   r    r    A   r.   r+   c               óÌ   — | s|sd}|xs d}|r|st        j                  d|›d�d¬«       |st        t        t        | «      fd|i|¤ŽS | r| |d<   |r||d<   t        |||¬	«      S )
a×'  Initialize a ChatModel in a single line using the model's name and provider.

    .. note::
        Must have the integration package corresponding to the model provider installed.
        You should look at the `provider integration's API reference <https://python.langchain.com/api_reference/reference.html#integrations>`__
        to see what parameters are supported by the model.

    Args:
        model: The name of the model, e.g. ``'o3-mini'``, ``'claude-3-5-sonnet-latest'``. You can
            also specify model and model provider in a single argument using
            ``'{model_provider}:{model}'`` format, e.g. ``'openai:o1'``.
        model_provider: The model provider if not specified as part of model arg (see
            above). Supported model_provider values and the corresponding integration
            package are:

            - ``openai``              -> ``langchain-openai``
            - ``anthropic``           -> ``langchain-anthropic``
            - ``azure_openai``        -> ``langchain-openai``
            - ``azure_ai``            -> ``langchain-azure-ai``
            - ``google_vertexai``     -> ``langchain-google-vertexai``
            - ``google_genai``        -> ``langchain-google-genai``
            - ``bedrock``             -> ``langchain-aws``
            - ``bedrock_converse``    -> ``langchain-aws``
            - ``cohere``              -> ``langchain-cohere``
            - ``fireworks``           -> ``langchain-fireworks``
            - ``together``            -> ``langchain-together``
            - ``mistralai``           -> ``langchain-mistralai``
            - ``huggingface``         -> ``langchain-huggingface``
            - ``groq``                -> ``langchain-groq``
            - ``ollama``              -> ``langchain-ollama``
            - ``google_anthropic_vertex``    -> ``langchain-google-vertexai``
            - ``deepseek``            -> ``langchain-deepseek``
            - ``ibm``                 -> ``langchain-ibm``
            - ``nvidia``              -> ``langchain-nvidia-ai-endpoints``
            - ``xai``                 -> ``langchain-xai``
            - ``perplexity``          -> ``langchain-perplexity``

            Will attempt to infer model_provider from model if not specified. The
            following providers will be inferred based on these model prefixes:

            - ``gpt-3...`` | ``gpt-4...`` | ``o1...`` -> ``openai``
            - ``claude...``                       -> ``anthropic``
            - ``amazon...``                       -> ``bedrock``
            - ``gemini...``                       -> ``google_vertexai``
            - ``command...``                      -> ``cohere``
            - ``accounts/fireworks...``           -> ``fireworks``
            - ``mistral...``                      -> ``mistralai``
            - ``deepseek...``                     -> ``deepseek``
            - ``grok...``                         -> ``xai``
            - ``sonar...``                        -> ``perplexity``
        configurable_fields: Which model parameters are configurable:

            - None: No configurable fields.
            - ``'any'``: All fields are configurable. **See Security Note below.**
            - Union[List[str], Tuple[str, ...]]: Specified fields are configurable.

            Fields are assumed to have config_prefix stripped if there is a
            config_prefix. If model is specified, then defaults to None. If model is
            not specified, then defaults to ``("model", "model_provider")``.

            ***Security Note***: Setting ``configurable_fields="any"`` means fields like
            ``api_key``, ``base_url``, etc. can be altered at runtime, potentially redirecting
            model requests to a different service/user. Make sure that if you're
            accepting untrusted configurations that you enumerate the
            ``configurable_fields=(...)`` explicitly.

        config_prefix: If ``'config_prefix'`` is a non-empty string then model will be
            configurable at runtime via the
            ``config["configurable"]["{config_prefix}_{param}"]`` keys. If
            ``'config_prefix'`` is an empty string then model will be configurable via
            ``config["configurable"]["{param}"]``.
        temperature: Model temperature.
        max_tokens: Max output tokens.
        timeout: The maximum time (in seconds) to wait for a response from the model
            before canceling the request.
        max_retries: The maximum number of attempts the system will make to resend a
            request if it fails due to issues like network timeouts or rate limits.
        base_url: The URL of the API endpoint where requests are sent.
        rate_limiter: A ``BaseRateLimiter`` to space out requests to avoid exceeding
            rate limits.
        kwargs: Additional model-specific keyword args to pass to
            ``<<selected ChatModel>>.__init__(model=model_name, **kwargs)``.

    Returns:
        A BaseChatModel corresponding to the model_name and model_provider specified if
        configurability is inferred to be False. If configurable, a chat model emulator
        that initializes the underlying model at runtime once a config is passed in.

    Raises:
        ValueError: If model_provider cannot be inferred or isn't supported.
        ImportError: If the model provider integration package is not installed.

    .. dropdown:: Init non-configurable model
        :open:

        .. code-block:: python

            # pip install langchain langchain-openai langchain-anthropic langchain-google-vertexai
            from langchain.chat_models import init_chat_model

            o3_mini = init_chat_model("openai:o3-mini", temperature=0)
            claude_sonnet = init_chat_model("anthropic:claude-3-5-sonnet-latest", temperature=0)
            gemini_2_flash = init_chat_model("google_vertexai:gemini-2.0-flash", temperature=0)

            o3_mini.invoke("what's your name")
            claude_sonnet.invoke("what's your name")
            gemini_2_flash.invoke("what's your name")


    .. dropdown:: Partially configurable model with no default

        .. code-block:: python

            # pip install langchain langchain-openai langchain-anthropic
            from langchain.chat_models import init_chat_model

            # We don't need to specify configurable=True if a model isn't specified.
            configurable_model = init_chat_model(temperature=0)

            configurable_model.invoke(
                "what's your name",
                config={"configurable": {"model": "gpt-4o"}}
            )
            # GPT-4o response

            configurable_model.invoke(
                "what's your name",
                config={"configurable": {"model": "claude-3-5-sonnet-latest"}}
            )
            # claude-3.5 sonnet response

    .. dropdown:: Fully configurable model with a default

        .. code-block:: python

            # pip install langchain langchain-openai langchain-anthropic
            from langchain.chat_models import init_chat_model

            configurable_model_with_default = init_chat_model(
                "openai:gpt-4o",
                configurable_fields="any",  # this allows us to configure other params like temperature, max_tokens, etc at runtime.
                config_prefix="foo",
                temperature=0
            )

            configurable_model_with_default.invoke("what's your name")
            # GPT-4o response with temperature 0

            configurable_model_with_default.invoke(
                "what's your name",
                config={
                    "configurable": {
                        "foo_model": "anthropic:claude-3-5-sonnet-20240620",
                        "foo_temperature": 0.6
                    }
                }
            )
            # Claude-3.5 sonnet response with temperature 0.6

    .. dropdown:: Bind tools to a configurable model

        You can call any ChatModel declarative methods on a configurable model in the
        same way that you would with a normal model.

        .. code-block:: python

            # pip install langchain langchain-openai langchain-anthropic
            from langchain.chat_models import init_chat_model
            from pydantic import BaseModel, Field

            class GetWeather(BaseModel):
                '''Get the current weather in a given location'''

                location: str = Field(..., description="The city and state, e.g. San Francisco, CA")

            class GetPopulation(BaseModel):
                '''Get the current population in a given location'''

                location: str = Field(..., description="The city and state, e.g. San Francisco, CA")

            configurable_model = init_chat_model(
                "gpt-4o",
                configurable_fields=("model", "model_provider"),
                temperature=0
            )

            configurable_model_with_tools = configurable_model.bind_tools([GetWeather, GetPopulation])
            configurable_model_with_tools.invoke(
                "Which city is hotter today and which is bigger: LA or NY?"
            )
            # GPT-4o response with tool calls

            configurable_model_with_tools.invoke(
                "Which city is hotter today and which is bigger: LA or NY?",
                config={"configurable": {"model": "claude-3-5-sonnet-20240620"}}
            )
            # Claude-3.5 sonnet response with tools

    .. versionadded:: 0.2.7

    .. versionchanged:: 0.2.8

        Support for ``configurable_fields`` and ``config_prefix`` added.

    .. versionchanged:: 0.2.12

        Support for Ollama via langchain-ollama package added
        (langchain_ollama.ChatOllama). Previously,
        the now-deprecated langchain-community version of Ollama was imported
        (langchain_community.chat_models.ChatOllama).

        Support for AWS Bedrock models via the Converse API added
        (model_provider="bedrock_converse").

    .. versionchanged:: 0.3.5

        Out of beta.

    .. versionchanged:: 0.3.19

        Support for Deepseek, IBM, Nvidia, and xAI models added.

    )r(   r!   Ú zconfig_prefix=z€ has been set but no fields are configurable. Set `configurable_fields=(...)` to specify the model params that are configurable.é   )Ú
stacklevelr!   r(   )Údefault_configr#   r"   )ÚwarningsÚwarnÚ_init_chat_model_helperr   Ústrr,   r'   s        r*   r    r    O   s¤   € ñR Ñ,Ø9ÐØ!Ò' R€MÙÑ0Ü�‰Øˆ}Ðð ð ð õ		
ñ Ü&Ü”�eÓñ
à)ð
ð ñ
ð 	
ñ
 Øˆˆw‰ÙØ#1ˆÐÑ ÜØØ#Ø/ôð r+   )r!   c               ó0  — t        | |«      \  } }|dk(  rt        d«       ddlm}  |dFd| i|¤ŽS |dk(  rt        d«       ddlm}  |dFd| i|¤ŽS |d	k(  rt        d«       dd
lm}  |dFd| i|¤ŽS |dk(  rt        d«       ddlm}  |dFd| i|¤ŽS |dk(  rt        d«       ddl	m
}  |dFd| i|¤ŽS |dk(  rt        d«       ddlm}  |dFd| i|¤ŽS |dk(  rt        d«       ddlm}	  |	dFd| i|¤ŽS |dk(  rt        d«       ddlm}
  |
dFd| i|¤ŽS |dk(  r	 t        d«       ddlm}  dFd| i|¤ŽS |dk(  rt        d«       dd lm}  |dFd| i|¤ŽS |d!k(  rt        d"«       dd#lm}  |dFd| i|¤ŽS |d$k(  rt        d%«       dd&lm}  |dFd'| i|¤ŽS |d(k(  rt        d)«       dd*lm}  |dFd| i|¤ŽS |d+k(  rt        d,«       dd-lm}  |dFd'| i|¤ŽS |d.k(  rt        d,«       dd/lm}  |dFd| i|¤ŽS |d0k(  rt        d«       dd1l m!}  |dFd| i|¤ŽS |d2k(  rt        d3d4¬5«       dd6l"m#}  |dFd| i|¤ŽS |d7k(  rt        d8«       dd9l$m%}  |dFd| i|¤ŽS |d:k(  rt        d;«       dd<l&m'}  |dFd'| i|¤ŽS |d=k(  rt        d>«       dd?l(m)}  |dFd| i|¤ŽS |d@k(  rt        dA«       ddBl*m+}  |dFd| i|¤ŽS dCjY                  tZ        «      }dD|›dE|› �}t]        |«      ‚# t&        $ r1 	 t        d«       ddlm} n# t&        $ r t        d«       Y nw xY wY �Œíw xY w)GNÚopenaiÚlangchain_openair   )Ú
ChatOpenAIr(   Ú	anthropicÚlangchain_anthropic)ÚChatAnthropicÚazure_openai)ÚAzureChatOpenAIÚazure_aiÚlangchain_azure_ai)ÚAzureAIChatCompletionsModelÚcohereÚlangchain_cohere)Ú
ChatCohereÚgoogle_vertexaiÚlangchain_google_vertexai)ÚChatVertexAIÚgoogle_genaiÚlangchain_google_genai)ÚChatGoogleGenerativeAIÚ	fireworksÚlangchain_fireworks)ÚChatFireworksÚollamaÚlangchain_ollama)Ú
ChatOllamaÚlangchain_communityÚtogetherÚlangchain_together)ÚChatTogetherÚ	mistralaiÚlangchain_mistralai)ÚChatMistralAIÚhuggingfaceÚlangchain_huggingface)ÚChatHuggingFaceÚmodel_idÚgroqÚlangchain_groq)ÚChatGroqÚbedrockÚlangchain_aws)ÚChatBedrockÚbedrock_converse)ÚChatBedrockConverseÚgoogle_anthropic_vertex)ÚChatAnthropicVertexÚdeepseekÚlangchain_deepseekzlangchain-deepseek©Ú	pkg_kebab)ÚChatDeepSeekÚnvidiaÚlangchain_nvidia_ai_endpoints)Ú
ChatNVIDIAÚibmÚlangchain_ibm)ÚChatWatsonxÚxaiÚlangchain_xai)ÚChatXAIÚ
perplexityÚlangchain_perplexity)ÚChatPerplexityz, zUnsupported model_provider=z".

Supported model providers are: r&   )/Ú_parse_modelÚ
_check_pkgr;   r<   r>   r?   rA   Úlangchain_azure_ai.chat_modelsrD   rF   rG   rI   rJ   rL   rM   rO   rP   rR   rS   ÚImportErrorÚlangchain_community.chat_modelsrV   rW   rY   rZ   r\   r]   r`   ra   rc   rd   rf   Ú&langchain_google_vertexai.model_gardenrh   rj   rm   ro   rp   rr   rs   ru   rv   rx   ry   ÚjoinÚ_SUPPORTED_PROVIDERSÚ
ValueError)r(   r!   r)   r<   r?   rA   rD   rG   rJ   rM   rP   rS   rW   rZ   r]   ra   rd   rf   rh   rm   rp   rs   rv   ry   Ú	supportedÚmsgs                             r*   r7   r7   T  sÂ  € ô )¨°Ó?Ñ€Eˆ>Ø˜Ò!ÜÐ%Ô&Ý/áÑ0 Ð0¨Ñ0Ð0Ø˜Ò$ÜÐ(Ô)Ý5áÑ3 5Ð3¨FÑ3Ð3Ø˜Ò'ÜÐ%Ô&Ý4áÑ5 UÐ5¨fÑ5Ð5Ø˜Ò#ÜÐ'Ô(ÝNá*ÑA°ÐA¸&ÑAÐAØ˜Ò!ÜÐ%Ô&Ý/áÑ0 Ð0¨Ñ0Ð0ØÐ*Ò*ÜÐ.Ô/Ý:áÑ2 %Ð2¨6Ñ2Ð2Ø˜Ò'ÜÐ+Ô,ÝAá%Ñ<¨EÐ<°VÑ<Ð<Ø˜Ò$ÜÐ(Ô)Ý5áÑ3 5Ð3¨FÑ3Ð3Ø˜Ò!ð	/ÜÐ)Ô*Ý3ñ Ñ0 Ð0¨Ñ0Ð0Ø˜Ò#ÜÐ'Ô(Ý3áÑ2 %Ð2¨6Ñ2Ð2Ø˜Ò$ÜÐ(Ô)Ý5áÑ3 5Ð3¨FÑ3Ð3Ø˜Ò&ÜÐ*Ô+Ý9áÑ8¨Ð8°Ñ8Ð8Ø˜ÒÜÐ#Ô$Ý+áÑ.˜eÐ. vÑ.Ð.Ø˜Ò"Ü�?Ô#Ý-ñ Ñ4 EÐ4¨VÑ4Ð4ØÐ+Ò+Ü�?Ô#Ý5á"Ñ9¨Ð9°&Ñ9Ð9ØÐ2Ò2ÜÐ.Ô/ÝNá"Ñ9¨Ð9°&Ñ9Ð9Ø˜Ò#ÜÐ'Ð3GÕHÝ3áÑ2 %Ð2¨6Ñ2Ð2Ø˜Ò!ÜÐ2Ô3Ý<áÑ0 Ð0¨Ñ0Ð0Ø˜ÒÜ�?Ô#Ý-áÑ4 EÐ4¨VÑ4Ð4Ø˜ÒÜ�?Ô#Ý)áÑ-˜UÐ- fÑ-Ð-Ø˜Ò%ÜÐ)Ô*Ý7áÑ4 EÐ4¨VÑ4Ð4Ø—	‘	Ô.Ó/€Ià
&�~Ð'Ð'KÈIÈ;ÐWð ô �S‹/ÐøôY ò 	/ð/ÜÐ0Ô1ÞFøÜò /ô Ð-Ö.ð/ýð	/ús6   ÄK Ë	LË%K7Ë6LË7LÌLÌLÌLÌL>   rq   rt   r_   rE   rQ   r:   rb   rB   ri   rU   r=   rN   rX   rw   r[   r@   rK   rH   re   rg   c                ót  ‡ — t        ˆ fd„dD «       «      ry‰ j                  d«      ry‰ j                  d«      ry‰ j                  d«      ry	‰ j                  d
«      ry‰ j                  d«      ry‰ j                  d«      ry‰ j                  d«      ry‰ j                  d«      ry‰ j                  d«      ryy )Nc              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr%   )Ú
startswith)Ú.0ÚpreÚ
model_names     €r*   Ú	<genexpr>z0_attempt_infer_model_provider.<locals>.<genexpr>ï  s   øè ø€ Ð
PÑ1O¨#ˆ:× Ñ  ×%Ñ1Oùs   ƒ)zgpt-3zgpt-4Úo1Úo3r:   Úclauder=   ÚcommandrE   zaccounts/fireworksrN   ÚgeminirH   zamazon.rb   ÚmistralrX   ri   Úgrokrt   Úsonarrw   )Úanyr‡   )rŠ   s   `r*   Ú_attempt_infer_model_providerr•   î  s²   ø€ Ü
Ó
PÑ1OÓ
PÔPØØ×Ñ˜XÔ&ØØ×Ñ˜YÔ'ØØ×ÑÐ1Ô2ØØ×Ñ˜XÔ&Ø Ø×Ñ˜YÔ'ØØ×Ñ˜YÔ'ØØ×Ñ˜ZÔ(ØØ×Ñ˜VÔ$ØØ×Ñ˜WÔ%ØØr+   c                ó<  — |sUd| v rQ| j                  d«      d   t        v r7| j                  d«      d   }dj                  | j                  d«      dd  «      } |xs t        | «      }|sd| ›d�}t	        |«      ‚|j                  dd«      j                  «       }| |fS )NÚ:r   é   z)Unable to infer model provider for model=z), please specify model_provider directly.Ú-Ú_)Úsplitr�   r€   r•   r‚   ÚreplaceÚlower)r(   r!   r„   s      r*   rz   rz     s¯   € áØ�5‰LØ�K‰K˜Ó˜QÑÔ#7Ñ7àŸ™ SÓ)¨!Ñ,ˆØ—‘˜Ÿ™ SÓ)¨!¨"Ð-Ó.ˆØ#ÒKÔ'DÀUÓ'K€NÙà8°%°ð :'ð (ð 	ô ˜‹oÐØ#×+Ñ+¨C°Ó5×;Ñ;Ó=€NØ�.Ð Ð r+   rk   c               ó‚   — t        j                  | «      s*|�|n| j                  dd«      }d| › d|› d�}t        |«      ‚y )Nrš   r™   zUnable to import z&. Please install with `pip install -U Ú`)r   Ú	find_specrœ   r}   )Úpkgrl   r„   s      r*   r{   r{     sP   € Ü�>‰>˜#ÔØ!*Ð!6‘I¸C¿K¹KÈÈSÓ<Qˆ	à ˜uÐ$JÈ9È+ÐUVÐWð 	ô ˜#ÓÐð r+   c                óD   — | j                  |«      r| t        |«      d  } | S r%   )r‡   Úlen)ÚsÚprefixs     r*   Ú_remove_prefixr¦   "  s#   € Ø‡|�|�FÔØŒc�&‹kˆmÐˆØ€Hr+   )Ú
bind_toolsÚwith_structured_outputc                  ót  ‡ — e Zd Zdddddœ	 	 	 	 	 	 	 	 	 d#d„Zd$d„Zd%d&d„Zd'd	„Z	 d%	 	 	 	 	 d(d
„Zed)d„«       Z	e
	 d%	 	 	 	 	 	 	 d*d„«       Ze
	 d%	 	 	 	 	 	 	 d*d„«       Ze
	 d%	 	 	 	 	 	 	 d+d„«       Ze
	 d%	 	 	 	 	 	 	 d,d„«       Z	 d%ddœ	 	 	 	 	 	 	 	 	 d-ˆ fd„Z	 d%ddœ	 	 	 	 	 	 	 	 	 d-ˆ fd„Z	 d%ddœ	 	 	 	 	 	 	 	 	 d.ˆ fd„Z	 d%ddœ	 	 	 	 	 	 	 	 	 d/ˆ fd„Ze
	 d%	 	 	 	 	 	 	 d0d„«       Ze
	 d%	 	 	 	 	 	 	 d1d„«       Ze	 d%dddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d„«       Ze	 d%ddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d„«       Ze
	 d%dddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d„«       Ze
	 d%ddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d „«       Z	 	 	 	 	 	 d6d!„Z	 	 	 	 	 	 d7d"„Zˆ xZS )8r,   Nr”   r1   r&   ©r4   r"   r#   Úqueued_declarative_operationsc               ó¦   — |xs i | _         |dk(  r|n
t        |«      | _        |r|j                  d«      s|dz   n|| _        t        |«      | _        y )Nr”   rš   )Ú_default_configÚlistÚ_configurable_fieldsÚendswithÚ_config_prefixÚ_queued_declarative_operations)Úselfr4   r"   r#   r«   s        r*   Ú__init__z_ConfigurableModel.__init__,  sm   € ð &4Ò%9°rˆÔð # eÒ+ñ  äÐ)Ó*ð 	Ô!ñ  ]×%;Ñ%;¸CÔ%@ð ˜CÒàð 	Ôô
 NRØ)óN
ˆÕ+r+   c                óà   ‡ ‡— ‰t         v r	dˆˆ fd„}|S ‰ j                  r*‰ j                  «       x}rt        |‰«      rt	        |‰«      S ‰› d�}‰ j                  r|dz  }|dz  }t        |«      ‚)Nc                 ó   •— t        ‰j                  «      }|j                  ‰| |f«       t        t	        ‰j
                  «      t        ‰j                  t         «      rt        ‰j                  «      n‰j                  ‰j                  |¬«      S )Nrª   )	r®   r²   Úappendr,   Údictr­   Ú
isinstancer¯   r±   )Úargsr)   r«   Únamer³   s      €€r*   Úqueuez-_ConfigurableModel.__getattr__.<locals>.queueJ  s~   ø€ Ü04Ø×7Ñ7ó1Ð-ð .×4Ñ4°d¸DÀ&Ð5IÔJÜ)Ü#'¨×(<Ñ(<Ó#=ä! $×";Ñ";¼TÔBô )-¨T×-FÑ-FÔ(Gà×2Ñ2Ø"&×"5Ñ"5Ø2Oôð r+   z! is not a BaseChatModel attributez, and is not implemented on the default modelÚ.)rº   r   r)   r   Úreturnr,   )Ú_DECLARATIVE_METHODSr­   Ú_modelÚhasattrÚgetattrÚAttributeError)r³   r»   r¼   r(   r„   s   ``   r*   Ú__getattr__z_ConfigurableModel.__getattr__C  s}   ù€ ØÔ'Ñ'öð ˆLØ×Ò¨d¯k©k«mÐ%; UÐ%;ÄÈÐPTÔAUÜ˜5 $Ó'Ð'Ø�Ð7Ð8ˆØ×ÒØÐAÑAˆCØˆs‰
ˆÜ˜SÓ!Ð!r+   c                ó¨   — i | j                   ¥| j                  |«      ¥}t        di |¤Ž}| j                  D ]  \  }}} t	        ||«      |i |¤Ž}Œ |S )Nr&   )r­   Ú_model_paramsr7   r²   rÂ   )r³   ÚconfigÚparamsr(   r»   rº   r)   s          r*   rÀ   z_ConfigurableModel._modela  sd   € ØG�D×(Ñ(ÐG¨D×,>Ñ,>¸vÓ,FÐGˆÜ'Ñ1¨&Ñ1ˆØ"&×"EÔ"EÑˆD�$˜Ø(”G˜E 4Ó(¨$Ð9°&Ñ9‰Eð #Fàˆr+   c                óz  — t        |«      }|j                  di «      j                  «       D ��ci c]7  \  }}|j                  | j                  «      rt        || j                  «      |“Œ9 }}}| j                  dk7  r2|j                  «       D ��ci c]  \  }}|| j                  v sŒ||“Œ }}}|S c c}}w c c}}w )NÚconfigurabler”   )r   ÚgetÚitemsr‡   r±   r¦   r¯   )r³   rÇ   ÚkÚvÚmodel_paramss        r*   rÆ   z _ConfigurableModel._model_paramsh  sÇ   € Ü˜vÓ&ˆð Ÿ
™
 >°2Ó6×<Ñ<Ô>ô
á>‘��1Ø�|‰|˜D×/Ñ/Ô0ô ˜1˜d×1Ñ1Ó2°AÑ5Ø>ð 	ñ 
ð
 ×$Ñ$¨Ò-à!-×!3Ñ!3Ô!5ôÙ!5™˜˜A¸¸d×>WÑ>WÒ9W��1‘Ð!5ð ñ ð Ðùó
ùós   ¯<B1ÂB7Â'B7c                ó„  — t        di |xs i ¤t        t         |«      ¤Ž}| j                  |«      }|j                  «       D ��ci c]  \  }}|dk7  sŒ||“Œ }}}|j	                  di «      j                  «       D ��ci c]   \  }}t        || j                  «      |vr||“Œ" c}}|d<   t        | j                  «      }|r|j                  ddd|if«       t        i | j                  ¥|¥t        | j                  t        «      rt        | j                  «      n| j                  | j                  |¬«      S c c}}w c c}}w )z4Bind config to a Runnable, returning a new Runnable.rÊ   Úwith_configr&   rÇ   rª   )r   r   rÆ   rÌ   rË   r¦   r±   r®   r²   r·   r,   r­   r¹   r¯   )r³   rÇ   r)   rÏ   rÍ   rÎ   Úremaining_configr«   s           r*   rÑ   z_ConfigurableModel.with_configu  sK  € ô  ÑQ 6¢<¨RÐQ´D¼ÈÓ4PÑQˆØ×)Ñ)¨&Ó1ˆØ-3¯\©\¬^ÔS©^¡T Q¨¸qÀNÓ?R˜A˜q™D¨^ÐÑSð Ÿ
™
 >°2Ó6×<Ñ<Ô>ô,
á>‘��1Ü˜a ×!4Ñ!4Ó5¸\ÑIð ˆq‰DØ>ò,
Ð˜Ñ(ô
 )-¨T×-PÑ-PÓ(QÐ%ÙØ)×0Ñ0à!ØØÐ/Ð0ðôô "ØC˜d×2Ñ2ÐC°lÐCä˜$×3Ñ3´TÔ:ô !% T×%>Ñ%>Ô ?à×*Ñ*Ø×-Ñ-Ø*Gô
ð 	
ùó Tùó,
s   ÁD6ÁD6Á=%D<c                óZ   — ddl m}m} t        t        t        ||f   t
        t           f   S )z%Get the input type for this runnable.r   )ÚChatPromptValueConcreteÚStringPromptValue)Úlangchain_core.prompt_valuesrÔ   rÕ   r   r8   r®   r   )r³   rÔ   rÕ   s      r*   Ú	InputTypez_ConfigurableModel.InputType•  s5   € ÷	
ô ÜÜÐ#Ð%<Ð<Ñ=Ü”Ñðñ
ð 	
r+   c                óJ   —  | j                  |«      j                  |fd|i|¤ŽS ©NrÇ   )rÀ   Úinvoke©r³   ÚinputrÇ   r)   s       r*   rÚ   z_ConfigurableModel.invoke¦  s*   € ð *ˆt�{‰{˜6Ó"×)Ñ)¨%ÑI¸ÐIÀ&ÑIÐIr+   c              ‹  óf   K  —  | j                  |«      j                  |fd|i|¤Žƒ d {  –—† S 7 Œ­wrÙ   )rÀ   ÚainvokerÛ   s       r*   rÞ   z_ConfigurableModel.ainvoke¯  s4   è ø€ ð 1�T—[‘[ Ó(×0Ñ0°ÑP¸vÐPÈÑP×PÐPÐPús   ‚(1ª/«1c              +  óh   K  —  | j                  |«      j                  |fd|i|¤ŽE d {  –—†  y 7 Œ­wrÙ   )rÀ   ÚstreamrÛ   s       r*   rà   z_ConfigurableModel.stream¸  s1   è ø€ ð .�4—;‘;˜vÓ&×-Ñ-¨eÑM¸FÐMÀfÑM×MÒMúó   ‚(2ª0«2c               óx   K  —  | j                  |«      j                  |fd|i|¤Ž2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wrÙ   )rÀ   Úastream©r³   rÜ   rÇ   r)   Úxs        r*   rã   z_ConfigurableModel.astreamÁ  s@   è ø€ ð 3�t—{‘{ 6Ó*×2Ñ2°5ÑRÀÐRÈ6ÒR÷ 	�!ØŒGð	øÑRùó   ‚%:§8«6¬8¯:¶8¸:F)Úreturn_exceptionsc               óê   •— |xs d }|�t        |t        «      st        |«      dk  r:t        |t        «      r|d   } | j	                  |«      j
                  |f||dœ|¤ŽS t        ‰| �  |f||dœ|¤ŽS ©Nr˜   r   )rÇ   rç   )r¹   r¸   r£   r®   rÀ   ÚbatchÚsuper©r³   ÚinputsrÇ   rç   r)   Ú	__class__s        €r*   rê   z_ConfigurableModel.batchË  s›   ø€ ð ’˜4ˆàˆ>œZ¨´Ô5¼¸V»ÈÒ9IÜ˜&¤$Ô'Ø ™�Ø,�4—;‘;˜vÓ&×,Ñ,ØðàØ"3ñð ñ	ð ô ‰w‰}Øð
àØ/ñ
ð ñ	
ð 	
r+   c             ‹  ó  •K  — |xs d }|�t        |t        «      st        |«      dk  rBt        |t        «      r|d   } | j	                  |«      j
                  |f||dœ|¤Žƒ d {  –—† S t        ‰| �  |f||dœ|¤Žƒ d {  –—† S 7 Œ7 Œ­wré   )r¹   r¸   r£   r®   rÀ   Úabatchrë   rì   s        €r*   rð   z_ConfigurableModel.abatchç  s´   øè ø€ ð ’˜4ˆàˆ>œZ¨´Ô5¼¸V»ÈÒ9IÜ˜&¤$Ô'Ø ™�Ø3˜Ÿ™ VÓ,×3Ñ3ØðàØ"3ñð ñ	÷ ð ô ‘W‘^Øð
àØ/ñ
ð ñ	
÷ 
ð 	
ðøð
ús$   ƒA$BÁ'BÁ(BÂB	ÂBÂ	Bc             +  ó:  •K  — |xs d }|�t        |t        «      st        |«      dk  rQt        |t        «      r|d   } | j	                  t        t        |«      «      j                  |f||dœ|¤ŽE d {  –—†  y t        ‰| �  |f||dœ|¤ŽE d {  –—†  y 7 Œ!7 Œ­wré   )	r¹   r¸   r£   r®   rÀ   r   r   Úbatch_as_completedrë   rì   s        €r*   rò   z%_ConfigurableModel.batch_as_completed  s¼   øè ø€ ð ’˜4ˆàˆ>œZ¨´Ô5¼¸V»ÈÒ9IÜ˜&¤$Ô'Ø ™�ØS�t—{‘{¤4¬¸Ó#?Ó@×SÑSØðàØ"3ñð ñ	÷ ñ ô ‘wÑ1ØðàØ"3ñð ñ	÷ ñ ðøðús$   ƒA2BÁ5BÁ6BÂBÂBÂBc              óZ  •K  — |xs d }|�t        |t        «      st        |«      dk  rWt        |t        «      r|d   } | j	                  t        t        |«      «      j                  |f||dœ|¤Ž2 3 d {  –—† }|­–— Œt        ‰| �  |f||dœ|¤Ž2 3 d {  –—† }|­–— Œ7 Œ,6 y 7 Œ6 y ­wré   )	r¹   r¸   r£   r®   rÀ   r   r   Úabatch_as_completedrë   )r³   rí   rÇ   rç   r)   rå   rî   s         €r*   rô   z&_ConfigurableModel.abatch_as_completed   sÖ   øè ø€ ð ’˜4ˆàˆ>œZ¨´Ô5¼¸V»ÈÒ9IÜ˜&¤$Ô'Ø ™�ð"˜4Ÿ;™;Ü”^ VÓ,óç!Ñ!Øðð Ø"3ñð ò÷ �að ”ô !™7Ñ6ØðàØ"3ñð ò	÷ �að ”ð%øñ ðøñ ùsN   ƒA/B+Á2B%Á6B#Á7B%Á:B+ÂB)ÂB'ÂB)ÂB+Â#B%Â%B+Â'B)Â)B+c              +  óh   K  —  | j                  |«      j                  |fd|i|¤ŽE d {  –—†  y 7 Œ­wrÙ   )rÀ   Ú	transformrÛ   s       r*   rö   z_ConfigurableModel.transformA  s1   è ø€ ð 1�4—;‘;˜vÓ&×0Ñ0°ÑP¸vÐPÈÑP×PÒPúrá   c               óx   K  —  | j                  |«      j                  |fd|i|¤Ž2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wrÙ   )rÀ   Ú
atransformrä   s        r*   rø   z_ConfigurableModel.atransformJ  s@   è ø€ ð 6�t—{‘{ 6Ó*×5Ñ5°eÑUÀFÐUÈfÒU÷ 	�!ØŒGð	øÑUùræ   T)ÚdiffÚwith_streamed_output_listÚinclude_namesÚinclude_typesÚinclude_tagsÚexclude_namesÚexclude_typesÚexclude_tagsc                ó   — y r%   r&   ©r³   rÜ   rÇ   rù   rú   rû   rü   rý   rþ   rÿ   r   r)   s               r*   Úastream_logz_ConfigurableModel.astream_logT  s   € ð &)r+   )rú   rû   rü   rý   rþ   rÿ   r   c                ó   — y r%   r&   r  s               r*   r  z_ConfigurableModel.astream_loge  s   € ð !$r+   c              óˆ   K  —  | j                  |«      j                  |f|||||||
|	|dœ	|¤Ž2 3 d {  –—† }|­–— Œ7 Œ
6 y ­w)N)	rÇ   rù   rú   rû   rü   rý   r   rÿ   rþ   )rÀ   r  )r³   rÜ   rÇ   rù   rú   rû   rü   rý   rþ   rÿ   r   r)   rå   s                r*   r  z_ConfigurableModel.astream_logv  sg   è ø€ ð  7�t—{‘{ 6Ó*×6Ñ6Øð
àØØ&?Ø'Ø'Ø%Ø%Ø'Ø'ñ
ð ò
÷ 	�!ð ŒGð	øñ 
ùs#   ‚-A¯A ³>´A ·A¾A Á AÚv2)Úversionrû   rü   rý   rþ   rÿ   r   c              ó†   K  —  | j                  |«      j                  |f||||||	||dœ|
¤Ž2 3 d {  –—† }|­–— Œ7 Œ
6 y ­w)N)rÇ   r  rû   rü   rý   r   rÿ   rþ   )rÀ   Úastream_events)r³   rÜ   rÇ   r  rû   rü   rý   rþ   rÿ   r   r)   rå   s               r*   r	  z!_ConfigurableModel.astream_events•  sd   è ø€ ð :�t—{‘{ 6Ó*×9Ñ9Øð
àØØ'Ø'Ø%Ø%Ø'Ø'ñ
ð ò
÷ 	�!ð ŒGð	øñ 
ùs   ‚,A®?²=³?¶A½?¿Ac                ó2   —  | j                  d«      |fi |¤ŽS )Nr§   ©rÄ   )r³   Útoolsr)   s      r*   r§   z_ConfigurableModel.bind_tools³  s!   € ð
 .ˆt×Ñ Ó-¨eÑ>°vÑ>Ð>r+   c                ó2   —  | j                  d«      |fi |¤ŽS )Nr¨   r  )r³   Úschemar)   s      r*   r¨   z)_ConfigurableModel.with_structured_output»  s"   € ð
 :ˆt×ÑÐ 8Ó9¸&ÑKÀFÑKÐKr+   )
r4   zOptional[dict]r"   ú1Union[Literal['any'], list[str], tuple[str, ...]]r#   r8   r«   z!Sequence[tuple[str, tuple, dict]]r¾   ÚNone)r»   r8   r¾   r   r%   )rÇ   úOptional[RunnableConfig]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)   úOptional[Any]r¾   úIterator[Any])rÜ   r   rÇ   r  r)   r  r¾   úAsyncIterator[Any])
rí   zlist[LanguageModelInput]rÇ   z5Optional[Union[RunnableConfig, list[RunnableConfig]]]rç   Úboolr)   r  r¾   z	list[Any])
rí   úSequence[LanguageModelInput]rÇ   ú9Optional[Union[RunnableConfig, Sequence[RunnableConfig]]]rç   r  r)   r   r¾   z+Iterator[tuple[int, Union[Any, Exception]]])
rí   r  rÇ   r  rç   r  r)   r   r¾   zAsyncIterator[tuple[int, Any]])rÜ   zIterator[LanguageModelInput]rÇ   r  r)   r  r¾   r  )rÜ   z!AsyncIterator[LanguageModelInput]rÇ   r  r)   r  r¾   r  )rÜ   r   rÇ   r  rù   zLiteral[True]rú   r  rû   úOptional[Sequence[str]]rü   r  rý   r  rþ   r  rÿ   r  r   r  r)   r   r¾   zAsyncIterator[RunLogPatch])rÜ   r   rÇ   r  rù   zLiteral[False]rú   r  rû   r  rü   r  rý   r  rþ   r  rÿ   r  r   r  r)   r   r¾   zAsyncIterator[RunLog])rÜ   r   rÇ   r  rù   r  rú   r  rû   r  rü   r  rý   r  rþ   r  rÿ   r  r   r  r)   r   r¾   z8Union[AsyncIterator[RunLogPatch], AsyncIterator[RunLog]])rÜ   r   rÇ   r  r  zLiteral['v1', 'v2']rû   r  rü   r  rý   r  rþ   r  rÿ   r  r   r  r)   r   r¾   zAsyncIterator[StreamEvent])r  zDSequence[Union[dict[str, Any], type[BaseModel], Callable, BaseTool]]r)   r   r¾   z)Runnable[LanguageModelInput, BaseMessage])r  zUnion[dict, type[BaseModel]]r)   r   r¾   z4Runnable[LanguageModelInput, Union[dict, BaseModel]])Ú__name__Ú
__module__Ú__qualname__r´   rÄ   rÀ   rÆ   rÑ   Úpropertyr×   r   rÚ   rÞ   rà   rã   rê   rð   rò   rô   rö   rø   r   r  r	  r§   r¨   Ú__classcell__)rî   s   @r*   r,   r,   +  s3  ø„ ð *.ØQVØØKMñ
ð 'ð
ð Oð	
ð
 ð
ð (Ið
ð 
ó
ó."ô<óð ,0ð
à(ð
ð ð
ð 
ó	
ð@ ò
ó ð
ð  ð ,0ðJà!ðJð )ðJð ð	Jð
 
òJó ðJð ð ,0ðQà!ðQð )ðQð ð	Qð
 
òQó ðQð ð ,0ðNà!ðNð )ðNð  ð	Nð
 
òNó ðNð ð ,0ðà!ðð )ðð  ð	ð
 
òó ðð IMð
ð
 #(ñ
à(ð
ð Fð
ð
  ð
ð  ð
ð 
õ
ð> IMð
ð
 #(ñ
à(ð
ð Fð
ð
  ð
ð  ð
ð 
õ
ð> MQðð
 #(ñà,ðð Jðð
  ðð ðð 
5õð@ MQðð
 #(ñà,ðð Jðð
  ðð ðð 
(õðB ð ,0ðQà+ðQð )ðQð  ð	Qð
 
òQó ðQð ð ,0ðà0ðð )ðð  ð	ð
 
òó ðð ð ,0ð)ð
 #Ø*.Ø15Ø15Ø04Ø15Ø15Ø04ñ)àð)ð )ð)ð
 ð)ð $(ð)ð /ð)ð /ð)ð .ð)ð /ð)ð /ð)ð .ð)ð ð)ð 
$ò)ó ð)ð  ð ,0ð$ð +/Ø15Ø15Ø04Ø15Ø15Ø04ñ$àð$ð )ð$ð
 ð$ð $(ð$ð /ð$ð /ð$ð .ð$ð /ð$ð /ð$ð .ð$ð ð$ð 
ò$ó ð$ð  ð ,0ðð
 Ø*.Ø15Ø15Ø04Ø15Ø15Ø04ñàðð )ðð
 ðð $(ðð /ðð /ðð .ðð /ðð /ðð .ðð ðð 
Bòó ðð< ð ,0ðð
 (,Ø15Ø15Ø04Ø15Ø15Ø04ñàðð )ðð
 %ðð /ðð /ðð .ðð /ðð /ðð .ðð ðð 
$òó ðð:?àSð?ð ð?ð 
3ó	?ðLà,ðLð ðLð 
>÷	Lr+   )r(   r8   r!   úOptional[str]r"   úLiteral[None]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,   )r(   r  r!   r  r"   z;Optional[Union[Literal['any'], list[str], tuple[str, ...]]]r#   r  r)   r   r¾   z(Union[BaseChatModel, _ConfigurableModel])r(   r8   r!   r  r)   r   r¾   r   )rŠ   r8   r¾   r  )r(   r8   r!   r  r¾   ztuple[str, str])r¡   r8   rl   r  r¾   r  )r¤   r8   r¥   r8   r¾   r8   )5Ú
__future__r   r5   Úcollections.abcr   r   r   Ú	importlibr   Útypingr   r	   r
   r   r   r   r   Úlangchain_core.language_modelsr   r   r   Ú*langchain_core.language_models.chat_modelsr   r   Úlangchain_core.messagesr   r   Úlangchain_core.runnablesr   r   r   Úlangchain_core.runnables.schemar   Úlangchain_core.toolsr   Úlangchain_core.tracersr   r   Úpydanticr   Útyping_extensionsr   r   Ú__all__r    r7   r�   r•   rz   r{   r¦   r¿   r,   r&   r+   r*   Ú<module>r.     sI  ðÝ "ã ß =Ñ =Ý ÷÷ ñ ÷ñ ÷
÷ <ß LÑ LÝ 7Ý )ß 6Ý ß 1ò€ð 
ð %)Ø)-Ø#'ñØðð "ðð 'ð	ð
 !ðð ðð òó 
ðð 
àðð %)Ø)-Ø#'ñØðð "ðð 'ð	ð
 !ðð ðð òó 
ðð 
àðð %)ØMPØ#'ñØðð "ðð Kð	ð
 !ðð ðð òó 
ðð  ðBð %)ð 	Ø#'ñBØðBð "ðBðð	Bð !ðBð ðBð .óBðP %)ñØðð "ðð ð	ð
 óòDÐ ó0ó0!ð& 8<õ óð @Ð ôUL˜Ð"4°cÐ"9Ñ:õ ULr+   