# genesis/tools.py """ Utility functions for GENESIS-AI """ import re from datetime import datetime def extract_citations(text): """Extracts DOI, PMID, and URLs from text.""" citations = [] doi_pattern = r"(10\.\d{4,9}/[-._;()/:A-Z0-9]+)" pmid_pattern = r"PMID:\s*(\d+)" url_pattern = r"(https?://[^\s)]+)" for match in re.finditer(doi_pattern, text, re.IGNORECASE): citations.append({"type": "DOI", "id": match.group(1), "url": f"https://doi.org/{match.group(1)}"}) for match in re.finditer(pmid_pattern, text, re.IGNORECASE): citations.append({"type": "PMID", "id": match.group(1), "url": f"https://pubmed.ncbi.nlm.nih.gov/{match.group(1)}/"}) for match in re.finditer(url_pattern, text, re.IGNORECASE): if not any(c["url"] == match.group(1) for c in citations): citations.append({"type": "URL", "id": "", "url": match.group(1)}) return citations def timestamp(): """Returns current UTC timestamp as ISO string.""" return datetime.utcnow().isoformat()