TherapyNote / README.md
abagherp's picture
Upload folder using huggingface_hub
6830eb0 verified

A newer version of the Gradio SDK is available: 5.14.0

Upgrade
metadata
title: TherapyNote
app_file: app.py
sdk: gradio
sdk_version: 5.9.0
organization: pxpab

Therapy Session Analysis Pipeline

A Python project that downloads YouTube therapy session captions and extracts structured information using LLMs, LangChain, and LangGraph.

Features

  • Downloads captions from YouTube therapy sessions
  • Extracts structured information using LLMs and LangChain
  • Supports multiple note formats (SOAP, DAP, BIRP, etc.)
  • Uses LangGraph for data extraction workflows
  • Manages prompts in a dedicated "langhub" directory
  • Integrates with LangSmith for conversation and run logging

Prerequisites

  • Python 3.9+
  • uv package manager
  • OpenAI API key
  • LangChain API key (for logging)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/therapy-session-analysis.git
cd therapy-session-analysis
  1. Install dependencies using uv:
uv pip install -r requirements.txt
  1. Set up environment variables:
export OPENAI_API_KEY="your-openai-key"
export LANGCHAIN_API_KEY="your-langchain-key"
export LANGCHAIN_TRACING_V2="true"

Project Structure

project/
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── settings.py
β”œβ”€β”€ langhub/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── prompts/
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── therapy_extraction_prompt.yaml
β”œβ”€β”€ forms/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── schemas.py
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ youtube.py
β”‚   └── text_processing.py
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── llm_provider.py
β”œβ”€β”€ main.py
β”œβ”€β”€ requirements.txt
└── README.md

Usage

Run the main script:

python main.py

Note Formats

The system supports multiple therapy note formats:

  • SOAP (Subjective, Objective, Assessment, Plan)
  • DAP (Data, Assessment, Plan)
  • BIRP (Behavior, Intervention, Response, Plan)
  • And more...

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.