
    dh	                         S SK r S SKrS SKJrJrJrJrJrJr  S SK	J
r
Jr  S SKJr  S SKJr  S SKJr   " S S\5      r " S	 S
\5      rg)    N)AnyAsyncIteratorIteratorListMappingOptional)AsyncCallbackManagerForLLMRunCallbackManagerForLLMRun)LanguageModelInput)LLM)RunnableConfigc                       \ 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\	\   S\S\4
S jjr\S\\\4   4S j5       rSrg)FakeListLLM   zFake LLM for testing purposes.	responsesNsleepr   ireturnc                     g)zReturn type of llm.z	fake-list selfs    U/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/fake.py	_llm_typeFakeListLLM._llm_type   s         promptstoprun_managerkwargsc                     U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        U$ SU l        U$ zReturn next response   r   r   r   lenr   r   r   r   r    responses         r   _callFakeListLLM._call   sR     >>$&&)66C'!++FFaKF  DFr   c                    #    U R                   U R                     nU R                  [        U R                   5      S-
  :  a  U =R                  S-  sl        U$ SU l        U$ 7fr"   r$   r&   s         r   _acallFakeListLLM._acall)   sU      >>$&&)66C'!++FFaKF  DFs   A A"c                     SU R                   0$ )Nr   )r   r   s    r   _identifying_paramsFakeListLLM._identifying_params8   s    T^^,,r   )r   )NN)__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   r   floatr   intpropertyr   r
   r   r(   r	   r+   r   r.   __static_attributes__r   r   r   r   r      s    (Cy!E8E?!AsJ3   %):>	 tCy! 67	
  
$ %)?C	 tCy! ;<	
  
 -WS#X%6 - -r   r   c                       \ rS rSrSr SSS.S\S\\   S\\\	      S\
S	\\	   4
S
 jjjr SSS.S\S\\   S\\\	      S\
S	\\	   4
S jjjrSrg)FakeStreamingListLLM=   z-Fake streaming list LLM for testing purposes.N)r   inputconfigr   r    r   c             +      #    U R                  X5      nU H4  nU R                  b   [        R                  " U R                  5        Uv   M6     g 7fN)invoker   timer   r>   r?   r   r    resultcs          r   streamFakeStreamingListLLM.stream@   s>      U+Azz%

4::&G s   AAc                  #    U R                  X5      I S h  vN nU H=  nU R                  b(  [        R                  " U R                  5      I S h  vN   U7v   M?     g  NH N7frA   )ainvoker   asynciorD   s          r   astreamFakeStreamingListLLM.astreamN   sQ      ||E22Azz%mmDJJ///G  3 0s!   A$A 9A$A"A$"A$r   rA   )r0   r1   r2   r3   r4   r   r   r   r   r5   r   r   rG   r   rL   r:   r   r   r   r<   r<   =   s    7
 ,0
 %)! (
 tCy!  
#" ,0
 %)! (
 tCy!  
s	 r   r<   )rK   rC   typingr   r   r   r   r   r   langchain_core.callbacksr	   r
   langchain_core.language_modelsr   #langchain_core.language_models.llmsr   langchain_core.runnablesr   r   r<   r   r   r   <module>rS      s:      H H > 3 3,-# ,-^; r   