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:
- DISCOVER — recursive walk, sha256 + MIME detection, symlink guards, archive-bomb limits.
- CLASSIFY — MIME → PipelineKind (document / image / audio / video / structured / text / archive / skip).
- EXTRACT — type-specific extractors produce a normalised Artifact (DocumentArtifact, ImageArtifact, etc.).
- NORMALIZE — text encoding, length caps, language hints.
- ENTITY_EXTRACTION — LLM extracts typed entities via temperature=0 structured output, schema-validated.
- CLAIM_EXTRACTION — same, claims (subject, predicate, object, evidence).
- RELATIONSHIP_EXTRACTION — typed relationships between entities.
- EVENT_EXTRACTION — dated occurrences.
- VALIDATION — claims without evidence are queued for review.
- PROVENANCE — every record tracks the source + artifact + the extractor version that produced it.
- STORE — SQLite persistence (WAL, foreign keys, busy timeout).
- 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
- docs/ARCHITECTURE.md
- docs/DATA_MODEL.md
- docs/CONFIGURATION.md
- docs/PROVIDERS.md
- docs/EXTENDING.md
- docs/VAULT.md
- docs/SECURITY.md
- docs/PRIVACY.md
- docs/TESTING.md
- docs/DEVELOPMENT.md
- docs/CONTRIBUTING.md
- docs/ROADMAP.md
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai_knowledge_engineer-0.2.0.tar.gz | 192.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.