doocus first ver
This commit is contained in:
43
INDEX.md
43
INDEX.md
@@ -31,6 +31,28 @@ output/<run>/ run folder: YYYYMMDD-NNN-<stem>/
|
||||
`make batch` (→ `ctrl/batch.sh`) runs the pipeline over a whole directory tree,
|
||||
mirroring the input folder structure into the output.
|
||||
|
||||
## doocus — document extraction (alongside meetus)
|
||||
|
||||
The same idea for documents. `process_doc.py` turns local files (Drive exports,
|
||||
PDFs, images, ...) into a textified product + metadata, deterministically and
|
||||
offline. Its output is what feeds permitted services (Gemini web, NotebookLM)
|
||||
and the local search index; the raw source never leaves the machine.
|
||||
|
||||
```
|
||||
document (docx/pdf/xlsx/img/...)
|
||||
│ process_doc.py (deterministic, offline, no cloud AI)
|
||||
▼
|
||||
docs-output/<run>/ run folder: YYYYMMDD-NNN-<stem>/
|
||||
├── content.md textified document ◀── the product
|
||||
├── meta.json source/sha/dates/author/pages/... metadata
|
||||
├── thumb.jpg optional single preview
|
||||
└── manifest.json
|
||||
```
|
||||
|
||||
`make docs` (→ `ctrl/batch_docs.sh`) runs it over a whole tree. Full doocus docs:
|
||||
[`doocus/README.md`](doocus/README.md). Cross-search (meetus transcripts + doocus
|
||||
docs, textified-only) is a later phase. 🚧
|
||||
|
||||
## Status legend
|
||||
|
||||
✅ active · 🚧 WIP, on hold · 🗄️ deprecated (kept for reference) · 🧰 one-off / niche · 📄 docs
|
||||
@@ -39,7 +61,8 @@ mirroring the input folder structure into the output.
|
||||
|
||||
```
|
||||
process_meeting.py ✅ the CLI tool — entry point (stays at root)
|
||||
Makefile ✅ batch convenience wrapper
|
||||
process_doc.py ✅ doocus CLI — document extraction entry point
|
||||
Makefile ✅ batch convenience wrapper (make batch / make docs)
|
||||
meetus/ ✅ core package
|
||||
├─ workflow.py orchestrator (whisper → frames → merge)
|
||||
├─ frame_extractor.py FFmpeg scene-detection / interval frames
|
||||
@@ -51,8 +74,15 @@ meetus/ ✅ core package
|
||||
├─ vision_processor.py (was --use-vision)
|
||||
├─ hybrid_processor.py (was --use-hybrid)
|
||||
└─ prompts/ vision context prompts
|
||||
doocus/ ✅ document-extraction package (see doocus/README.md)
|
||||
├─ workflow.py DocConfig + DocWorkflow (dispatch → extract → write → manifest)
|
||||
├─ registry.py extension → extractor family dispatch (lazy, graceful)
|
||||
├─ output_manager.py run-folder + content.md/meta.json/thumb writer
|
||||
├─ naming.py YYYYMMDD-NNN naming + sha256 (reuses meetus convention)
|
||||
└─ extractors/ text, tabular(csv), office(docx/pptx/xlsx), pdf, web(html), image, media(mp4)
|
||||
ctrl/ control plane / operational scripts
|
||||
├─ batch.sh ✅ recursive batch runner (mirrors tree, continues past failures)
|
||||
├─ batch_docs.sh ✅ doocus twin of batch.sh (make docs)
|
||||
├─ transcribe_oneoff.sh 🧰 high-quality re-transcription over an existing run
|
||||
├─ summarize/ 🚧 last step — local-LLM summarization (WIP, on hold)
|
||||
│ ├─ summarize_simple.py minimal map-and-append; reads every referenced frame
|
||||
@@ -60,6 +90,10 @@ ctrl/ control plane / operational scripts
|
||||
│ └─ summarize_meeting.py map→extract(validated facts)→reduce
|
||||
└─ cht/ 🧰 bridge to the separate realtime `cht` project
|
||||
└─ interleave_cht_frames.py whisperx JSON + cht frames/index.json → enhanced.txt
|
||||
ui/ local browser UIs (Vue 3 + Vite), shared framework
|
||||
├─ framework/ ✅ shared component/renderer library + design tokens
|
||||
├─ meetus-app/ ✅ review meeting runs (was ui/app/)
|
||||
└─ doocus-app/ ✅ browse extracted docs + build packages (Gemini/NotebookLM)
|
||||
def/ 📄 design/decision notes, in order (the feature history)
|
||||
README.md 📄 manual for process_meeting.py
|
||||
INDEX.md 📄 this file
|
||||
@@ -74,7 +108,12 @@ local-run.sh 📄 personal scratch invocations (gitignored)
|
||||
`--transcript-formats srt` and writes outputs next to the sources. See `README.md`.
|
||||
- **`meetus/deprecated/`** is no longer imported or reachable from the CLI (its flags
|
||||
were removed and `workflow.py` no longer imports it). Kept for reference only; the
|
||||
realtime continuation of the idea is the separate `cht` project.
|
||||
realtime continuation of the idea is the separate `cht` project. Its only unique
|
||||
dependency (`ollama`) is isolated to the `deprecated` uv group in `pyproject.toml`,
|
||||
so a normal `uv sync --group meetus`/`--group doocus` never installs it.
|
||||
- **Dependencies** are uv feature groups in `pyproject.toml` (no `requirements.txt`):
|
||||
`meetus`, `doocus`, `ocr`, `pdf-render`, `deprecated`. whisper/whisperx are
|
||||
external CLIs (like ffmpeg), installed separately — not uv-managed.
|
||||
- **`ctrl/summarize/`** scripts are standalone; run them under an env with the `openai`
|
||||
client (e.g. `~/wdir/llm/.venv`) against a local OpenAI-compatible server.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user