Microsoft Teams toplantı transkriptlerinden (VTT/DOCX) aksiyon maddeleri ve kararları otomatik çıkaran, modern bir FastAPI + Next.js uygulaması. Kanıta dayalı guardrail, NER zenginleştirme, gelişmiş analitikler ve profesyonel DOCX/CSV dışa aktarım ile uçtan uca çözümdür.
- Aksiyon maddeleri: Sorumlu (Owner), Son tarih (Due), Öncelik (Priority)
- Kararlar (Decision) ve ilgili paydaşlar
- Kanıt + zaman damgası zorunluluğu (guardrail)
- DOCX/CSV dışa aktarım ve gelişmiş filtreleme
- İleri seviye analitik: başarı oranı, dağılımlar, dil karışımı, toplantı verimliliği
Uygulamadan bazı görüntüler:
Projeye ilişkin anonimleştirilmiş örnek veri setine buradan ulaşabilirsiniz: Kaggle Dataset: Teams Meeting Transcripts
- Backend: FastAPI (Python)
core/parser.py: VTT/DOCX ayrıştırma →{ts, speaker, text, line}core/heuristics.py: TR/EN ipuçlarıyla aksiyon/karar adaylarıcore/guardrail.py: kanıt + timestamp kalite kuralıcore/redact.py: PII maskesi (e-posta/telefon)core/export.py: DOCX/CSV dışa aktarım, filtrelemecore/analytics.py: ileri analitikler (verimlilik, duygu vb.)ml/predict.py: hafif model skorlaması (opsiyonel)
- Frontend: Next.js 15 (React 19, TypeScript, Tailwind CSS)
- Drag & drop yükleme veya metin yapıştırma
- Sonuç sekmeleri: Overview, Actions, Decisions, Flagged, Advanced
- Gelişmiş export modalı (öncelik/sahip/zaman/güven eşiği)
cd backend
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
# API Dokümanı: http://localhost:8000/api/docscd frontend
npm install
npm run dev
# Uygulama: http://localhost:3000Varsayılan olarak frontend, backend’e http://localhost:8000 üzerinden bağlanır.
Üretim veya farklı ortamlar için API URL’ini env değişkenine taşımanız önerilir:
- Frontend’te
NEXT_PUBLIC_API_URLkullanın (örn.http://localhost:8000). process.env.NEXT_PUBLIC_API_URLüzerindenfetchçağrılarına uygulayın..env.localdosyasını versiyon kontrolüne dahil etmeyin (repo.gitignoreile zaten hariç tutar).
Örnek .env.example (Frontend):
NEXT_PUBLIC_API_URL=http://localhost:8000
GET /api/health: Sistem durumuPOST /api/analyze:multipart/form-datailefile(.vtt/.docx) veyatextuse_model(bool),pii_redaction(bool)- Dönenler:
summary,actions,decisions,flagged_actions,analytics,advanced_analytics,processing_info
POST /api/export/options: Veriye göre filtre seçenekleriPOST /api/export/docx: DOCX indirme (filtrelerle)POST /api/export/csv: CSV indirme (filtrelerle)
- Hafif metin sınıflandırıcı: TF‑IDF + Logistic Regression
- Eğitim verisi:
backend/examples/label.csv(repo.gitignoreile hariç tutulur; PII riski)
Eğitim (opsiyonel):
cd backend
python ml/train.py
# Çıktı: ml/model.pkl (repo dışında tutulur)- Guardrail: kanıt + timestamp olmayanlar flag’lenir.
- PII Redaction: e‑posta/telefon maskelenebilir.
- Büyük/özel dosyalar
.gitignoreile dışarıda (ml modelleri, örnek veri, env, node_modules, venv vb.).
backend/
core/ (parser, heuristics, guardrail, redact, export, analytics, utils)
ml/ (train, predict, model.pkl)
main.py
frontend/
src/app/ (page, layout)
src/components/ (...)
image/ (Screen-1..6.png)
- Backend: FastAPI, Uvicorn, pandas, numpy, scikit‑learn, python‑docx, spaCy
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS v4, Framer Motion, Headless UI, Heroicons
- Ortam değişkeniyle API URL’inin parametrik hale getirilmesi (ENV)
- Docker ile dağıtım
- Kimlik doğrulama ve kalıcı depolama
- Rate limiting ve önbellekleme
Microsoft stajlarıyla edindiğimiz kurumsal pratikleri temel alan, üretim‑hazır bir toplantı asistanıdır. Soruların varsa Issue açmaktan çekinme!