Start Date: 2026-02-02
Hardware: RTX 6000 Blackwell PRO (96GB VRAM)
Status: β
Complete - Ready for Testing
- 1.1 Update
.env.examplewith new variables β - 1.2 Update
requirements.txtwith new dependencies β
- 2.1 Create
local_whisper.pyfor faster-whisper β - 2.2 Modify
whisper_transcription.pyfor hybrid mode β
- 3.1 Create
local_vlm.pyfor Ollama communication β - 3.2 Modify
sop_analyzer.pyfor hybrid mode β
- 4.1 Modify
main.pyfor automatic mode detection β - 4.2 Modify
webapp/app.pyfor web interface β
- 5.1 Install Ollama and download model
- 5.2 Install Python dependencies
- 5.3 Test local Whisper
- 5.4 Test Ollama VLM
- 5.5 End-to-end test of the entire pipeline
- 6.1 This document - LOCAL_GPU_IMPLEMENTATION.md β
- 6.2 Update main README.md (after testing)
# Download installer from:
# https://ollama.com/download/windows
# Verify after installation:
ollama --version# For your 96GB VRAM - best quality (90B parameters):
ollama pull llama3.2-vision:90b
# Alternatives (smaller, faster):
# ollama pull qwen2.5-vl:72b
# ollama pull llava:34b
# Verify model is downloaded:
ollama list# Ollama must run in the background:
ollama serve
# Or start Ollama via GUI (runs automatically after installation)# Activate venv:
.\venv\Scripts\activate
# Install new dependencies:
pip install -r requirements.txt# Copy template:
copy .env.example .env
# Edit .env file - set these values:# Main switch - LOCAL = GPU, API = Cloud
AI_MODE=LOCAL
# Ollama configuration
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3.2-vision:90b
# Whisper configuration
WHISPER_MODEL=large-v3
WHISPER_COMPUTE_TYPE=float16# Test Ollama connection:
python local_vlm.py
# Test entire pipeline:
python main.py "path/to/test_video.mp4" -o test_output.pdf| Time | Action | Status |
|---|---|---|
| 12:49 | Created tracking document | β |
| 12:50 | Updated .env.example | β |
| 12:50 | Updated requirements.txt | β |
| 12:51 | Created local_whisper.py | β |
| 12:52 | Created local_vlm.py | β |
| 12:53 | Modified whisper_transcription.py | β |
| 12:54 | Modified sop_analyzer.py | β |
| 12:55 | Modified main.py | β |
| 12:56 | Modified webapp/app.py | β |
| --- | IMPLEMENTATION COMPLETE | β |
| File | Type | Description | Status |
|---|---|---|---|
local_whisper.py |
NEW | Local Whisper via faster-whisper | β |
local_vlm.py |
NEW | Ollama VLM client | β |
sop_analyzer.py |
MODIFIED | Hybrid mode (API/Local) | β |
whisper_transcription.py |
MODIFIED | Hybrid mode (API/Local) | β |
main.py |
MODIFIED | Mode detection + prerequisites | β |
.env.example |
MODIFIED | New variables for LOCAL mode | β |
requirements.txt |
MODIFIED | faster-whisper, httpx | β |
webapp/app.py |
MODIFIED | Web interface with hybrid mode | β |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β main.py β
β (automatic AI_MODE detection) β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI_MODE = ? (from .env) β
ββββββββββββ¬βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β AI_MODE = "API" β β AI_MODE = "LOCAL" β
ββββββββββββββββββββββββ€ ββββββββββββββββββββββββ€
β β’ Gemini API β β β’ Ollama VLM β
β β’ Groq Whisper β β β’ faster-whisper β
β β’ Cloud processing β β β’ RTX 6000 GPU β
β β’ Pay per use β β β’ Zero cost β
β β’ Requires API keys β β β’ Requires Ollama β
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
# 1. Ensure Ollama is running:
ollama serve
# 2. Set AI_MODE=LOCAL in .env
# 3. CLI version:
python main.py "path/to/video.mp4" -o output.pdf
# 4. Or Web version:
cd webapp
python app.py
# Open http://localhost:5000# 1. Set in .env:
# AI_MODE=API
# GOOGLE_API_KEY=your_key
# GROQ_API_KEY=your_key
# 2. Run:
python main.py "path/to/video.mp4" -o output.pdf# ============================================================
# AI MODE SELECTION
# ============================================================
# Options: "API" (cloud) or "LOCAL" (GPU)
AI_MODE=LOCAL
# ============================================================
# LOCAL MODE SETTINGS (used when AI_MODE=LOCAL)
# ============================================================
# Ollama server address
OLLAMA_HOST=http://localhost:11434
# Ollama Vision model
# For 96GB VRAM: llama3.2-vision:90b (best)
# Alternatives: qwen2.5-vl:72b, llava:34b
OLLAMA_MODEL=llama3.2-vision:90b
# Local Whisper model size
# Options: tiny, base, small, medium, large-v3
WHISPER_MODEL=large-v3
# Whisper compute type
# float16 = best quality, int8 = faster
WHISPER_COMPUTE_TYPE=float16
# ============================================================
# API MODE SETTINGS (used when AI_MODE=API)
# ============================================================
# Google Gemini API Key
GOOGLE_API_KEY=your_key_here
# Groq API Key (for Whisper)
GROQ_API_KEY=your_key_here
# ============================================================
# FLASK WEB APP
# ============================================================
SECRET_KEY=your_secret_key_here# Start Ollama server:
ollama serve
# Or check if it's running:
curl http://localhost:11434/api/tags# Download model:
ollama pull llama3.2-vision:90b
# Verify available models:
ollama list# Verify CUDA installation:
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
# If it returns False, install PyTorch with CUDA:
pip install torch --index-url https://download.pytorch.org/whl/cu121pip install faster-whisperpip install httpx| Operation | API Mode | LOCAL Mode (96GB VRAM) |
|---|---|---|
| Whisper Transcription (4min video) | ~30s | ~5-8s |
| VLM Analysis (20 frames) | ~75s | ~20-40s |
| PDF Generation | ~5s | ~5s |
| Total | ~2 min | ~30-60s |
| Cost | $0.01-0.05/video | $0 |
Implementation is complete. Now follow the steps in the "WHAT YOU NEED TO DO" section above.
After installing Ollama and downloading the model, you can test with:
python main.py "your_video.mp4" -o test.pdfIf you encounter issues, refer to the Troubleshooting section or ask.