About RadAssist AI
RadAssist AI is a small triage tool I built to test whether a general-purpose multimodal model could give frontline health workers something useful while they wait on a radiologist. The premise is narrow on purpose: it doesn't try to diagnose anything. It looks at a chest X-ray, describes what's visible in plain clinical language, and suggests a priority level for review — low, medium, or high — so a busy clinic can decide what to look at first.
The idea came from a simple fact: in a lot of rural and under-resourced settings, the bottleneck isn't taking the X-ray, it's getting someone qualified to read it. A scan can sit in a queue for days. Most of the time that's fine. Sometimes it isn't, and there's no easy way to tell which case is which until someone actually looks.
How it works
The app is a Streamlit front end backed by Google's Gemini vision model (gemini-3.6-flash). A user selects or uploads a chest X-ray, the image and a structured prompt get sent to the model, and it returns four things: what region/projection the scan is, what's visually present, any areas that stand out, and a suggested triage priority with next steps. That's it. No patient history, no lab data, no follow-on questions — just a first pass on the image itself.
What it's not
This is the part I'd rather over-explain than gloss over. RadAssist AI does not diagnose. It hasn't been trained or validated on a clinical dataset — it's a general vision model applying general reasoning to an image it's never specifically been taught to read. It has no sense of a patient's history, symptoms, or prior scans, and it can be wrong in ways that aren't obvious from the output alone. Every report it generates says so, and that disclaimer isn't decorative — it's the actual constraint the tool is designed around. The job here is to help someone sort a stack of scans faster, not to replace the person who reads them.
Why I built it this way
I kept the scope small deliberately. It would have been easy to bolt on more features — patient records, scan history, multi-model comparison — but that would have buried the actual question I was trying to answer: is a preliminary read from an off-the-shelf vision model good enough to be useful as a sorting signal, without pretending to be more than that. Everything in the interface, from the disclaimer banner to the priority labels, is built around keeping that boundary visible rather than smoothing it over.
Built by Natiq.
Log in or sign up for Devpost to join the conversation.