§
    šŠtj´N  ã                  óŠ  — d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ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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- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5  ede/¬¦  «        Z6ee
e7ef         ee6         ef         Z8 G d„ de¦  «        Z9dS )é    )ÚannotationsN)ÚAsyncIterator)ÚAnyÚCallableÚDictÚIteratorÚListÚOptionalÚSequenceÚTupleÚTypeÚ	TypedDictÚTypeVarÚUnionÚ
get_origin)ÚCallbackManagerForLLMRun)ÚAsyncCallbackManagerForLLMRun)ÚLanguageModelInput)ÚBaseChatModel)Ú	AIMessageÚAIMessageChunkÚBaseMessage)ÚJsonOutputParserÚPydanticOutputParser)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)ÚRunnable)ÚBaseTool©Úconvert_to_openai_tool)Ú	BaseModelÚFieldÚmodel_validator)ÚLiteral©Úconvert_message_to_dictÚ_BM)Úboundc                  óì  ‡ — e Zd ZU dZdZded<   ded<   	 dZded	<   	 d
Zded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	  ee¬¦  «        Zded<   	  ed¬¦  «        dHd"„¦   «         ZdHd#„ZedId$„¦   «         ZedJd%„¦   «         ZedJd&„¦   «         ZedKd'„¦   «         ZdLd+„ZdMd,„Zdd-œdNˆ fd4„Zd5d6œdOd;„Z	 	 dPdQd@„Z	 	 dPdRdB„Z	 	 dPdSˆ fdE„Z 	 	 dPdTˆ fdG„Z!ˆ xZ"S )UÚChatOutlinesuB  Outlines chat model integration.

    Setup:
      pip install outlines

    Key init args â€” client params:
      backend: Literal["llamacpp", "transformers", "transformers_vision", "vllm", "mlxlm"] = "transformers"
        Specifies the backend to use for the model.

    Key init args â€” completion params:
      model: str
        Identifier for the model to use with Outlines.
      max_tokens: int = 256
        The maximum number of tokens to generate.
      stop: Optional[List[str]] = None
        A list of strings to stop generation when encountered.
      streaming: bool = True
        Whether to stream the results, token by token.

    See full list of supported init args and their descriptions in the params section.

    Instantiate:
      from langchain_community.chat_models import ChatOutlines
      chat = ChatOutlines(model="meta-llama/Llama-2-7b-chat-hf")

    Invoke:
      chat.invoke([HumanMessage(content="Say foo:")])

    Stream:
      for chunk in chat.stream([HumanMessage(content="Count to 10:")]):
          print(chunk.content, end="", flush=True)

    Nr   ÚclientÚstrÚmodelÚtransformerszKLiteral['llamacpp', 'transformers', 'transformers_vision', 'vllm', 'mlxlm']Úbackendé   ÚintÚ
max_tokensúOptional[List[str]]ÚstopTÚboolÚ	streamingzOptional[str]ÚregexzOptional[Union[type, str]]Útype_constraintsz$Optional[Union[Any, Dict, Callable]]Újson_schemaÚgrammarzOptional[Any]Úcustom_generator)Údefault_factoryúDict[str, Any]Úmodel_kwargsÚafter)ÚmodeÚreturnú'ChatOutlines'c                ó
  — t          t          | j        ¦  «        t          | j        ¦  «        t          | j        ¦  «        t          | j        ¦  «        g¦  «        }|dk    rt          d¦  «        ‚|                      ¦   «         S )z@Validate that outlines is installed and create a model instance.é   ú_Either none or exactly one of regex, type_constraints, json_schema, or grammar can be provided.)Úsumr6   r8   r9   r:   r;   Ú
ValueErrorÚbuild_client)ÚselfÚnum_constraintss     úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/chat_models/outlines.pyÚvalidate_environmentz!ChatOutlines.validate_environmentÇ   s†   € õ å�T”ZÑ Ô Ý�TÔ*Ñ+Ô+Ý�TÔ%Ñ&Ô&Ý�T”\Ñ"Ô"ð	ñ
ô 
ˆð ˜QÒÐÝð;ñô ð ð × Ò Ñ"Ô"Ð"ó    c                ó–  — 	 dd l m} n# t          $ r t          d¦  «        ‚w xY wdd„}| j        dk    rf |d	g¦  «         d
| j        v r'| j                             dd¦  «        \  }}}|› d|› �}nt          d¦  «        ‚ |j        ||fi | j        ¤Ž| _	        �n.| j        dk    r, |g d¢¦  «          |j
        dd| j        i| j        ¤Ž| _	        n÷| j        dk    rEt          |d¦  «        r&ddl
m}  |j        | j        fd|i| j        ¤Ž| _	        n¶t          d¦  «        ‚| j        dk    rPt          j        ¦   «         dk    rt          d¦  «        ‚ |dg¦  «          |j        | j        fi | j        ¤Ž| _	        nL| j        dk    r* |dg¦  «          |j        | j        fi | j        ¤Ž| _	        nt          d| j        › �¦  «        ‚| S )Nr   zUCould not import the Outlines library. Please install it with `pip install outlines`.Úpackagesú!List[Union[str, Tuple[str, str]]]rB   ÚNonec                ó˜   — d„ | D ¦   «         }|r;t          dd                     |¦  «        › dd                     |¦  «        › �¦  «        ‚d S )Nc                óÆ   — g | ]^}t           j                             t          |t          ¦  «        r|d          n|¦  «        	 ­?t          |t
          ¦  «        r|n|d         ‘Œ_S )rE   Nr   )Ú	importlibÚutilÚ	find_specÚ
isinstanceÚtupler-   )Ú.0Úpkgs     rL   ú
<listcomp>zOChatOutlines.build_client.<locals>.check_packages_installed.<locals>.<listcomp>å   sr   € ð  ð  ð  àÝ”>×+Ò+µjÀÅeÑ6LÔ6LÐ,U¨C°¬F¨FÐRUÑVÔVØðõ " #¥sÑ+Ô+Ð7��°°Q´ðð ð rN   zMissing packages: z, z.. You can install them with:

    pip install ú )ÚImportErrorÚjoin)rP   Úmissing_packagess     rL   Úcheck_packages_installedz;ChatOutlines.build_client.<locals>.check_packages_installedâ   s„   € ð ð  à#ð ñ  ô  Ðð  ð Ý!ðD¨¯ªÐ3CÑ)DÔ)Dð Dð Dà'*§x¢xÐ0@Ñ'AÔ'AðDð Dñô ð ðð rN   Úllamacpp)zllama-cpp-pythonÚ	llama_cppz.ggufú/é   z.GGUF file_name must be provided for llama.cpp.r/   )r/   ÚtorchÚdatasetsÚ
model_nameÚtransformers_vision)Ú!LlavaNextForConditionalGenerationÚmodel_classz,transformers_vision backend is not supportedÚvllmÚDarwinz'vLLM backend is not supported on macOS.ÚmlxlmÚmlxzUnsupported backend: )rP   rQ   rB   rR   © )Úoutlines.modelsÚmodelsr^   r0   r.   ÚsplitrH   rb   r?   r,   r/   Úhasattrrj   ri   ÚplatformÚsystemrl   rn   )rJ   rr   ra   ÚcreatorÚ	repo_nameÚ	file_nameÚrepo_idrj   s           rL   rI   zChatOutlines.build_clientÙ   s‘  € ð	Ø,Ð,Ð,Ð,Ð,Ð,Ð,øÝð 	ð 	ð 	ÝðAñô ð ð	øøøð	ð 	ð 	ð 	ð  Œ<˜:Ò%Ð%Ø$Ð$Ð&GÐ%HÑIÔIÐIØ˜$œ*Ð$Ð$Ø04´
×0@Ò0@ÀÀaÑ0HÔ0HÑ-�˜ IØ$Ð2Ð2 yÐ2Ð2��å Ð!QÑRÔRÐRØ)˜&œ/¨'°9ÐRÐRÀÔ@QÐRÐRˆDŒK‰KØŒ\˜^Ò+Ð+Ø$Ð$Ð%JÐ%JÐ%JÑKÔKÐKØ-˜&Ô-ð ð Øœ:ðØ)-Ô):ðð ˆDŒKˆKð Œ\Ð2Ò2Ð2Ý�vÐ4Ñ5Ô5ð 	QØJÐJÐJÐJÐJÐJà8˜fÔ8Ø”Jðð à Aðð Ô'ðð �”�õ !Ð!OÑPÔPÐPØŒ\˜VÒ#Ð#ÝŒÑ Ô  HÒ,Ð,Ý Ð!JÑKÔKÐKØ$Ð$ f XÑ.Ô.Ð.Ø%˜&œ+ d¤jÐFÐF°DÔ4EÐFÐFˆDŒKˆKØŒ\˜WÒ$Ð$Ø$Ð$ e WÑ-Ô-Ð-Ø&˜&œ, t¤zÐGÐG°TÔ5FÐGÐGˆDŒKˆKåÐC°T´\ÐCÐCÑDÔDÐDØˆs   ‚	 ‰#c                ó   — dS )Nzoutlines-chatrp   ©rJ   s    rL   Ú	_llm_typezChatOutlines._llm_type  s   € àˆrN   c                ó.   — | j         | j        dœ| j        ¥S )N)r3   Ústop_at)r3   r5   r?   r|   s    rL   Ú_default_paramszChatOutlines._default_params  s*   € ð œ/Ø”yð
ð 
ð Ôð
ð 	
rN   c                ó^   — | j         | j        | j        | j        | j        | j        dœ| j        ¥S )N)r.   r0   r8   r9   r:   r;   )r.   r0   r8   r9   r:   r;   r€   r|   s    rL   Ú_identifying_paramsz ChatOutlines._identifying_params"  s@   € ð ”ZØ”|Ø”ZØ $Ô 5ØÔ+Ø”|ð
ð 
ð Ô"ð
ð 	
rN   c                ó:  — ddl m} | j        r| j        S | j        | j        | j        | j        g}t          d„ |D ¦   «         ¦  «        }|dk    r|dk    rt          d¦  «        ‚| j        r!|                     | j	        | j        ¬¦  «        S | j        r!| 
                    | j	        | j        ¬¦  «        S | j        r!|                     | j	        | j        ¬¦  «        S | j        r!|                     | j	        | j        ¬	¦  «        S |                     | j	        ¦  «        S )
Nr   )Úgeneratec              3  ó   K  — | ]}|d uV — Œ	d S )Nrp   )rZ   Ú
constraints     rL   ú	<genexpr>z*ChatOutlines._generator.<locals>.<genexpr>;  s'   è è € ÐSÐS¸˜j°Ð4ÐSÐSÐSÐSÐSÐSrN   rE   rF   )Ú	regex_str)Úpython_type)Úschema_object)Úcfg_str)Úoutlinesr„   r<   r8   r9   r:   r;   rG   rH   r,   ÚformatÚjsonÚcfgÚtext)rJ   r„   ÚconstraintsrK   s       rL   Ú
_generatorzChatOutlines._generator.  s=  € à%Ð%Ð%Ð%Ð%Ð%àÔ ð 	)ØÔ(Ð(àŒJØÔ!ØÔØŒLð	
ˆõ ÐSÐSÀ{ÐSÑSÔSÑSÔSˆØ˜aÒÐ O°qÒ$8Ð$8Ýð;ñô ð ð Œ:ð 	EØ—>’> $¤+¸¼�>ÑDÔDÐDØÔ ð 	SØ—?’? 4¤;¸DÔ<Q�?ÑRÔRÐRØÔð 	NØ—=’= ¤¸DÔ<L�=ÑMÔMÐMØŒ<ð 	CØ—<’< ¤°T´\�<ÑBÔBÐBØ�}Š}˜Tœ[Ñ)Ô)Ð)rN   Úmessagesúlist[BaseMessage]ú
list[dict]c                ó   — d„ |D ¦   «         S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS rp   r&   )rZ   Úmessages     rL   r\   zCChatOutlines._convert_messages_to_openai_format.<locals>.<listcomp>N  s!   € ÐIÐIÐI°WÕ'¨Ñ0Ô0ÐIÐIÐIrN   rp   )rJ   r“   s     rL   Ú"_convert_messages_to_openai_formatz/ChatOutlines._convert_messages_to_openai_formatK  s   € ð JÐIÀÐIÑIÔIÐIrN   c                óœ  — | j         dk    rwddlm} | j                             d¦  «        \  }}}|                     |› d|› �¦  «        }t          |j        d¦  «        r|j        j        }nt          d| j        › �¦  «        ‚| j        }ddl
m} |                     |¦  «                             |                      |¦  «        dd	¬
¦  «        S )z.Convert a list of messages to a single prompt.rb   r   )Ú	ModelCardrd   Ú
base_modelzBase model name not found for )ÚAutoTokenizerFT)ÚtokenizeÚadd_generation_prompt)r0   Úhuggingface_hubr›   r.   rs   Úloadrt   Údatarœ   rH   r/   r�   Úfrom_pretrainedÚapply_chat_templater™   )	rJ   r“   r›   Úrepo_creatorÚgguf_repo_namery   Ú
model_cardrh   r�   s	            rL   Ú_convert_messages_to_promptz(ChatOutlines._convert_messages_to_promptP  sò   € àŒ<˜:Ò%Ð%Ø1Ð1Ð1Ð1Ð1Ð1à6:´j×6FÒ6FÀsÑ6KÔ6KÑ3ˆL˜.¨)Ø"Ÿš¨<Ð(JÐ(J¸.Ð(JÐ(JÑKÔKˆJÝ�z”¨Ñ5Ô5ð PØ'œ_Ô7�
�
å Ð!NÀ$Ä*Ð!NÐ!NÑOÔOÐOàœˆJà.Ð.Ð.Ð.Ð.Ð.à×,Ò,¨ZÑ8Ô8×LÒLØ×3Ò3°HÑ=Ô=ØØ"&ð Mñ 
ô 
ð 	
rN   )Útool_choiceÚtoolsú?Sequence[Dict[str, Any] | type | Callable[..., Any] | BaseTool]r©   ú Optional[Union[Dict, bool, str]]Úkwargsú'Runnable[LanguageModelInput, AIMessage]c               ó8  •‡— d„ |D ¦   «         }d„ |D ¦   «         }‰rÓt          ‰t          ¦  «        r2t          ˆfd„|D ¦   «         ¦  «        st          d‰›d|› d�¦  «        ‚nŒt          ‰t          ¦  «        r'ˆfd„|D ¦   «         }|st          d‰›d|› d�¦  «        ‚nPt          ‰t
          ¦  «        r;t          |¦  «        dk    r t          d	t          |¦  «        › d
�¦  «        ‚|d         Š‰|d<   d„ |D ¦   «         } t          ¦   «         j        dd|i|¤ŽS )a  Bind tool-like objects to this chat model

        tool_choice: does not currently support "any", "auto" choices like OpenAI
            tool-calling API. should be a dict of the form to force this tool
            {"type": "function", "function": {"name": <<tool_name>>}}.
        c                ó,   — g | ]}t          |¦  «        ‘ŒS rp   r    ©rZ   Útools     rL   r\   z+ChatOutlines.bind_tools.<locals>.<listcomp>s  ó!   € ÐJÐJÐJ¸DÕ1°$Ñ7Ô7ÐJÐJÐJrN   c                ó*   — g | ]}|d          d         ‘ŒS ©ÚfunctionÚnamerp   )rZ   Úfts     rL   r\   z+ChatOutlines.bind_tools.<locals>.<listcomp>t  s!   € ÐGÐGÐG°�b˜”n VÔ,ÐGÐGÐGrN   c              3  ó<   •K  — | ]}‰d          d         |k    V — ŒdS )r¶   r·   Nrp   )rZ   r·   r©   s     €rL   r‡   z*ChatOutlines.bind_tools.<locals>.<genexpr>w  sC   øè è € ð ð Ø@D�K 
Ô+¨FÔ3°tÒ;ðð ð ð ð ð rN   zTool choice tool_choice=z1 was specified, but the only provided tools were ú.c                ó8   •— g | ]}|d          d         ‰k    ¯|‘ŒS rµ   rp   )rZ   Úfr©   s     €rL   r\   z+ChatOutlines.bind_tools.<locals>.<listcomp>  s3   ø€ ð ð ð Ø°!°J´-ÀÔ2GÈ;Ò2VÐ2V�AÐ2VÐ2VÐ2VrN   rE   zQtool_choice=True can only be specified when a single tool is passed in. Received z tools.r   r©   c                ó,   — g | ]}t          |¦  «        ‘ŒS rp   r    r±   s     rL   r\   z+ChatOutlines.bind_tools.<locals>.<listcomp>�  r³   rN   rª   rp   )	rX   ÚdictÚanyrH   r-   r6   ÚlenÚsuperÚ
bind_tools)rJ   rª   r©   r­   Úformatted_toolsÚ
tool_namesÚchosenÚ	__class__s     `    €rL   rÂ   zChatOutlines.bind_toolsf  sà  øø€ ð KÐJÀEÐJÑJÔJˆØGÐG°ÐGÑGÔGˆ
Øð 	1Ý˜+¥tÑ,Ô,ð 1Ýð ð ð ð ØHRðñ ô ñ ô ð õ %ð= {ð =ð =Ø/9ð=ð =ð =ñô ð ðõ ˜K­Ñ-Ô-ð 1ðð ð ð Ø.ðñ ô �ð ð Ý$ð= {ð =ð =Ø/9ð=ð =ð =ñô ð ðõ
 ˜K­Ñ.Ô.ð 1Ý�Ñ'Ô'¨!Ò+Ð+Ý$ðCÝ/2°5©z¬zðCð Cð Cñô ð ð .¨aÔ0�à +ˆˆ}ÑØJÐJÀEÐJÑJÔJˆØ!�u‰wŒwÔ!ÐBÐB¨ÐB¸6ÐBÐBÐBrN   F)Úinclude_rawÚschemaúOptional[_DictOrPydanticClass]rÇ   ú4Runnable[LanguageModelInput, Union[dict, BaseModel]]c               ó  — t          |¦  «        t          u rt          d¦  «        ‚|| _        t	          |t
          ¦  «        r&t          |t          ¦  «        rt          |¬¦  «        }nt          ¦   «         }|rt          d¦  «        ‚| |z  S )Nz*TypedDict is not supported yet by Outlines)Úpydantic_objectz include_raw is not yet supported)
r   r   ÚNotImplementedErrorr:   rX   ÚtypeÚ
issubclassr"   r   r   )rJ   rÈ   rÇ   r­   Úparsers        rL   Úwith_structured_outputz#ChatOutlines.with_structured_output“  s•   € õ �fÑÔ¥Ð*Ð*Ý%Ð&RÑSÔSÐSà!ˆÔå�f�dÑ#Ô#ð 	(­
°6½9Ñ(EÔ(Eð 	(å$°VÐ<Ñ<Ô<ð ˆFõ &Ñ'Ô'ˆFàð 	JÝ%Ð&HÑIÔIÐIà�f‰}ÐrN   úList[BaseMessage]Úrun_managerú"Optional[CallbackManagerForLLMRun]r   c                ó¸  — i | j         ¥|¥}|r||d<   |                      |¦  «        }d}| j        rl | j        d|||dœ|¤ŽD ]Y}t	          |j        j        t          ¦  «        r||j        j        z  }Œ1t          dt          |j        j        ¦  «        › �¦  «        ‚n | j
        |fi |¤Ž}t          |¬¦  «        }	t          |	¬¦  «        }
t          |
g¬¦  «        S )	Nr   Ú )r“   r5   rÓ   ú1Invalid content type, only str is supported, got ©Úcontent©r˜   ©Úgenerationsrp   )r€   r¨   r7   Ú_streamrX   r˜   rÙ   r-   rH   rÎ   r’   r   r   r   )rJ   r“   r5   rÓ   r­   ÚparamsÚpromptÚresponseÚchunkr˜   Ú
generations              rL   Ú	_generatezChatOutlines._generate«  s2  € ð 4�DÔ(Ð3¨FÐ3ˆØð 	%Ø $ˆF�9Ñà×1Ò1°(Ñ;Ô;ˆàˆØŒ>ð 	9Ø%˜œð Ø!ØØ'ðð ð ð	ð ð ð �õ ˜eœmÔ3µSÑ9Ô9ð Ø ¤Ô 5Ñ5�H�Hå$ð=Ý# E¤MÔ$9Ñ:Ô:ð=ð =ñô ð ðð '�t” vÐ8Ð8°Ð8Ð8ˆHå HÐ-Ñ-Ô-ˆÝ#¨GÐ4Ñ4Ô4ˆ
Ý z lÐ3Ñ3Ô3Ð3rN   úIterator[ChatGenerationChunk]c              +  óú   K  — i | j         ¥|¥}|r||d<   |                      |¦  «        } | j        j        |fi |¤ŽD ]=}|r|                     |¦  «         t          |¬¦  «        }t          |¬¦  «        }	|	V — Œ>d S )Nr   rØ   rÚ   )r€   r¨   r’   ÚstreamÚon_llm_new_tokenr   r   )
rJ   r“   r5   rÓ   r­   rÞ   rß   ÚtokenÚmessage_chunkrá   s
             rL   rÝ   zChatOutlines._streamÎ  s¶   è è € ð 4�DÔ(Ð3¨FÐ3ˆØð 	%Ø $ˆF�9Ñà×1Ò1°(Ñ;Ô;ˆà+�T”_Ô+¨FÐ=Ð=°fÐ=Ð=ð 	ð 	ˆEØð 4Ø×,Ò,¨UÑ3Ô3Ð3Ý*°5Ð9Ñ9Ô9ˆMÝ'°Ð>Ñ>Ô>ˆEØˆKˆKˆKˆKð	ð 	rN   úList[str] | Noneú$AsyncCallbackManagerForLLMRun | Nonec              ‹  óÆ  •K  — t          | j        d¦  «        rqi | j        ¥|¥}|r||d<   |                      |¦  «        } | j        j        |fi |¤Žƒ d {V —†}t          |¬¦  «        }t          |¬¦  «        }	t          |	g¬¦  «        S | j        r°d} | j	        |||fi |¤Ž2 3 d {V —†}
t          |
j        j        t          ¦  «        r||
j        j        z  }Œ6|
j        j        �)t          dt          |
j        j        ¦  «        › �¦  «        ‚Œl6 t          |¬¦  «        }t          |¬¦  «        }	t          |	g¬¦  «        S  t!          ¦   «         j        |||fi |¤Žƒ d {V —†S )NÚ	agenerater   rØ   rÚ   rÛ   rÖ   r×   )rt   r’   r€   r¨   rí   r   r   r   r7   Ú_astreamrX   r˜   rÙ   r-   rH   rÎ   rÁ   Ú
_agenerate)rJ   r“   r5   rÓ   r­   rÞ   rß   rà   r˜   râ   rá   rÆ   s              €rL   rï   zChatOutlines._agenerateâ  sß  øè è € õ �4”? KÑ0Ô0ð 	SØ7˜Ô,Ð7°Ð7ˆFØð )Ø$(��yÑ!à×5Ò5°hÑ?Ô?ˆFØ6˜Tœ_Ô6°vÐHÐHÀÐHÐHÐHÐHÐHÐHÐHÐHˆHå¨Ð1Ñ1Ô1ˆGÝ'°Ð8Ñ8Ô8ˆJÝ¨:¨,Ð7Ñ7Ô7Ð7ØŒ^ð 	SØˆHØ,˜tœ}¨X°t¸[ÐSÐSÈFÐSÐSð ð ð ð ð ð ð �eÝ˜eœmÔ3µSÑ9Ô9ð Ø ¤Ô 5Ñ5�H�HØ”]Ô*Ð6Ý$ð=Ý# E¤MÔ$9Ñ:Ô:ð=ð =ñô ð ð 7ð  Tõ  ¨Ð1Ñ1Ô1ˆGÝ'°Ð8Ñ8Ô8ˆJÝ¨:¨,Ð7Ñ7Ô7Ð7à+�™œÔ+¨H°d¸KÐRÐRÈ6ÐRÐRÐRÐRÐRÐRÐRÐRÐRs   Â#Dú"AsyncIterator[ChatGenerationChunk]c               ó˜  •K  — t          | j        d¦  «        r‡i | j        ¥|¥}|r||d<   |                      |¦  «        } | j        j        |fi |¤Ž2 3 d {V —†}|r|                     |¦  «        ƒ d {V —† t          |¬¦  «        }t          |¬¦  «        }	|	W V — ŒJ6 d S  t          ¦   «         j	        |||fi |¤Ž2 3 d {V —†}	|	W V — Œ6 d S )NÚastreamr   rØ   rÚ   )
rt   r’   r€   r¨   rò   rç   r   r   rÁ   rî   )rJ   r“   r5   rÓ   r­   rÞ   rß   rè   ré   rá   rÆ   s             €rL   rî   zChatOutlines._astream  sZ  øè è € õ �4”? IÑ.Ô.ð 	Ø7˜Ô,Ð7°Ð7ˆFØð )Ø$(��yÑ!à×5Ò5°hÑ?Ô?ˆFà6˜tœÔ6°vÐHÐHÀÐHÐHð ð ð ð ð ð ð �eØð >Ø%×6Ò6°uÑ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ý .°uÐ =Ñ =Ô =�Ý+°MÐBÑBÔB�Ø�����ð  IÐHÐHð  0�u™wœwÔ/°¸$ÀÐVÐVÈvÐVÐVð ð ð ð ð ð ð �eØ�����ð  WÐVÐVs   ÁBÂ<C	)rB   rC   )rB   r-   )rB   r>   )rB   r   )r“   r”   rB   r•   )r“   r”   rB   r-   )rª   r«   r©   r¬   r­   r   rB   r®   )rÈ   rÉ   rÇ   r6   r­   r   rB   rÊ   )NN)
r“   rÒ   r5   r4   rÓ   rÔ   r­   r   rB   r   )
r“   rÒ   r5   r4   rÓ   rÔ   r­   r   rB   rä   )
r“   rÒ   r5   rê   rÓ   rë   r­   r   rB   r   )
r“   rÒ   r5   rê   rÓ   rë   r­   r   rB   rð   )#Ú__name__Ú
__module__Ú__qualname__Ú__doc__r,   Ú__annotations__r0   r3   r5   r7   r8   r9   r:   r;   r<   r#   r¾   r?   r$   rM   rI   Úpropertyr}   r€   r‚   r’   r™   r¨   rÂ   rÑ   rã   rÝ   rï   rî   Ú__classcell__)rÆ   s   @rL   r+   r+   )   s0  ø€ € € € € € ð ð  ðD €FÐÐÐÑà€J€J�Jðð 	ð ð ð ð ñ ðð €JÐÐÐÑØ3à $€DÐ$Ð$Ð$Ñ$Ø@à€IÐÐÐÑØ8à€EÐÐÐÑðð 48ÐÐ7Ð7Ð7Ñ7ð	ð 9=€KÐ<Ð<Ð<Ñ<ðð$ "€GÐ!Ð!Ð!Ñ!ðð0 '+ÐÐ*Ð*Ð*Ñ*ØRà#( 5¸Ð#>Ñ#>Ô#>€LÐ>Ð>Ð>Ñ>ðð €_˜'Ð"Ñ"Ô"ð#ð #ð #ñ #Ô"ð#ð";ð ;ð ;ð ;ðz ðð ð ñ „Xðð ð
ð 
ð 
ñ „Xð
ð ð	
ð 	
ð 	
ñ „Xð	
ð ð*ð *ð *ñ „Xð*ð8Jð Jð Jð Jð

ð 
ð 
ð 
ð4 9=ð	+Cð +Cð +Cð +Cð +Cð +Cð +Cð +Cðb "ð	ð ð ð ð ð ð6 %)Ø:>ð	!4ð !4ð !4ð !4ð !4ðL %)Ø:>ð	ð ð ð ð ð. "&Ø<@ð	 Sð  Sð  Sð  Sð  Sð  Sð  SðJ "&Ø<@ð	ð ð ð ð ð ð ð ð ð ð rN   r+   ):Ú
__future__r   Úimportlib.utilrU   ru   Úcollections.abcr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   r   Úlangchain_core.callbacksr   Ú langchain_core.callbacks.managerr   Úlangchain_core.language_modelsr   Ú*langchain_core.language_models.chat_modelsr   Úlangchain_core.messagesr   r   r   Úlangchain_core.output_parsersr   r   Úlangchain_core.outputsr   r   r   Úlangchain_core.runnablesr   Úlangchain_core.toolsr   Ú%langchain_core.utils.function_callingr!   Úpydanticr"   r#   r$   Útyping_extensionsr%   Ú#langchain_community.adapters.openair'   r(   r-   Ú_DictOrPydanticClassr+   rp   rN   rL   ú<module>r     sZ  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  >Ð =Ð =Ð =Ð =Ð =Ø JÐ JÐ JÐ JÐ JÐ JØ =Ð =Ð =Ð =Ð =Ð =Ø DÐ DÐ DÐ DÐ DÐ DØ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JØ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ -Ð -Ð -Ð -Ð -Ð -Ø )Ð )Ð )Ð )Ð )Ð )Ø HÐ HÐ HÐ HÐ HÐ HØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø %Ð %Ð %Ð %Ð %Ð %à GÐ GÐ GÐ GÐ GÐ Gà€gˆe˜9Ð%Ñ%Ô%€Ø˜T # s (œ^¨T°#¬Y¸Ð<Ô=Ð ðqð qð qð qð q�=ñ qô qð qð qð qrN   