>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Hoe U Een Berg Chaotische Documenten Omzet in Rigoureuze Kennisgrafen

Onlangs stuitte ik op een hulpprogramma dat een van de meest vervelende taken bij het werken met grote taalmodellen oplost. Het gaat om het parsen van onbewerkte tekst naar voorspelbare formats zonder kilometerlange prompts te schrijven.

Het project heet Hyper-Extract. Het is een CLI-hulpprogramma en Python-bibliotheek ontworpen om ongestructureerde bestanden om te zetten in getypte datastructuren: van vertrouwde lijsten en Pydantic-modellen tot hypergrafen en spatio-temporele relaties.

Hero & Workflow

Wat Is Er Mis Met Standaard RAG

Een typische naïeve RAG met het opsplitsen van tekst in stukken van 500 tokens en vectordatabase-zoekopdrachten produceert vaak een rommeltje. Complexe relaties tussen entiteiten gaan verloren en de context van gebeurtenissen in de tijd vervaagt. Wanneer je een financieel rapport of wetenschappelijk artikel aan een model probeert te voeren, geeft platte vectorzoekopdracht zelden een nauwkeurig beeld van onderlinge verbanden.

Frameworks zoals GraphRAG of LightRAG hebben geprobeerd dit op te lossen, maar ze integreren in je projecten vanaf nul kan lastig zijn. De auteur van Hyper-Extract besloot kennisextractie-engines te verpakken in een compact command-line hulpprogramma en bibliotheek met kant-en-klare templates.

Wat Er Binnenin Zit En Hoe Het Werkt

Onder de motorkap maakt de bibliotheek gebruik van een driedelige architectuur.

  1. Acht soorten datastructuren. Deze omvatten Pydantic-modellen, eenvoudige lijsten, sets, standaard kennisgrafen, hypergrafen, evenals temporele en spatio-temporele grafen.
  2. Extractie-algoritmen. Het framework ondersteunt KG-Gen, GraphRAG, LightRAG, Hyper-RAG en Cog-RAG-engines.
  3. Kant-en-klare templates. De repository bevat meer dan 80 voorgemaakte YAML-bestanden voor verschillende domeinen: financiën, geneeskunde, recht, wetenschappelijke artikelen.
Knowledge Structures Matrix

Templates werken zonder code. Je neemt simpelweg een kant-en-klaar voorinstelling en specificeert welke velden en relatietypen je wilt extraheren. Bijvoorbeeld, voor een relatiegraf ziet de template eruit als een standaard YAML-manifest met entiteit (entities) en relatie (relations) definities:

language: en
name: Knowledge Graph
type: graph
tags: [general]
description: 'Extract entities and their relationships.'
output:
  entities:
    fields:
    - name: name
      type: str
    - name: type
      type: str
    - name: description
      type: str
  relations:
    fields:
    - name: source
      type: str
    - name: target
      type: str
    - name: type
      type: str
identifiers:
  entity_id: name
  relation_id: '{source}|{type}|{target}'
Architecture

Aan De Slag In Een Paar Minuten

Het hulpprogramma installeert via een moderne package manager uv met letterlijk één commando:

uv tool install hyperextract

Vervolgens moet je een modelprovider configureren. Het hulpprogramma werkt met OpenAI, Anthropic Claude, DeepSeek, Alibaba Cloud Bailian en lokale vLLM-instanties.

Als je DeepSeek of Claude gebruikt, houd dan één detail in gedachten: ze hebben geen eigen embedding API, dus voor vectorzoekopdrachten moet je het embedding-model apart configureren (bijvoorbeeld via een OpenAI-compatibel endpoint):

# Настройка для связки DeepSeek + OpenAI Embeddings
he config llm -p deepseek -k YOUR_DEEPSEEK_API_KEY
he config embedder -p openai -k YOUR_OPENAI_API_KEY

Voor volledig lokale werking zonder gegevens extern te verzenden, kun je vLLM draaien met modellen zoals Qwen en bge-m3:

he config llm -p vllm -u http://localhost:8000/v1 -k dummy -m Qwen/Qwen3.5-9B
he config embedder -p vllm -u http://localhost:8001/v1 -k dummy -m BAAI/bge-m3

Wanneer de configuratie klaar is, begin je met het parsen van het document:

# Извлекаем граф связей из биографии
he parse examples/en/tesla.md -t general/biography_graph -o ./output/ -l en

# Делаем семантический поиск по собранной базе
he search ./output/ "What are Tesla's major achievements?"

# Запускаем интерактивную визуализацию графа прямо в браузере
he show ./output/

Als resultaat van het uitvoeren van het he show commando wordt een interactieve interface gegenereerd waar je de resulterende nodes en relaties kunt verkennen.

AutoGraph Visualization

Als je in Python schrijft, kun je het parsen programmatisch aanroepen via de Template class:

from hyperextract import Template

ka = Template.create("general/biography_graph")

with open("examples/en/tesla.md") as f:
    result = ka.parse(f.read())

result.show()

Handige Functies

Onlangs heeft het project een paar handige integraties toegevoegd die het onderscheiden van gewone parsing-scripts.

Ten eerste, export naar Obsidian. Met één enkel commando he export obsidian ./output/ -o ./vault/ wordt de graaf omgezet in een set van Markdown-notities die via standaard [[вики-ссылки]] met elkaar zijn verbonden. Dit is een redder in nood voor degenen die een kennisbank in Obsidian onderhouden en entiteiten niet handmatig willen overdragen.

Ten tweede, een ingebouwde MCP-server (Model Context Protocol). Door het he-mcp commando uit te voeren, open je toegang tot je kennisbank voor Claude Desktop of IDE-agents. Ze kunnen zoekopdrachten aanroepen, RAG uitvoeren en context rechtstreeks via het standaardprotocol ophalen.

Ten derde, incrementele updates. Als je een nieuw document hebt, hoef je de graaf niet vanaf nul opnieuw op te bouwen. Voeg gewoon het nieuwe bestand toe aan de bestaande directory, en de database wordt aangevuld met nieuwe nodes.

Voor Wie Dit Project Is

Het hulpmiddel is geschikt voor ontwikkelaars die complexe pipelines bouwen over bedrijfsdocumenten en moe zijn van het bestrijden van LLM-hallucinaties in ongestructureerde antwoorden. Het is ook nuttig voor analisten en onderzoekers om snel honderden PDF-pagina's te digitaliseren naar een begrijpelijke structuur.

De repository is netjes georganiseerd, heeft duidelijke documentatie en maakt gebruik van de Apache 2.0-licentie. Als je op zoek bent naar een manier om orde te scheppen in het werken met kennisgrafen en RAG, probeer Hyper-Extract dan op een paar van je eigen documenten. Je kunt de code en templates bekijken in de GitHub-repository van het project.

Gerelateerde projecten