This project leverages Large Language Models (LLMs) to revolutionize pharmacy education by enabling students to conduct realistic virtual patient interviews with diverse scenarios and personalities. By addressing limitations in existing tools, the prototype fosters practical skill development and offers scalable, GenAI-driven solutions for clinical education across institutions.
Index | Description |
---|---|
High Level Architecture | High level overview illustrating component interactions |
Deployment | How to deploy the project |
User Guide | The working solution |
Directories | General project directory structure |
RAG Documentation | Documentation on how the project uses RAG |
Changelog | Any changes post publish |
Credits | Meet the team behind the solution |
License | License details |
The following architecture diagram illustrates the various AWS components utilized to deliver the solution. For an in-depth explanation of the frontend and backend stacks, please look at the Architecture Guide.
To deploy this solution, please follow the steps laid out in the Deployment Guide
Please refer to the Web App User Guide for instructions on navigating the web app interface.
├── cdk
│ ├── bin
│ ├── data_ingestion
│ ├── lambda
│ ├── layers
│ ├── lib
│ ├── text_generation
├── docs
└── frontend
├── public
└── src
├── assets
├── components
├── functions
└── pages
├── admin
├── instructor
└── student
/cdk
: Contains the deployment code for the app's AWS infrastructure/bin
: Contains the instantiation of CDK stack/data_ingestion
: Contains the code required for the Data Ingestion step in retrieval-augmented generation. This folder is used by a Lambda function that runs a container which updates the vectorstore for a simulation group when files are uploaded or deleted./lambda
: Contains the lambda functions for the project/layers
: Contains the required layers for lambda functions/lib
: Contains the deployment code for all infrastructure stacks/text_generation
: Contains the code required for the Text Generation step in retrieval-augmented generation. This folder is used by a Lambda function that runs a container which retrieves specific documents and invokes the LLM to generate appropriate responses during a conversation.
/docs
: Contains documentation for the application/frontend
: Contains the user interface of the application/public
: public assets used in the application/src
: contains the frontend code of the application/assets
: Contains assets used in the application/components
: Contains components used in the application/functions
: Contains utility functions used in the application/pages
: Contains pages used in the application/admin
: Contains admin pages used in the application/instructor
: Contains instructor pages used in the application/student
: Contains student pages used in the application
Here you can learn about how this project performs retrieval-augmented generation (RAG). For a deeper dive into how we use Large Language Models (LLMs) to generate text, please refer to the Text Generation folder. For more knowledge on how data is consumed and interpreted for the LLM, please refer to the Data Ingestion folder.
N/A
This application was architected and developed by Sean Woo, Aurora Cheng, Harshinee Sriram, Nikhil Sinclair, and Aman Prakash, with project assistance by Miranda Newell. Thanks to the UBC Cloud Innovation Centre Technical and Project Management teams for their guidance and support.
This project is distributed under the MIT License.
Licenses of libraries and tools used by the system are listed below:
- For PostgreSQL and pgvector
- "a liberal Open Source license, similar to the BSD or MIT licenses."
LLaMa 3 Community License Agreement
- For Llama 3 70B Instruct model