o
    Zh                     @  s   d dl mZ d dlmZmZmZ d dl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 d d	lmZ erDd d
lmZ G dd deZdS )    )annotations)TYPE_CHECKINGListOptional)BaseLanguageModel)BaseTool)BaseToolkit)
ConfigDictField)AmadeusClosestAirport)AmadeusFlightSearch)authenticate)Clientc                   @  sJ   e Zd ZU dZeedZded< eddZded< e	d	d
Z
dddZdS )AmadeusToolkitzToolkit for interacting with Amadeus which offers APIs for travel.

    Parameters:
        client: Optional. The Amadeus client. Default is None.
        llm: Optional. The language model to use. Default is None.
    )default_factoryr   clientN)defaultzOptional[BaseLanguageModel]llmT)Zarbitrary_types_allowedreturnList[BaseTool]c                 C  s   t | jdt gS )zGet the tools in the toolkit.)r   )r   r   r   )self r   i/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/agent_toolkits/amadeus/toolkit.py	get_tools!   s   
zAmadeusToolkit.get_tools)r   r   )__name__
__module____qualname____doc__r
   r   r   __annotations__r   r	   Zmodel_configr   r   r   r   r   r      s   
 r   N)
__future__r   typingr   r   r   Zlangchain_core.language_modelsr   Zlangchain_core.toolsr   Zlangchain_core.tools.baser   Zpydanticr	   r
   Z1langchain_community.tools.amadeus.closest_airportr   Z/langchain_community.tools.amadeus.flight_searchr   Z'langchain_community.tools.amadeus.utilsr   Zamadeusr   r   r   r   r   r   <module>   s    