Skip to content

feat(apps): add whisper-fn, a scale-to-zero STACKIT Functions transcription demo - #35

Open
KonstantinMKloster wants to merge 2 commits into
stackitcloud:mainfrom
KonstantinMKloster:feat/apps-whisper-fn
Open

KonstantinMKloster wants to merge 2 commits into
stackitcloud:mainfrom
KonstantinMKloster:feat/apps-whisper-fn

Conversation

@KonstantinMKloster

Copy link
Copy Markdown

Summary

  • Adds apps/whisper-fn, a STACKIT Function that transcribes a video from an S3 (Object Storage) bucket with openai-whisper and writes the transcript back to the same bucket, then scales to zero — as an alternative to running an always-on VM for the same demo.
  • Built via a hand-written Dockerfile (not Cloud Native Buildpacks) — see apps/whisper-fn/DECISIONS.md for why, along with the model-size (small, not large-v3) and plan/concurrency choices.

Test plan

  • docker build + local smoke test (GET /health, POST /transcribe) against a real S3 bucket
  • python3 test_handler_local.py (routing/upload logic test, dependencies stubbed, no Docker needed)
  • python3 .github/scripts/check_readme_tags.py passes
  • python3 .github/scripts/generate_agents_md.py run, AGENTS.md updated and included in this PR
  • CI (pre-commit, gitleaks, formatting) — to be confirmed once this PR is opened

…iption demo

Rebuilds an always-on VM video-transcription demo as a STACKIT Function:
downloads a video from S3, transcribes it with openai-whisper, writes the
transcript back to S3, and scales to zero when idle instead of billing 24/7.

@KonstantinMKloster KonstantinMKloster left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

…ually runnable

The fake imageio_ffmpeg path was a non-existent directory already named
"ffmpeg", so handler.py's self-symlink step raised FileNotFoundError on
every run. Point the stub at a real temp file instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant