
    dh                         S r SSKrSSKrSSKJrJrJrJrJrJ	r	J
r
  SSKJrJr  SSKJrJr  SSKJrJr  SSKJrJrJr   " S S	\5      r " S
 S\5      rg)$Fake ChatModel for testing purposes.    N)AnyAsyncIteratorDictIteratorListOptionalUnion)AsyncCallbackManagerForLLMRunCallbackManagerForLLMRun)BaseChatModelSimpleChatModel)AIMessageChunkBaseMessage)ChatGenerationChatGenerationChunk
ChatResultc                       \ rS rSr% Sr\\   \S'   Sr\	\
   \S'   Sr\\S'     SS\\   S	\	\\      S
\	\   S\S\4
S jjr\S\4S j5       rSrg)FakeMessagesListChatModel   r   	responsesNsleepr   imessagesstoprun_managerkwargsreturnc                     U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        OSU l        [        US9n[	        U/S9$ )N   r   message)generations)r   r   lenr   r   )selfr   r   r   r   response
generations          \/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/chat_models/fake.py	_generate#FakeMessagesListChatModel._generate   s[     >>$&&)66C'!++FFaKFDF#H5
zl33    c                     g)Nzfake-messages-list-chat-model r%   s    r(   	_llm_type#FakeMessagesListChatModel._llm_type&   s    .r+   r   NN)__name__
__module____qualname____firstlineno____doc__r   r   __annotations__r   r	   floatr   intstrr   r   r   r)   propertyr/   __static_attributes__r-   r+   r(   r   r      s    .K  !E8E?!AsJ
 %):>	4{#4 tCy!4 67	4
 4 
4 /3 / /r+   r   c                   V   \ rS rSr% Sr\\S'   Sr\\	   \S'   Sr
\\S'   \S\4S	 j5       r  SS
\\   S\\\      S\\   S\S\4
S jjr  SS
\\   S\\\   S4   S\\S4   S\S\\   4
S jjr  SS
\\   S\\\   S4   S\\S4   S\S\\   4
S jjr\S\\\4   4S j5       rSrg)FakeListChatModel+   r   r   Nr   r   r   r   c                     g)Nzfake-list-chat-modelr-   r.   s    r(   r/   FakeListChatModel._llm_type2   s    %r+   r   r   r   r   c                     U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        U$ SU l        U$ )z;First try to lookup in queries, else return 'foo' or 'bar'.r    r   )r   r   r$   )r%   r   r   r   r   r&   s         r(   _callFakeListChatModel._call6   sR     >>$&&)66C'!++FFaKF  DFr+   c              +   T  #    U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        OSU l        U HB  nU R                  b   [        R                  " U R                  5        [        [        US9S9v   MD     g 7fNr    r   )contentr!   )r   r   r$   r   timer   r   r%   r   r   r   r   r&   cs          r(   _streamFakeListChatModel._streamE   s{      >>$&&)66C'!++FFaKFDFAzz%

4::&%nQ.GHH s   B&B(c                j  #    U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        OSU l        U HK  nU R                  b(  [        R                  " U R                  5      I S h  vN   [        [        US9S97v   MM     g  N7frG   )r   r   r$   r   asyncior   r   rJ   s          r(   _astreamFakeListChatModel._astreamV   s      >>$&&)66C'!++FFaKFDFAzz%mmDJJ///%nQ.GHH /s   BB3B1B3c                     SU R                   0$ )Nr   )r   r.   s    r(   _identifying_params%FakeListChatModel._identifying_paramsg   s    T^^,,r+   r1   r2   )r3   r4   r5   r6   r7   r   r8   r   r	   r9   r   r:   r<   r;   r/   r   r   r   rD   r
   r   r   rL   r   r   rP   r   rS   r=   r-   r+   r(   r?   r?   +   sz   .O!E8E?!AsJ&3 & & %):>	{# tCy! 67	
  
$ (,=A	I{#I DItO$I 3T9:	I
 I 
%	&I( (,BF	I{#I DItO$I 8$>?	I
 I 
*	+I" -T#s(^ - -r+   r?   )r7   rO   rI   typingr   r   r   r   r   r	   r
   langchain_core.callbacksr   r   *langchain_core.language_models.chat_modelsr   r   langchain_core.messagesr   r   langchain_core.outputsr   r   r   r   r?   r-   r+   r(   <module>rZ      sC    *   L L L V ? R R/ /6>- >-r+   