Local Offline Office Review
End-to-end productivity pipeline running entirely on-device via OpenVINO on Intel AIPC. Processes meeting audio, local documents, and business data through seven stages: ASR transcription, speaker diarization, content extraction, review document generation, task tracking, data analysis, and private knowledge base RAG Q&A. All data stays local — zero cloud transmission.
Prerequisites
- Hardware: Intel AIPC platform (CPU/GPU/NPU heterogeneous compute). Non-AIPC devices exit with error code 1.
- Memory: ~8GB available for model inference (7B LLM + ASR + embedding models).
- Python: 3.11+ (managed by
scripts/install-env.ps1on first run). - Models: Auto-downloaded on first run (~7.5GB total). If download times out (8-min default), run
scripts\run.ps1 --continueto resume. - Framework: OpenVINO (>=2025.3.0) with optimum-intel for model optimization. NPU acceleration available on supported hardware.
Architecture
Host (WorkBuddy/Qoder/TRAE Work)
│
▼
run.ps1 ──► hardware check (Intel AIPC gate)
│ venv setup (install-env.ps1)
▼
client.py ──named pipe──► server.py (long-lived, model resident)
├── ASR Engine (SenseVoice, OpenVINO IR)
├── Extraction Engine (Qwen2.5-7B, OpenVINO IR)
├── RAG Engine (bge-small-zh, FAISS)
├── Speaker Diarization
├── Data Analyzer (pandas + matplotlib)
└── Hardware Scheduler (CPU/GPU/NPU)
Client-Server architecture via named pipe (\\.\pipe\local-office-review). The server stays resident in memory with all models loaded; the client is short-lived per invocation. Model load occurs once (cold start 10-60s), subsequent calls connect to the live server (1-30s).
Pipeline
Input flows through seven stages, each callable independently or as a full chain:
- ASR Transcription — Convert meeting audio (wav/mp3/flac/ogg/m4a) to text via SenseVoice-Small optimized with OpenVINO. Supports Chinese dialects and technical terms.
- Speaker Diarization — Identify and label speakers by name, role (leader/employee/guest/host), and department. Support both interactive and LLM-assisted auto-labeling modes. Generate enhanced meeting minutes with role-based content classification.
- Content Extraction — Use local Qwen2.5-7B LLM to extract meeting summaries, key points, issues, decisions, tasks, and risks from text.
- Review Document Generation — Fill report templates (standard/dev/process) with extracted data. Supports custom templates.
- Task Tracking — Structure action items into a CSV task list with priority, deadline, and owner fields.
- Data Analysis — Run statistical analysis on CSV/Excel data and generate visualized HTML reports with charts.
- Private Knowledge Base RAG — Build a local FAISS vector index from documents, perform semantic search and context-augmented Q&A. All embeddings generated locally via bge-small-zh model.
Usage
Entry Point
scripts\run.ps1 is the sole entry point — do not call other scripts directly. It handles hardware detection, Python environment setup, and server lifecycle.
Full Pipeline (Default)
scripts\run.ps1 --mode full --input "<audio/document path>" --output "<output dir>"
Single-Module Commands
| Intent | Command |
| --- | --- |
| Transcribe audio only | scripts\run.ps1 --mode asr --input "meeting.mp3" |
| Transcribe + enable diarization | scripts\run.ps1 --mode asr --input "meeting.mp3" --enable-diarization |
| Label speakers on existing transcript | scripts\run.ps1 --mode diarize --input "transcript.txt" |
| Quick speaker labeling (preset list) | scripts\run.ps1 --mode diarize --input "transcript.txt" --speakers "Alice-leader-mgmt,Bob-dev-eng" |
| Auto speaker labeling (LLM-assisted) | scripts\run.ps1 --mode diarize --input "transcript.txt" --auto-label |
| Extract content from document | scripts\run.ps1 --mode extract --input "project.pdf" |
| Generate review report only | scripts\run.ps1 --mode report --input "transcript.txt" |
| Extract tasks only | scripts\run.ps1 --mode tasks --input "review_report.md" |
| Analyze data only | scripts\run.ps1 --mode analyze --input "data.csv" |
| Build knowledge base from documents | scripts\run.ps1 --mode rag --input "./docs/" --action build |
| Query private knowledge base | scripts\run.ps1 --mode rag --input "./docs/" --action query --query "项目进度如何" |
| Batch process a directory | scripts\run.ps1 --mode batch --input "./meetings/" --output "./output" |
| Use custom template | scripts\run.ps1 --mode full --input "audio.mp3" --template "assets/templates/custom.md" |
Agent Adaptation
The skill natively adapts to three productivity-level AI Agent tools through the --agent flag, which selects the appropriate report template and output format:
| Agent | Command | Adaptation |
| --- | --- | --- |
| WorkBuddy | scripts\run.ps1 --mode full --agent workbuddy --input "meeting.mp3" | Standard review template; workplace productivity scenario |
| Qoder | scripts\run.ps1 --mode full --agent qoder --input "standup.wav" --template "assets/templates/dev_review.md" | Dev iteration template; code review and sprint retrospective |
| TRAE Work | scripts\run.ps1 --mode full --agent trae --input "project_data.xlsx" | Process review template; workflow optimization and bottleneck analysis |
Resume Protocol (--continue)
First-run model downloads may time out (8-min default). On timeout:
- A prompt prints:
模型正在下载, 请用命令 'scripts\run.ps1 --continue' 继续运行 - The pending request is saved to
~/.openvino/local-office-review-pending-request.json - Running
--continuereads the saved request and resumes download/execution.
Exit Codes
| Code | Meaning |
| --- | --- |
| 0 | Success |
| 1 | General error (bad args, unsupported hardware, env failure) |
| 2 | Connection/communication error (named pipe failure) |
| 3 | Model downloading — re-run with --continue |
Output Files
| File | Description |
| --- | --- |
| review_report_<ts>.md | Standardized review report: overview, key results, issues, tasks, timeline, owners |
| tasks_<ts>.csv | Structured task list: content, priority, deadline, related items, status |
| analysis_<ts>.html | Data review dashboard: completion rate, issue recurrence, efficiency trends, charts |
| transcript_<ts>.txt | Clean transcript (ASR mode only) |
| labeled_transcript_<ts>.md | Annotated transcript with speaker info and speech segments (diarization mode) |
| speakers_<ts>.json | Speaker metadata: names, roles, departments, speech statistics (diarization mode) |
| enhanced_minutes_<ts>.json | Enhanced meeting minutes: role-classified speech content (diarization mode) |
| rag_index_<ts>.json | FAISS vector index metadata: document count, chunk count, embedding dimension (RAG mode) |
| rag_answer_<ts>.json | Knowledge base Q&A result: query, matched chunks, LLM-generated answer (RAG mode) |
| extracted_<ts>.json | Structured extraction result: summary, key points, issues, decisions, tasks, risks |
Productivity Scenarios
This skill addresses real productivity workflows across four competition-recommended directions:
| Direction | Scenario | Hybrid AI Value | | --- | --- | --- | | Office Efficiency | Local meeting minutes auto-extraction; project retrospective report generation; action item tracking | Zero-latency response; enterprise confidential meeting data never leaves the device | | Development Assistance | Sprint retrospective; standup meeting transcription; tech debt and bug list extraction (Qoder) | Offline efficient programming; core algorithm protection | | Knowledge Management | Private PDF/notes library RAG; research report summarization; local private knowledge base Q&A | "Always-on" fully private personal digital second brain | | Data Analysis | CSV natural language querying; local data visualization; meeting efficiency trend analysis | Direct local large dataset processing; zero cloud traffic cost |
Bundled Resources
Templates (assets/templates/)
Report templates used as output scaffolding. Reference via --template flag:
standard_review.md— General office review (default, WorkBuddy)dev_review.md— Development iteration review (Qoder)process_review.md— Process review (TRAE Work)task_template.csv— Task list CSV template
To use a custom template, place it in assets/templates/ and pass the path via --template.
References (references/)
Load these when deeper context is needed:
references/speaker_diarization_guide.md— Detailed speaker diarization usage guide: interactive vs. quick vs. auto-labeling modes, output file specs, classification rules, and application examples. Load when the user asks about speaker labeling details or troubleshooting.references/verification_guide.md— Full skill verification guide: environment checks, functional tests, performance benchmarks, stress tests, and troubleshooting. Load when validating or debugging the skill installation.references/openvino_optimization_guide.md— OpenVINO model optimization pipeline: NNCF INT8/INT4 quantization, HuggingFace to OpenVINO IR conversion, heterogeneous device scheduling (CPU/GPU/NPU), performance benchmarks. Load when customizing models or troubleshooting inference performance.references/agent_integration_guide.md— Productivity Agent tool adaptation guide: WorkBuddy/Qoder/TRAE Work integration details, instruction test cases, compatibility verification. Load when verifying Agent tool integration quality.
Technical Stack
| Component | Technology | Model/Tool | | --- | --- | --- | | ASR | OpenVINO + ONNX Runtime | SenseVoice-Small (iic/SenseVoiceSmall) | | LLM Extraction | OpenVINO IR | Qwen2.5-7B-Instruct (Qwen/Qwen2.5-7B-Instruct) | | Embedding/RAG | OpenVINO IR + FAISS | bge-small-zh-v1.5 (BAAI/bge-small-zh-v1.5) | | Speaker Diarization | Rule-based + LLM-assisted | N/A (no separate model) | | Data Analysis | pandas + matplotlib | N/A | | Inference Framework | OpenVINO (>=2025.3.0) + optimum-intel | CPU/GPU/NPU heterogeneous | | Model Download | ModelScope (primary), HuggingFace (fallback) | — |
All models are pre-quantized INT8 OpenVINO IR format, within the <=35B parameter constraint, suitable for local AIPC deployment.
Scope
This skill does not:
- Train or fine-tune models (prepare OpenVINO IR format models in advance for customization; see
references/openvino_optimization_guide.md). - Make any cloud calls — all inference runs 100% locally. No cloud fallback.
- Perform real-time streaming transcription (file-based post-processing only).
- Auto-fetch emails or IM messages (use other skills to acquire input).
- Export or deploy the skill into a specific host UI beyond describing the import step.
微信扫一扫