File size: 3,585 Bytes
6ecf14b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Medical Interviewer
![](assets/2024-09-08-19-33-27.png)

Medical Interviewer is an AI platform designed to simulate medical interviews based on psychological and medical knowledge. This platform is meant for educational, research, and preliminary assessment purposes but should **not** be used as a substitute for professional medical advice.

## Disclaimer
- This is a simulation tool, and information shared is confidential but **should not** include sensitive data.
- Always seek professional medical advice from qualified healthcare providers.

## Features
### 1. Simulated Interviews
- Conducts interviews with medically relevant and psychologically informed questions.
- Interviews can be customized by selecting different interviewers with unique backgrounds and approaches:
    - **Sarah**: Compassionate experience in trauma and family therapy.
    - **Aaron**: Direct and specialized in stress management, trauma, and military-related cases.

### 2. Natural Language Processing (NLP)
- Uses **LangChain** to create NLP chains that drive the interview and report generation processes.
- Understands user input and generates contextually relevant follow-up questions.

### 3. Voice Interaction
- Enables voice-based conversation by converting text to speech (TTS) and transcribing user responses using **Whisper** speech-to-text technology.

### 4. Medical Report Generation
- Automatically generates detailed medical reports based on the interview session.
- Users can download the report in PDF format.

### 5. Document Upload and Report Generation
- Users can upload TXT, PDF, or DOCX files, and the system will generate a report from the document's content.

### 6. Multi-Language Support
- Supports interviews and report generation in multiple languages.

### 7. Retrieval-Augmented Generation (RAG) and Document Retrieval
- Utilizes **RAG** to retrieve relevant data from indexed medical and psychological resources such as DSM-5, PDM-2, Big Five Traits, etc., ensuring contextually accurate interview questions.

## Usage

### Start an Interview
1. Choose an interviewer (Sarah or Aaron).
2. Start the interview in either text or voice format.
3. The system will guide you through a series of questions, designed to simulate a medical interview.

### Upload Documents
1. Navigate to the "Upload Document" tab.
2. Upload your medical document (TXT, PDF, or DOCX).
3. Generate a report based on the content of the document, which will be available for download.

### Settings
- Customize your experience by enabling or disabling audio interaction.
- Choose between available interviewers, each providing a unique style and focus.

## Technical Overview
The system uses a combination of:
- **NLP** for question generation and contextual relevance.
- **FAISS Indexing** for document similarity and retrieval of relevant medical knowledge.
- **RAG** to ensure contextually relevant and accurate interview processes.
- **Gradio** for the user interface, allowing text and audio inputs with real-time responses.
- **Whisper** and **TTS** for audio interaction, enabling real-time simulated voice-based interviews.

## Installation

To run the application locally:

1. Clone the repository:
   ```bash
   git clone https://github.com/ruslanmv/ai-medical-chatbot
   cd ./ai-medical-chatbot/8-Interviewer/hf
   ```

2. Install the dependencies:
   ```bash
   pip install -r requirements.txt
   ```

3. Launch the application:
   ```bash
   python app.py
   ```

## License
This project is licensed under the MIT License. See the [LICENSE](../LICENSE.txt) file for more details.