mgbam's picture
Update genesis/api_clients/pubmed_api.py
1411075 verified
raw
history blame
917 Bytes
# genesis/api_clients/pubmed_api.py
import requests
import os
NCBI_API_KEY = os.getenv("NCBI_API_KEY") # Stored in HF Secrets
BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
def search_pubmed(query: str, max_results: int = 10):
"""Search PubMed articles."""
url = f"{BASE_URL}/esearch.fcgi"
params = {
"db": "pubmed",
"term": query,
"retmax": max_results,
"retmode": "json",
"api_key": NCBI_API_KEY
}
r = requests.get(url, params=params)
r.raise_for_status()
return r.json()
def fetch_pubmed_details(id_list):
"""Fetch article details for given PubMed IDs."""
ids = ",".join(id_list)
url = f"{BASE_URL}/efetch.fcgi"
params = {
"db": "pubmed",
"id": ids,
"retmode": "xml",
"api_key": NCBI_API_KEY
}
r = requests.get(url, params=params)
r.raise_for_status()
return r.text