a
    bg                     @   s   d Z ddlZddl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 ddlmZmZ ddlmZmZ ddlmZmZmZ G dd	 d	eZG d
d deZdS )$Fake ChatModel for testing purposes.    N)AnyAsyncIteratorDictIteratorListOptionalUnion)AsyncCallbackManagerForLLMRunCallbackManagerForLLMRun)BaseChatModelSimpleChatModel)AIMessageChunkBaseMessage)ChatGenerationChatGenerationChunk
ChatResultc                   @   st   e Zd ZU dZee ed< dZee	 ed< dZ
eed< dee eee  ee eeddd	Zeed
ddZdS )FakeMessagesListChatModelr   	responsesNsleepr   imessagesstoprun_managerkwargsreturnc                 K   sL   | j | j }| jt| j d k r0|  jd7  _nd| _t|d}t|gdS )N   r   message)Zgenerations)r   r   lenr   r   )selfr   r   r   r   responseZ
generation r#   r/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/chat_models/fake.py	_generate   s    
z#FakeMessagesListChatModel._generater   c                 C   s   dS )Nzfake-messages-list-chat-modelr#   r!   r#   r#   r$   	_llm_type&   s    z#FakeMessagesListChatModel._llm_type)NN)__name__
__module____qualname____doc__r   r   __annotations__r   r   floatr   intstrr   r   r   r%   propertyr(   r#   r#   r#   r$   r      s   
  
r   c                   @   s   e Zd ZU dZ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ed
ddZdee eee df eedf eee d
ddZdee eee df eedf eee d
ddZeeeef dddZdS )FakeListChatModelr   r   Nr   r   r   r&   c                 C   s   dS )Nzfake-list-chat-modelr#   r'   r#   r#   r$   r(   2   s    zFakeListChatModel._llm_typer   c                 K   s:   | j | j }| jt| j d k r0|  jd7  _nd| _|S )z;First try to lookup in queries, else return 'foo' or 'bar'.r   r   )r   r   r    )r!   r   r   r   r   r"   r#   r#   r$   _call6   s
    zFakeListChatModel._callc                 k   sl   | j | j }| jt| j d k r0|  jd7  _nd| _|D ],}| jd urTt| j tt|ddV  q:d S Nr   r   )contentr   )r   r   r    r   timer   r   r!   r   r   r   r   r"   cr#   r#   r$   _streamE   s    
zFakeListChatModel._streamc                 K  sr   | j | j }| jt| j d k r0|  jd7  _nd| _|D ]2}| jd urZt| jI d H  tt|ddV  q:d S r4   )r   r   r    r   asyncior   r   r7   r#   r#   r$   _astreamV   s    
zFakeListChatModel._astreamc                 C   s
   d| j iS )Nr   )r   r'   r#   r#   r$   _identifying_paramsg   s    z%FakeListChatModel._identifying_params)NN)NN)NN)r)   r*   r+   r,   r   r-   r   r   r.   r   r/   r1   r0   r(   r   r   r   r3   r	   r   r   r9   r
   r   r;   r   r<   r#   r#   r#   r$   r2   +   sF   
  
  
  
r2   )r,   r:   r6   typingr   r   r   r   r   r   r	   Zlangchain_core.callbacksr
   r   Z*langchain_core.language_models.chat_modelsr   r   Zlangchain_core.messagesr   r   Zlangchain_core.outputsr   r   r   r   r2   r#   r#   r#   r$   <module>   s   $