a
    ag                     @   s   d dl mZ d dl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mZ d dlmZ d dlmZ G dd	 d	eZG d
d dee
ef ZdS )    )
itemgetter)AnyCallableListMappingOptionalUnion)BaseMessage)JsonOutputFunctionsParser)RouterRunnableRunnable)RunnableBindingBase)	TypedDictc                   @   s*   e Zd ZU dZeed< eed< eed< dS )OpenAIFunctionz%A function description for ChatOpenAInamedescription
parametersN)__name__
__module____qualname____doc__str__annotations__dict r   r   r/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain/runnables/openai_functions.pyr      s
   
r   c                       sf   e Zd ZU dZeee  ed< dee	e
eeef eegef f f eee  d fddZ  ZS )OpenAIFunctionsRouterz0A runnable that routes to the selected function.	functionsN)	runnablesr   c                    sp   |d ur6t |t  ksJ t fdd|D s6J tddtdtddB t B }t j|i |d d S )	Nc                 3   s   | ]}|d   v V  qdS )r   Nr   ).0funcr   r   r   	<genexpr>(       z1OpenAIFunctionsRouter.__init__.<locals>.<genexpr>F)Z	args_onlyr   	arguments)keyinput)boundkwargsr   )lenallr
   r   r   super__init__)selfr   r   Zrouter	__class__r!   r   r,      s    zOpenAIFunctionsRouter.__init__)N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   __classcell__r   r   r.   r   r      s   
 

r   N)operatorr   typingr   r   r   r   r   r   Zlangchain_core.messagesr	   Z.langchain_core.output_parsers.openai_functionsr
   Zlangchain_core.runnablesr   r   Zlangchain_core.runnables.baser   Ztyping_extensionsr   r   r   r   r   r   r   <module>   s    