a
    bŠÝgŒ	  ã                   @   sˆ   d dl Z d dlZd dlmZmZmZmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ G dd„ deƒZG d	d
„ d
eƒZdS )é    N)ÚAnyÚAsyncIteratorÚIteratorÚListÚMappingÚOptional)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚLanguageModelInput)ÚLLM)ÚRunnableConfigc                   @   s®   e Zd ZU dZee ed< dZee	 ed< dZ
eed< eedœdd	„ƒZdeeee  ee eed
œdd„Zdeeee  ee eed
œdd„Zeeeef dœdd„ƒZdS )ÚFakeListLLMzFake LLM for testing purposes.Ú	responsesNÚsleepr   Úi)Úreturnc                 C   s   dS )zReturn type of llm.z	fake-list© ©Úselfr   r   úk/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/llms/fake.pyÚ	_llm_type   s    zFakeListLLM._llm_type)ÚpromptÚstopÚrun_managerÚkwargsr   c                 K   s:   | j | j }| jt| j ƒd k r0|  jd7  _nd| _|S ©zReturn next responseé   r   ©r   r   Úlen©r   r   r   r   r   Úresponser   r   r   Ú_call   s
    zFakeListLLM._callc                 Ë   s:   | j | j }| jt| j ƒd k r0|  jd7  _nd| _|S r   r   r   r   r   r   Ú_acall)   s
    zFakeListLLM._acallc                 C   s
   d| j iS )Nr   )r   r   r   r   r   Ú_identifying_params8   s    zFakeListLLM._identifying_params)NN)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   Úfloatr   ÚintÚpropertyr   r	   r   r!   r   r"   r   r#   r   r   r   r   r      s4   
  ü
ú  ü
úr   c                   @   sl   e Zd ZdZd	ddœeee eee  e	e
e dœdd„Zd
ddœeee eee  e	ee dœdd„ZdS )ÚFakeStreamingListLLMz-Fake streaming list LLM for testing purposes.N)r   )ÚinputÚconfigr   r   r   c                k   s6   |   ||¡}|D ] }| jd ur*t | j¡ |V  qd S ©N)Zinvoker   Útime©r   r.   r/   r   r   ÚresultÚcr   r   r   Ústream@   s
    
zFakeStreamingListLLM.streamc                K  sB   |   ||¡I d H }|D ]&}| jd ur6t | j¡I d H  |V  qd S r0   )Zainvoker   Úasyncior2   r   r   r   ÚastreamN   s
    
zFakeStreamingListLLM.astream)N)N)r$   r%   r&   r'   r
   r   r   r   r(   r   r   r5   r   r7   r   r   r   r   r-   =   s*    ýû
ù ýû
ùr-   )r6   r1   Útypingr   r   r   r   r   r   Zlangchain_core.callbacksr   r	   Zlangchain_core.language_modelsr
   Z#langchain_core.language_models.llmsr   Zlangchain_core.runnablesr   r   r-   r   r   r   r   Ú<module>   s    /