import os from pathlib import Path from .tools.vision_caption_tool import VisionCaptionTool # Import vision caption tool from .tools.pubmed_tool import PubmedRetrievalTool # Import PubMed retrieval tool from .tools.iu_retrieval_tool import IUImpressionSearchTool # Import IU impression search tool def get_tools(): """Create and return all configured tools""" # Get paths and API keys data_dir = Path(__file__).parent.parent / "data" # Define path to the data directory groq_key = os.getenv("GROQ_API_KEY") # Retrieve GROQ API key from environment gemini_key = os.getenv("GEMINI_API_KEY") # Retrieve Gemini API key from environment # Create tools vision_tool = VisionCaptionTool(metadata={"GEMINI_API_KEY": gemini_key}) # Initialize vision caption tool with Gemini API key pubmed_tool = PubmedRetrievalTool(metadata={"DATA_DIR": str(data_dir), "TOP_K": 3}) # Initialize PubMed tool with data directory and top-k parameter iu_tool = IUImpressionSearchTool(metadata={ "VEC_PATH": str(data_dir / "iu_vecs.npy"), # Path to IU vectors file "IMPR_PATH": str(data_dir / "iu_impr.jsonl"), # Path to IU impressions file "MODEL_ID": "hf-hub:microsoft/BiomedCLIP-PubMedBERT_256-vit_base_patch16_224" # Model identifier for retrieval }) # Return all tools in a dictionary return { "vision_tool": vision_tool, "pubmed_tool": pubmed_tool, "iu_tool": iu_tool }