Spaces:
Sleeping
Sleeping
| import os | |
| from typing import List | |
| from dotenv import load_dotenv | |
| from langchain.tools import tool | |
| from logger.decorators import log_entry | |
| from utils.currency_converter import CurrencyConverter | |
| class CurrencyConverterTool: | |
| """ | |
| A wrapper class that defines a LangChain-compatible tool for converting currencies | |
| using a custom CurrencyConverter service. | |
| Attributes: | |
| api_key (str): API key for the currency conversion service. | |
| currency_service (CurrencyConverter): Instance of the currency conversion service. | |
| currency_converter_tool_list (List): List of registered LangChain tools. | |
| """ | |
| def __init__(self): | |
| """ | |
| Initialize the CurrencyConverterTool with API credentials and tool setup. | |
| """ | |
| load_dotenv() | |
| self.api_key = os.environ.get("EXCHANGE_RATE_API_KEY") | |
| self.currency_service = CurrencyConverter(self.api_key) | |
| self.currency_converter_tool_list = self._setup_tools() | |
| def _setup_tools(self) -> List: | |
| """ | |
| Define and register the currency conversion tool. | |
| Returns: | |
| List: A list containing the currency conversion tool function. | |
| """ | |
| def convert_currency(amount: float, from_currency: str, to_currency: str) -> float: | |
| """ | |
| Convert an amount from one currency to another using real-time exchange rates. | |
| Args: | |
| amount (float): The amount of money to convert. | |
| from_currency (str): The currency code to convert from (e.g., "USD"). | |
| to_currency (str): The currency code to convert to (e.g., "EUR"). | |
| Returns: | |
| float: The equivalent amount in the target currency. | |
| """ | |
| print('Entered into convert_currency().') | |
| return self.currency_service.convert(amount, from_currency, to_currency) | |
| return [convert_currency] | |