ragleap-graph (Java) 0.2.0
Maven Central: io.github.antonyrag/ragleap-graph:0.2.0. The only required runtime dependency is jackson-databind; ragleap-rag is optional and only needed for the two adapters.
New since 0.1.0
- LLM extraction (optional): entity and relation extraction through a small
LlmClientinterface, withExtractionConfig(regex or llm, entity types, relation ontology, cross-chunk relations, deduplication). Regex extraction stays the default. - Entity deduplication (
EntityDeduplicator), with a port of Python's difflib similarity. upsertDocumentnow counts typed relations, runs the cross-chunk pass and merges near-duplicate entity names when configured.GraphRetrieverandGraphRetrievalConfig: hybrid (vector plus graph) or graph-only retrieval with chunk and graph-path citations;GraphSearch(implemented byGraphIndex) andVectorSearchinterfaces.- Optional adapters over ragleap-rag:
RagLeapGenerationClient(for LLM extraction) andRagLeapVectorSearch(for the vector side of retrieval). - One-time backfills (
backfillUserIdDefaults,backfillCompositeKey,backfillCoOccursWithCompositeKey) and the schema migration runner (Migration,MigrationRunner, two registered migrations).
How it was verified
- Compared with the real Python ragleap-graph 0.9.0 (pinned commit 226fa4d) by running the Python code against fakes that record every call: difflib similarity on 422 string pairs, 25 extraction-config cases, 59 entity and 42 relation extractor scenarios, 39 upsert-with-extraction scenarios (every Cypher statement and parameter, every model call), 24 backfill and 19 migration-runner scenarios, 28 retrieval scenarios and 21 retrieval-config cases. 27 deliberate breaks (mutation checks) across the new slices were each caught by the parity tests.
- Release build: 129 tests, 0 failures, 31 skipped (parity tests need the Python-generated fixtures and live tests need a Neo4j server, so both skip in a plain build and in CI). Full local run with fixtures and a live Neo4j 5.26.29 Community: 129 tests, 0 failures, 0 skipped.
- After release, the published jar was resolved from Maven Central in a clean project (this jar plus jackson only) and exercised against a live Neo4j: health check, upsert, backfill and graph-only retrieval.
Not live-verified
- LLM extraction against any real model provider (no paid keys): tested with scripted model answers and a local fake OpenAI-style server only.
- Any Neo4j other than 5.26.29 Community, single server (bookmarks are not passed along).
RagLeapVectorSearch.of(RagLeap)is not run against a live ragleap-rag facade; its conversion and error handling are tested with a stand-in.
Not ported yet
- The Postgres audit writer (a no-op audit sink is the default).