SmartMeeting Extractor is a lightweight, containerized FastAPI-based microservice that uses GPT models to extract key information from meeting transcripts or user text input.
-
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
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
# 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 --reloadThe 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.
PYTHONPATH=. pytest tests/# Build image
docker build -t smartmeeting-extractor .
# Run container
docker run -p 8080:8080 -e .env.docker smartmeeting-extractorPre-requisites:
- ECS cluster (e.g.,
smartmeeting-cluster) - Fargate service (e.g.,
smartmeeting-service) - Load balancer + target group
- IAM roles and ECR repository
Deployment Steps:
- Push Docker image to ECR
- Update ECS task definition with new image URI
- Use GitHub Actions (
deploy.yml) to automate steps
The .github/workflows/deploy.yml file provides automated testing, building, and deployment:
- 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
To use the workflow, add these secrets to your GitHub repository:
- Go to your repository → Settings → Secrets and variables → Actions
- Add the following secrets:
OPENAI_API_KEY: Your OpenAI API key for testing
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)
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
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."
}For issues or ideas, please open a GitHub issue or reach out to the maintainer.
Happy hacking! 🎯