docling-studio/document-parser/infra
Pier-Jean Malandrino c2550867b7 feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README
ChunkWriter mirrors chunks into Neo4j after OpenSearch indexing, creating
HAS_CHUNK edges and DERIVED_FROM back-references to the source Elements
(via doc_items propagated from the local chunker).

Graph API: GET /api/documents/{id}/graph returns a cytoscape-shaped
payload with nodes + edges for Document / Element / Page / Chunk.
Hard cap at 200 pages returns HTTP 413 per design §8.4.

Frontend: new Graph tab in Studio results, rendered with Cytoscape.js +
dagre layout (lazy-loaded, ~175 KB gz). Legend, node styling per element
label, directional edges styled per edge type.

README gains a Neo4j section with the schema, three demo Cypher
queries, and env vars. Backend tests skip cleanly when the neo4j python
package is not installed locally.

Refs #186
2026-04-29 14:00:00 +02:00
..
neo4j feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README 2026-04-29 14:00:00 +02:00
__init__.py Refactor backend to hexagonal architecture for converter extensibility 2026-03-31 10:34:07 +02:00
bbox.py Move bbox.py from domain/ to infra/ and unify coordinate logic 2026-04-03 13:17:26 +02:00
embedding_client.py feat: add embedding microservice and EmbeddingService port 2026-04-10 20:53:24 +02:00
local_chunker.py feat(neo4j): Day 3 — ChunkWriter, graph API, GraphView, README 2026-04-29 14:00:00 +02:00
local_converter.py refactor: centralize magic numbers for page dimensions, limits, and timeout (#168) 2026-04-29 14:00:00 +02:00
opensearch_store.py refactor: centralize magic numbers for page dimensions, limits, and timeout (#168) 2026-04-29 14:00:00 +02:00
rate_limiter.py Add in-memory rate limiting middleware 2026-04-03 13:56:05 +02:00
serve_converter.py feat: enable chunking in remote (Docling Serve) mode 2026-04-29 14:00:00 +02:00
settings.py feat(neo4j): Day 1 — compose service, driver, schema bootstrap 2026-04-29 14:00:00 +02:00