Skip to main content

knowledge-engineer

Local-first, multimodal knowledge ingestion and extraction framework.

The engine walks a directory of source files, extracts structured artifacts (PDF, DOCX, PPTX, XLSX, CSV, JSON, HTML, Markdown, plain text, images, audio, video), runs knowledge extraction with a local LLM, deduplicates and detects contradictions, and writes the result as a Markdown vault (Obsidian-compatible) plus a JSON dump.

Domain lives in profiles — the same engine powers a personal archive, a software repository, or a research corpus. v0.1 ships generic, personal, software, and research profiles.

What it is not

  • It is not an Obsidian plugin. It exports an Obsidian-compatible vault, but the engine itself is a standalone CLI + REST API.
  • It is not a personal-life tool by default. Personal archival is one of four profiles; the engine is domain-independent.
  • It is not a cloud service. v0.1 runs entirely on local files. Cloud providers are documented as a future extension point.
  • It is not magic. It cannot extract knowledge from files it cannot read; OCR requires a real OCR provider; vision captioning requires a real vision provider. Providers that are not configured fail with ProviderNotConfiguredError — they never silently fabricate output.

Installation

Requires Python 3.11+.

python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"

Optional OCR / vision / transcription dependencies are NOT bundled:

# OCR
brew install tesseract        # macOS
pip install pytesseract

# Vision
pip install clip-onnx         # future provider; v0.1 ships null only

# Transcription
pip install faster-whisper

Quick start

# 1. Initialize a project skeleton
knowledge-engineer init ./my-project

# 2. Scan a directory into the SQLite inventory
knowledge-engineer scan ./my-project/sample-data --db ./my-project/data/knowledge.db

# 3. Run the pipeline (discovery -> classify -> extract -> knowledge -> vault)
knowledge-engineer process \
    --db ./my-project/data/knowledge.db \
    --profile generic \
    --vault ./my-project/vault \
    --output-format markdown

# 4. Inspect
knowledge-engineer status --db ./my-project/data/knowledge.db
knowledge-engineer review  --db ./my-project/data/knowledge.db

# 5. Export
knowledge-engineer export \
    --db ./my-project/data/knowledge.db \
    --vault ./my-project/vault \
    --format obsidian   # or markdown | json

What it does on a corpus

The pipeline runs these stages per source file:

  1. DISCOVER — recursive walk, sha256 + MIME detection, symlink guards, archive-bomb limits.
  2. CLASSIFY — MIME → PipelineKind (document / image / audio / video / structured / text / archive / skip).
  3. EXTRACT — type-specific extractors produce a normalised Artifact (DocumentArtifact, ImageArtifact, etc.).
  4. NORMALIZE — text encoding, length caps, language hints.
  5. ENTITY_EXTRACTION — LLM extracts typed entities via temperature=0 structured output, schema-validated.
  6. CLAIM_EXTRACTION — same, claims (subject, predicate, object, evidence).
  7. RELATIONSHIP_EXTRACTION — typed relationships between entities.
  8. EVENT_EXTRACTION — dated occurrences.
  9. VALIDATION — claims without evidence are queued for review.
  10. PROVENANCE — every record tracks the source + artifact + the extractor version that produced it.
  11. STORE — SQLite persistence (WAL, foreign keys, busy timeout).
  12. EXPORT — Markdown, Obsidian-compatible, or JSON.

Each stage records its outcome in processing(source_id, stage) so the pipeline is resumable and auditable.

Provider model

Each capability has an interface:

Capability Interface v0.1 default To enable
LLM providers.llm.LLMProvider Ollama (real) pip install ollama + start daemon
OCR providers.ocr.OCRProvider NullProvider pip install pytesseract + brew install tesseract
Vision providers.vision.VisionProvider NullProvider future: clip-onnx, ollama-vision
Transcription providers.transcription.Transcription NullProvider pip install faster-whisper + model
Embeddings providers.embeddings.Embeddings NullProvider future: sentence-transformers

Null providers raise ProviderNotConfiguredError when asked to do work. This is the framework's honesty contract.

Documentation

License

MIT. See LICENSE.

Metadata

Release files for AI-Knowledge-Engineer 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AI-Knowledge-Engineer 0.2.0
File Size Uploaded Provenance
ai_knowledge_engineer-0.2.0.tar.gz 192.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for AI-Knowledge-Engineer 0.2.0
File Interpreter ABI Platform
ai_knowledge_engineer-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 443.2 kB

Release files / ai_knowledge_engineer-0.2.0.tar.gz

Download URL ai_knowledge_engineer-0.2.0.tar.gz
Size 192.1 kB
Tags Source
SHA-256 checksum
How to use checksums
432346b12af77a26937dec9287bfc07ab7482acb6588c94cc86965821037a061
BLAKE2b-256 checksum
How to use checksums
326fe1f2d82cdd4e2d18fe43cce798cd28f23f3e712f265ff460218c00711642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / ai_knowledge_engineer-0.2.0-py3-none-any.whl

Download URL ai_knowledge_engineer-0.2.0-py3-none-any.whl
Size 251.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8ae01546a5f03fefbb45b73e63e70d8649c71f1e15728b27e6b1d8925537958
BLAKE2b-256 checksum
How to use checksums
90c7bca49e026bf4fa9531b6f689504aa91b85ab2faefeacebd90ad5fffa99a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for AI-Knowledge-Engineer 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page