AI-Emergency-Surgery-Assistant / modal_clinic_lookup.py
Aayussh's picture
Upload 4 files
3a14338 verified
import modal
from duckduckgo_search import DDGS
from bs4 import BeautifulSoup
import requests
# Create a Modal app
app = modal.App("healthmate-clinic-lookup")
# Define the base image with required dependencies
image = modal.Image.debian_slim().pip_install(
"duckduckgo_search",
"beautifulsoup4",
"requests",
"fastapi[standard]"
)
@app.function(image=image)
@modal.fastapi_endpoint()
def search_clinics(city: str) -> list:
"""
Search for clinics near the specified city using DuckDuckGo.
Returns a list of dictionaries containing clinic information.
"""
if not city:
return [{"error": "Please provide a city name"}]
try:
# Initialize DuckDuckGo search
with DDGS() as ddgs:
# Search for clinics
search_query = f"top medical clinics near {city}"
results = list(ddgs.text(search_query, max_results=3))
if not results:
return [{"error": f"No clinics found near {city}"}]
# Process and format results
clinics = []
for result in results:
clinic_info = {
"name": result.get("title", "Unknown Clinic"),
"link": result.get("link", "#"),
"description": result.get("body", "No description available")
}
clinics.append(clinic_info)
return clinics
except Exception as e:
return [{"error": f"Error searching for clinics: {str(e)}"}]
@app.local_entrypoint()
def main():
# Test the function locally
results = search_clinics.remote("San Francisco")
print(results)