Add Ascii art and update agent
Browse files
README.md
CHANGED
|
@@ -20,7 +20,34 @@ This project implements a multi-agent workflow using **LangGraph** to process, t
|
|
| 20 |
|
| 21 |
## Workflow Flow & Agent Classes
|
| 22 |
|
| 23 |
-
The core analysis logic is driven by a LangGraph StateGraph defined in `src/workflow.py`. The state moves sequentially between several agent classes located in the `src/agents/` directory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
1. **`IntakeAgent` (`src/agents/intake_agent.py`)**
|
| 26 |
- *Entry Point*.
|
|
@@ -36,13 +63,17 @@ The core analysis logic is driven by a LangGraph StateGraph defined in `src/work
|
|
| 36 |
- Utilizes `openai-whisper` to convert audio files into text.
|
| 37 |
- Also scrubs the resulting transcript of profanity before passing it down the pipeline.
|
| 38 |
|
| 39 |
-
4. **`
|
| 40 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
- Generates a concise summary and extracts key points using OpenAI (`gpt-3.5-turbo`).
|
| 42 |
|
| 43 |
-
|
| 44 |
- Takes the clean text and evaluates it against a predefined rubric.
|
| 45 |
-
- Scores the transcript based on Tone, Professionalism, and Structured Resolution.
|
| 46 |
|
| 47 |
## Prerequisites
|
| 48 |
|
|
|
|
| 20 |
|
| 21 |
## Workflow Flow & Agent Classes
|
| 22 |
|
| 23 |
+
The core analysis logic is driven by a LangGraph StateGraph defined in `src/workflow.py`. The state moves sequentially between several agent classes located in the `src/agents/` directory.
|
| 24 |
+
|
| 25 |
+
### Workflow Architecture
|
| 26 |
+
```text
|
| 27 |
+
[ IntakeAgent ]
|
| 28 |
+
|
|
| 29 |
+
v
|
| 30 |
+
[ Router ]
|
| 31 |
+
/ \
|
| 32 |
+
(If Audio) / \ (If Text)
|
| 33 |
+
v \
|
| 34 |
+
[ TranscriptionAgent ] |
|
| 35 |
+
\ /
|
| 36 |
+
\ /
|
| 37 |
+
v v
|
| 38 |
+
[ ModerationAgent ]
|
| 39 |
+
|
|
| 40 |
+
v
|
| 41 |
+
[ SummarizationAgent ]
|
| 42 |
+
|
|
| 43 |
+
v
|
| 44 |
+
[ QualityScoringAgent ]
|
| 45 |
+
|
|
| 46 |
+
v
|
| 47 |
+
(END)
|
| 48 |
+
```
|
| 49 |
+
|
| 50 |
+
### Agent Classes
|
| 51 |
|
| 52 |
1. **`IntakeAgent` (`src/agents/intake_agent.py`)**
|
| 53 |
- *Entry Point*.
|
|
|
|
| 63 |
- Utilizes `openai-whisper` to convert audio files into text.
|
| 64 |
- Also scrubs the resulting transcript of profanity before passing it down the pipeline.
|
| 65 |
|
| 66 |
+
4. **`ModerationAgent` (`src/agents/ModerationAgent.py`)**
|
| 67 |
+
- Receives text either directly from the `Router` (if text upload) or from the `TranscriptionAgent` (if audio upload).
|
| 68 |
+
- Identifies any obscene words or profanity using an LLM and replaces them entirely with a `***` mask to safely prepare the text for downstream analysis.
|
| 69 |
+
|
| 70 |
+
5. **`SummarizationAgent` (`src/agents/summarization_agent.py`)**
|
| 71 |
+
- Takes the redacted text from the `ModerationAgent`.
|
| 72 |
- Generates a concise summary and extracts key points using OpenAI (`gpt-3.5-turbo`).
|
| 73 |
|
| 74 |
+
6. **`QualityScoringAgent` (`src/agents/quality_scoring_agent.py`)**
|
| 75 |
- Takes the clean text and evaluates it against a predefined rubric.
|
| 76 |
+
- Scores the transcript based on Tone, Professionalism, and Structured Resolution. Automatically applies a 3-point penalty to each score and logs a count of policy violations if the `ModerationAgent` detected and masked any profanity (`***`).
|
| 77 |
|
| 78 |
## Prerequisites
|
| 79 |
|