Enterprise Meeting Knowledge Management System with: Backend (FastAPI): - Authentication proxy with JWT (pj-auth-api integration) - MySQL database with 4 tables (users, meetings, conclusions, actions) - Meeting CRUD with system code generation (C-YYYYMMDD-XX, A-YYYYMMDD-XX) - Dify LLM integration for AI summarization - Excel export with openpyxl - 20 unit tests (all passing) Client (Electron): - Login page with company auth - Meeting list with create/delete - Meeting detail with real-time transcription - Editable transcript textarea (single block, easy editing) - AI summarization with conclusions/action items - 5-second segment recording (efficient for long meetings) Sidecar (Python): - faster-whisper medium model with int8 quantization - ONNX Runtime VAD (lightweight, ~20MB vs PyTorch ~2GB) - Chinese punctuation processing - OpenCC for Traditional Chinese conversion - Anti-hallucination parameters - Auto-cleanup of temp audio files OpenSpec: - add-meeting-assistant-mvp (47 tasks, archived) - add-realtime-transcription (29 tasks, archived) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Meeting Assistant Deployment Guide
Prerequisites
- Python 3.10+
- Node.js 18+
- MySQL 8.0+
- Access to Dify LLM service
Backend Deployment
1. Setup Environment
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or: venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
2. Configure Environment Variables
# Copy example and edit
cp .env.example .env
# Edit .env with actual values:
# - DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME
# - AUTH_API_URL
# - DIFY_API_URL, DIFY_API_KEY
# - ADMIN_EMAIL
# - JWT_SECRET (generate a secure random string)
3. Run Server
# Development
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Production
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
4. Verify Deployment
curl http://localhost:8000/api/health
# Should return: {"status":"healthy","service":"meeting-assistant"}
Electron Client Deployment
1. Setup
cd client
# Install dependencies
npm install
2. Development
npm start
3. Build for Distribution
# Build portable executable
npm run build
The executable will be in client/dist/.
Transcription Sidecar
1. Setup
cd sidecar
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
pip install pyinstaller
2. Download Whisper Model
The model will be downloaded automatically on first run. For faster startup, pre-download:
from faster_whisper import WhisperModel
model = WhisperModel("small", device="cpu", compute_type="int8")
3. Build Executable
python build.py
The executable will be in sidecar/dist/transcriber.
4. Package with Electron
Copy sidecar/dist/ to client/sidecar/ before building Electron app.
Database Setup
The backend will automatically create tables on first startup. To manually verify:
USE db_A060;
SHOW TABLES LIKE 'meeting_%';
Expected tables:
meeting_usersmeeting_recordsmeeting_conclusionsmeeting_action_items
Testing
Backend Tests
cd backend
pytest tests/ -v
Performance Verification
On target hardware (i5/8GB):
- Start the Electron app
- Record 1 minute of audio
- Verify transcription completes within acceptable time
- Test AI summarization with the transcript
Troubleshooting
Database Connection Issues
- Verify MySQL is accessible from server
- Check firewall rules for port 33306
- Verify credentials in .env
Dify API Issues
- Verify API key is valid
- Check Dify service status
- Review timeout settings for long transcripts
Transcription Issues
- Verify microphone permissions
- Check sidecar executable runs standalone
- Review audio format (16kHz, 16-bit, mono)
Security Notes
- Never commit
.envfiles - Keep JWT_SECRET secure and unique per deployment
- Ensure HTTPS in production
- Regular security updates for dependencies