Toggle Menu
Prev Up Next

# Source code for langchain_community.agent_toolkits.amadeus.toolkit

    from __future__ import annotations

    from typing import TYPE_CHECKING, List, Optional

    from langchain_core.language_models import BaseLanguageModel
    from langchain_core.pydantic_v1 import Field
    from langchain_core.tools import BaseToolkit

    from langchain_community.tools import BaseTool
    from langchain_community.tools.amadeus.closest_airport import AmadeusClosestAirport
    from langchain_community.tools.amadeus.flight_search import AmadeusFlightSearch
    from langchain_community.tools.amadeus.utils import authenticate

    if TYPE_CHECKING:
        from amadeus import Client

    class AmadeusToolkit(BaseToolkit):
        """Toolkit for interacting with Amadeus which offers APIs for travel."""

        client: Client = Field(default_factory=authenticate)
        llm: Optional[BaseLanguageModel] = Field(default=None)

        class Config:
            """Pydantic config."""

            arbitrary_types_allowed = True

        def get_tools(self) -> List[BaseTool]:
            """Get the tools in the toolkit."""
            return [
                AmadeusClosestAirport(llm=self.llm),
                AmadeusFlightSearch(),
            ]