Skip to content

Transcript logging and call summaries #75

@BenGWeeks

Description

@BenGWeeks

Summary

Save meeting transcripts to Azure Blob Storage so they:

  1. Persist beyond meeting end (solves Transcript pane is cleared when switching panes #41 - transcript lost when switching panes)
  2. Enable post-meeting summary generation

Design Decisions

  • Storage: Azure Blob Storage (JSON files)
  • Retention: 30 days (lifecycle policy)
  • Summary timing: Auto-generate at meeting end + on-demand via /summary command

Architecture

During Meeting:
  Audio → SpeechTranscriptionService → Async write to Blob

Meeting End:
  1. Save final transcript to Blob
  2. Generate summary via Pennie
  3. Post summary to Teams chat

On-Demand:
  /summary command → Fetch from Blob → Generate via Pennie → Post to Teams

Blob Structure

transcripts/
  {meetingId}/
    transcript.json     # Array of TranscriptionResult
    summary.txt         # Generated summary
    metadata.json       # Meeting start/end times, participants

Implementation Tasks

Infrastructure

  • Add transcripts container to existing storage account (infra/modules/monitoring.bicep)
  • Add 30-day lifecycle policy for automatic cleanup

Bot Services

  • Create ITranscriptStorageService interface
  • Create TranscriptStorageService (Azure.Storage.Blobs)
  • Modify SpeechTranscriptionService to persist on each recognition
  • Add GenerateMeetingSummaryAsync() to PennieAgentClient

Bot Commands

  • Add auto-summary generation on meeting end (MediaBot.OnMembersRemovedAsync)
  • Add /summary command handler

Configuration

  • Add storage config to appsettings.json
  • Register ITranscriptStorageService in DI

Files to Modify

File Change
infra/modules/monitoring.bicep Add transcripts container + lifecycle policy
bot/Services/TranscriptStorageService.cs NEW - Blob storage service
bot/Services/ITranscriptStorageService.cs NEW - Interface
bot/Services/SpeechTranscriptionService.cs Add blob persistence
bot/Services/PennieAgentClient.cs Add GenerateMeetingSummaryAsync()
bot/Bots/MediaBot.cs Auto-summary + /summary command
bot/Program.cs Register new service
bot/appsettings.json Add storage config

Related Issues

Future Enhancements (not in scope)

  • Export transcript as PDF/Word
  • Link work items to specific transcript lines
  • Search across all meeting transcripts
  • Email summary to participants

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions