Skip to content

sumitdas1984/smartmeeting-extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartMeeting Extractor

SmartMeeting Extractor is a lightweight, containerized FastAPI-based microservice that uses GPT models to extract key information from meeting transcripts or user text input.


🚀 Features

  • Accepts raw meeting notes or text input via REST API

  • Uses OpenAI GPT to extract structured information such as:

    • Meeting Title
    • Participants
    • Action Items
    • Deadlines
    • Summary
  • Exposes a single POST endpoint

  • Modular architecture with clear separation between API routes and core logic

  • Dockerized for containerized deployment

  • Deployable to AWS ECS (Fargate)

  • CI/CD enabled via GitHub Actions


📂 Project Structure

smartmeeting-extractor/
├── app/
│   ├── main.py                  # FastAPI app and routes
│   ├── extractor.py             # GPT logic for extracting info
│   ├── schemas.py               # Pydantic models
│   ├── config.py                # Configuration loader
├── tests/
│   └── test_extractor.py       # Unit tests for extraction
├── requirements.txt            # Python dependencies
├── Dockerfile                  # Container setup
├── .github/workflows/
│   └── deploy.yml              # GitHub Actions workflow
├── README.md                   # Project documentation

📦 Setup & Installation

# Clone the repository
$ git clone <repo-url>
$ cd smartmeeting-extractor

# Create virtual environment
$ python3 -m venv .venv
$ source .venv/bin/activate

# Install dependencies
$ pip install -r requirements.txt

# Run locally
$ uvicorn app.main:app --reload

🧠 GPT-based Extraction Logic

The extractor.py module sends the meeting text to OpenAI GPT and parses the structured response. You must set the environment variable OPENAI_API_KEY or update the config.py to use your credentials.


🧪 Testing

PYTHONPATH=. pytest tests/

🐳 Docker

# Build image
docker build -t smartmeeting-extractor .

# Run container
docker run -p 8080:8080 -e .env.docker smartmeeting-extractor

☁️ AWS ECS (Fargate) Deployment

Pre-requisites:

  • ECS cluster (e.g., smartmeeting-cluster)
  • Fargate service (e.g., smartmeeting-service)
  • Load balancer + target group
  • IAM roles and ECR repository

Deployment Steps:

  1. Push Docker image to ECR
  2. Update ECS task definition with new image URI
  3. Use GitHub Actions (deploy.yml) to automate steps

🔁 CI/CD with GitHub Actions

The .github/workflows/deploy.yml file provides automated testing, building, and deployment:

Workflow Features:

  • Testing: Runs pytest on every push and pull request
  • Docker Build: Builds and pushes images to GitHub Container Registry
  • Deployment: Ready for deployment to various platforms

Required GitHub Secrets:

To use the workflow, add these secrets to your GitHub repository:

  1. Go to your repository → Settings → Secrets and variables → Actions
  2. Add the following secrets:
    • OPENAI_API_KEY: Your OpenAI API key for testing

Container Registry:

The workflow pushes Docker images to GitHub Container Registry (ghcr.io) with tags:

  • latest (for main/master branch)
  • <branch-name> (for feature branches)
  • <branch>-<commit-sha> (for specific commits)

Deployment Configuration:

The deploy job is currently a placeholder. Configure it based on your target platform:

  • AWS ECS/Fargate
  • Google Cloud Run
  • Azure Container Instances
  • Kubernetes
  • Your own server

🔍 API Example

POST /extract
Content-Type: application/json
{
  "text": "Today we discussed Q3 roadmap. John will deliver the report by Friday. Participants: John, Alice."
}

Response:

{
  "title": "Q3 Roadmap Discussion",
  "participants": ["John", "Alice"],
  "action_items": ["Deliver the report"],
  "deadlines": ["Friday"],
  "summary": "Meeting focused on Q3 planning."
}

📬 Contact

For issues or ideas, please open a GitHub issue or reach out to the maintainer.


Happy hacking! 🎯

About

SmartMeeting Extractor is a lightweight, containerized FastAPI-based microservice that uses GPT models to extract key information from meeting transcripts or user text input.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors