Skip to content

UBC-CIC/Empathetic-Communication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,034 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Empathetic Communication

This project harnesses generative AI on AWS Cloud Infrastructure to help healthcare students practice and develop empathetic communication skills for patient care. The tool uses Retrieval Augmented Generation and Large Language Models to create realistic patient training scenarios, provide structured empathy feedback, and evaluate student performance across key empathy dimensions. Students and instructors can track progress and learn from detailed feedback, supporting stronger empathetic communication practice and interactive training within healthcare education.

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
Empathy Coach Deep Dive Detailed documentation on empathy evaluation system
Troubleshooting Guide Documentation on how to troubleshoot common issues
Changelog Any changes post publish
Credits Meet the team behind the solution
License License details

High-Level Architecture

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.

Alt text

Deployment Guide

To deploy this solution, please follow the steps laid out in the Deployment Guide

Optional Bedrock Guardrails

This system includes optional support for AWS Bedrock Guardrails as an additional layer of content protection. By default, the system uses system prompt protection, but you can optionally enable Bedrock Guardrails for enhanced content filtering.

For complete setup instructions, see Bedrock Guardrails Configuration

User Guide

Please refer to the Web App User Guide for instructions on navigating the web app interface.

Directories

├── cdk
│   ├── bin
│   ├── data_ingestion
│   ├── lambda
│   ├── layers
│   ├── lib
│   ├── socket-server
│   ├── test
│   ├── text_generation
├── docs
└── frontend
    ├── public
    └── src
        ├── assets
        ├── components
        ├── functions
        └── pages
            ├── admin
            ├── instructor
            └── student
  1. /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
    • /socket-server: Contains the Socket.IO server code for real-time communication, voice processing with Nova Sonic, and WebSocket connections deployed in ECS Fargate containers
    • /test: Contains CDK unit tests for infrastructure validation
    • /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.
  2. /docs: Contains documentation for the application
  3. /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

RAG Documentation

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.

Empathy Coach Deep Dive

For comprehensive documentation on the Empathy Coach evaluation system, including scoring methodology, judging criteria, prompt engineering, and modification guides, please refer to the Empathy Coach Deep Dive.

Troubleshooting Guide

This guide helps you check if everything in the project is working as expected using a notebook tool. It also shows how to navigate through a common Docker issue here

Changelog

N/A

Credits

This application was architected and developed by Sharon Marfatia and Zayan Sheikh with project assistance by Anya Ameen. Thanks to the UBC Cloud Innovation Centre Technical and Project Management teams for their guidance and support.

License

This project is distributed under the MIT License.

Licenses of libraries and tools used by the system are listed below:

PostgreSQL license

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 5