Peter Yang
Mobasser Haque
Nathan Bush
Huma Rahim

SanAssist is an innovative web application designed to empower healthcare professionals with seamless data analysis and intelligent querying capabilities. By combining interactive dashboards created using the Squirrels library with a fine-tuned Large Language Model (LLM), SanAssist enables users to interact with datasets dynamically and derive actionable insights effortlessly.
SanAssist Live Application: https://unp5mky7br.us-east-2.awsapprunner.com/
3e-4431.27643.32
The diagram illustrates SanAssist's Data Pipeline:
This pipeline ensures seamless data processing, visualization, and intelligent insights.
The SanAssist web application includes an interactive, user-friendly dashboard powered by the Squirrels library, designed to provide healthcare professionals with powerful tools to explore, visualize, and analyze patient data. The dashboard integrates seamlessly with the LLM chatbot, allowing users to ask complex questions about data trends, treatment plans, and patient-specific insights.




The screenshots above showcase the following features of the SanAssist dashboard:
Health Metrics Comparison:
Trends in Data:
Customizable Filters:
Data Tables:
Secure Login:
AI-Powered Insights:
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account_id>.dkr.ecr.<region>.amazonaws.com
docker push <account_id>.dkr.ecr.<region>.amazonaws.com/sanassist:latest
OPENAI_API_KEY) for secure access.This project includes a Docker image for easy local setup. When running locally, a post-create command will handle the installation of all required dependencies. Follow the steps below to test locally:
Clone the Repository:
git clone https://github.com/cpyang123/SanAssist.git
cd SanAssist
Install Dependencies (Optional for Docker users):
If you're not using Docker, install the dependencies manually:
pip install -r requirements.txt
Note: This step is handled automatically when setting up Docker.
Build the Docker Image:
make build
Note: This step is handled automatically when pushing to main through GitHub Actions.
Run the Application Locally:
make run
Deploy to AWS:
Push the Docker image to AWS ECR and deploy via App Runner.
Deployment is automated through GitHub Actions.
SanAssist includes a robust microservice that interfaces seamlessly with its data engineering pipeline to process, transform, and deliver data to the web application. The microservice was developed in Python for its extensive library ecosystem and ease of integration with data engineering tools.
Key Features:
Dockerfile to build and deploy the microservice.Benefits:
SanAssist leverages Databricks and Pandas to power its ETL (Extract, Transform, Load) pipeline. This pipeline processes raw healthcare datasets and prepares them for interactive dashboard visualizations and LLM-based querying.
Pipeline Highlights:
Data Ingestion:
Data Transformation:
Data Storage:
Data Delivery:
Benefits:
The infrastructure for SanAssist is managed programmatically using Github Actions Connecting to AWS ECR, ensuring consistent, scalable, and reproducible setups.
Key Components:
AWS ECR:
AWS App Runner:
IaC Benefits:
SanAssist employs a robust CI/CD pipeline implemented using GitHub Actions, ensuring smooth integration, testing, and deployment.
Pipeline Workflow:
Build and Test:
Deployment:
Advantages:
The GitHub repository is configured to facilitate reproducibility, maintainability, and automation.
Configurations:
GitHub Actions:
Ruff.Black.Devcontainer:
.devcontainer configuration for GitHub Codespaces to provide a pre-configured, reproducible development environment.Build Badges:
SanAssist is deployed using AWS Elastic Container Registry (ECR) and AWS App Runner to ensure scalability and robustness.
Containerization:
AWS Integration:
Advantages:
This comprehensive setup ensures SanAssist is highly scalable, reliable, and maintainable while delivering state-of-the-art data visualization and querying capabilities.
To ensure the reliability and stability of the SanAssist platform, we conducted comprehensive load testing using Locust. The tests measured the system's performance under simulated load conditions, with 10,000 concurrent users performing 5,000 requests each. Below is the detailed quantitative assessment of the results:

Metrics:
Observations:
Implications:
Metrics:
Observations:
Implications:
Metrics:
Observations:
Implications:
Performance Under Load:
Reliability:
Optimization Focus Areas:
In summary, SanAssist demonstrated the following during load testing:
These results confirm the system's scalability and reliability for high-traffic scenarios while identifying areas for further performance enhancements to reduce failure rates and variability in response times under peak loads.
Quantitative analysis of our fine-tuned language model’s performance was conducted using perplexity, a standard metric in language modeling. Perplexity measures how well the model predicts a sample of text, with lower values indicating better predictive capability.
Perplexity (PPL) is defined as the exponentiated average negative log-likelihood of the tokens in the test set. Given a test set of (N) tokens $(x_1, x_2, ..., x_N)$ and their model-assigned probabilities $p(x_i)$:
$PPL(W) = \exp\left(-\frac{1}{N} \sum \log(P(w_i))\right)$
Where:
| Model Name | Domain Specialization | Perplexity (↓ Better) | Reference/Note |
|---|---|---|---|
| Med-PaLM | General Medical Knowledge | ~5.5 - ~6.5 | Singhal et al. (2022) - Approx. perplexity estimates not directly provided. |
| SanAssist | General Healthcare and Patient-Doctor Interactions | 3.32 | Self-measured. Empirically tested on our test set. |
In evaluating our model alongside Google’s Med-PaLM, we observe the following:
This low perplexity suggests that our domain-specific fine-tuning approach yields a model better aligned with clinical dialogues and capable of providing more contextually relevant and coherent guidance. This demonstrates potential superiority over general medical LLMs like Med-PaLM in patient-centered communication.
A perplexity of 3.32 indicates:
The Teamwork Reflections report has been completed and added to the repository. It includes peer evaluations, positive attributes, areas for improvement, and the outcomes of our team feedback session.
You can view the document here:
Teamwork Reflections (PDF)
Jupyter Notebook
97.1%
Python
1.9%
Peter Yang
Mobasser Haque
Nathan Bush
Huma Rahim

SanAssist is an innovative web application designed to empower healthcare professionals with seamless data analysis and intelligent querying capabilities. By combining interactive dashboards created using the Squirrels library with a fine-tuned Large Language Model (LLM), SanAssist enables users to interact with datasets dynamically and derive actionable insights effortlessly.
SanAssist Live Application: https://unp5mky7br.us-east-2.awsapprunner.com/
3e-4431.27643.32
The diagram illustrates SanAssist's Data Pipeline:
This pipeline ensures seamless data processing, visualization, and intelligent insights.
The SanAssist web application includes an interactive, user-friendly dashboard powered by the Squirrels library, designed to provide healthcare professionals with powerful tools to explore, visualize, and analyze patient data. The dashboard integrates seamlessly with the LLM chatbot, allowing users to ask complex questions about data trends, treatment plans, and patient-specific insights.




The screenshots above showcase the following features of the SanAssist dashboard:
Health Metrics Comparison:
Trends in Data:
Customizable Filters:
Data Tables:
Secure Login:
AI-Powered Insights:
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account_id>.dkr.ecr.<region>.amazonaws.com
docker push <account_id>.dkr.ecr.<region>.amazonaws.com/sanassist:latest
OPENAI_API_KEY) for secure access.This project includes a Docker image for easy local setup. When running locally, a post-create command will handle the installation of all required dependencies. Follow the steps below to test locally:
Clone the Repository:
git clone https://github.com/cpyang123/SanAssist.git
cd SanAssist
Install Dependencies (Optional for Docker users):
If you're not using Docker, install the dependencies manually:
pip install -r requirements.txt
Note: This step is handled automatically when setting up Docker.
Build the Docker Image:
make build
Note: This step is handled automatically when pushing to main through GitHub Actions.
Run the Application Locally:
make run
Deploy to AWS:
Push the Docker image to AWS ECR and deploy via App Runner.
Deployment is automated through GitHub Actions.
SanAssist includes a robust microservice that interfaces seamlessly with its data engineering pipeline to process, transform, and deliver data to the web application. The microservice was developed in Python for its extensive library ecosystem and ease of integration with data engineering tools.
Key Features:
Dockerfile to build and deploy the microservice.Benefits:
SanAssist leverages Databricks and Pandas to power its ETL (Extract, Transform, Load) pipeline. This pipeline processes raw healthcare datasets and prepares them for interactive dashboard visualizations and LLM-based querying.
Pipeline Highlights:
Data Ingestion:
Data Transformation:
Data Storage:
Data Delivery:
Benefits:
The infrastructure for SanAssist is managed programmatically using Github Actions Connecting to AWS ECR, ensuring consistent, scalable, and reproducible setups.
Key Components:
AWS ECR:
AWS App Runner:
IaC Benefits:
SanAssist employs a robust CI/CD pipeline implemented using GitHub Actions, ensuring smooth integration, testing, and deployment.
Pipeline Workflow:
Build and Test:
Deployment:
Advantages:
The GitHub repository is configured to facilitate reproducibility, maintainability, and automation.
Configurations:
GitHub Actions:
Ruff.Black.Devcontainer:
.devcontainer configuration for GitHub Codespaces to provide a pre-configured, reproducible development environment.Build Badges:
SanAssist is deployed using AWS Elastic Container Registry (ECR) and AWS App Runner to ensure scalability and robustness.
Containerization:
AWS Integration:
Advantages:
This comprehensive setup ensures SanAssist is highly scalable, reliable, and maintainable while delivering state-of-the-art data visualization and querying capabilities.
To ensure the reliability and stability of the SanAssist platform, we conducted comprehensive load testing using Locust. The tests measured the system's performance under simulated load conditions, with 10,000 concurrent users performing 5,000 requests each. Below is the detailed quantitative assessment of the results:

Metrics:
Observations:
Implications:
Metrics:
Observations:
Implications:
Metrics:
Observations:
Implications:
Performance Under Load:
Reliability:
Optimization Focus Areas:
In summary, SanAssist demonstrated the following during load testing:
These results confirm the system's scalability and reliability for high-traffic scenarios while identifying areas for further performance enhancements to reduce failure rates and variability in response times under peak loads.
Quantitative analysis of our fine-tuned language model’s performance was conducted using perplexity, a standard metric in language modeling. Perplexity measures how well the model predicts a sample of text, with lower values indicating better predictive capability.
Perplexity (PPL) is defined as the exponentiated average negative log-likelihood of the tokens in the test set. Given a test set of (N) tokens $(x_1, x_2, ..., x_N)$ and their model-assigned probabilities $p(x_i)$:
$PPL(W) = \exp\left(-\frac{1}{N} \sum \log(P(w_i))\right)$
Where:
| Model Name | Domain Specialization | Perplexity (↓ Better) | Reference/Note |
|---|---|---|---|
| Med-PaLM | General Medical Knowledge | ~5.5 - ~6.5 | Singhal et al. (2022) - Approx. perplexity estimates not directly provided. |
| SanAssist | General Healthcare and Patient-Doctor Interactions | 3.32 | Self-measured. Empirically tested on our test set. |
In evaluating our model alongside Google’s Med-PaLM, we observe the following:
This low perplexity suggests that our domain-specific fine-tuning approach yields a model better aligned with clinical dialogues and capable of providing more contextually relevant and coherent guidance. This demonstrates potential superiority over general medical LLMs like Med-PaLM in patient-centered communication.
A perplexity of 3.32 indicates:
The Teamwork Reflections report has been completed and added to the repository. It includes peer evaluations, positive attributes, areas for improvement, and the outcomes of our team feedback session.
You can view the document here:
Teamwork Reflections (PDF)
Jupyter Notebook
97.1%
Python
1.9%