Package version: 3.18.5
Package: lexical-graph
Python version: 3.12
OS: Linux
Description
#437 moved the traversal-based read paths onto ChunkStore. The semantic-guided stack still reads chunk.value off the graph, so it breaks once a deployment configures an external chunk store and ChunkGraphBuilder stops writing that property (indexing/build/chunk_graph_builder.py:80-88).
Two queries fetch chunk nodes with no property list, which defaults to ['*'] (storage/graph/graph_utils.py:130) and drags the full text back on every call:
retrieval/utils/chunk_utils.py:60 — get_chunks_query
retrieval/utils/statement_utils.py:124 — get_statements_query
Three consumers index ['value'] on the result and raise KeyError once the property is gone:
retrieval/retrievers/deprecated/semantic_guided_chunk_retriever.py:173
retrieval/retrievers/deprecated/semantic_guided_retriever.py:218
retrieval/post_processors/statement_enhancement.py:103, which feeds that text to the LLM as synthesis context
StatementEnhancementPostProcessor is not deprecated, and it ships in the docs, an example notebook, and the integration tests.
#437 skipped get_chunks_query on purpose: "left as-is since its only caller is deprecated." That held while the property was still written.
Steps to reproduce
Needs the S3 backend from #465. InGraphChunkStore is the only store on main and it still writes chunk.value.
Set GraphRAGConfig.s3_chunk_store, index a document set, then query through SemanticGuidedRetriever — with StatementEnhancementPostProcessor enabled, or with a chunk retriever. Both hit KeyError: 'value'.
Expected
The semantic-guided paths resolve chunk text through ChunkStore, the way keyword_vss_provider.py and traversal_based_base_retriever.py do.
Proposed fix
- Wire
statement_enhancement.py to ChunkStore.
- Wire the semantic-guided retrievers, or delete them along with
get_chunks_query, which has no other caller.
- Name the properties in whichever
node_result calls survive, so these queries stop pulling text they may not use.
This should land before an external chunk store becomes the default.
Package version: 3.18.5
Package: lexical-graph
Python version: 3.12
OS: Linux
Description
#437 moved the traversal-based read paths onto
ChunkStore. The semantic-guided stack still readschunk.valueoff the graph, so it breaks once a deployment configures an external chunk store andChunkGraphBuilderstops writing that property (indexing/build/chunk_graph_builder.py:80-88).Two queries fetch chunk nodes with no property list, which defaults to
['*'](storage/graph/graph_utils.py:130) and drags the full text back on every call:retrieval/utils/chunk_utils.py:60—get_chunks_queryretrieval/utils/statement_utils.py:124—get_statements_queryThree consumers index
['value']on the result and raiseKeyErroronce the property is gone:retrieval/retrievers/deprecated/semantic_guided_chunk_retriever.py:173retrieval/retrievers/deprecated/semantic_guided_retriever.py:218retrieval/post_processors/statement_enhancement.py:103, which feeds that text to the LLM as synthesis contextStatementEnhancementPostProcessoris not deprecated, and it ships in the docs, an example notebook, and the integration tests.#437 skipped
get_chunks_queryon purpose: "left as-is since its only caller is deprecated." That held while the property was still written.Steps to reproduce
Needs the S3 backend from #465.
InGraphChunkStoreis the only store onmainand it still writeschunk.value.Set
GraphRAGConfig.s3_chunk_store, index a document set, then query throughSemanticGuidedRetriever— withStatementEnhancementPostProcessorenabled, or with a chunk retriever. Both hitKeyError: 'value'.Expected
The semantic-guided paths resolve chunk text through
ChunkStore, the waykeyword_vss_provider.pyandtraversal_based_base_retriever.pydo.Proposed fix
statement_enhancement.pytoChunkStore.get_chunks_query, which has no other caller.node_resultcalls survive, so these queries stop pulling text they may not use.This should land before an external chunk store becomes the default.