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 | |
} |