DataIngestionNotSupportedexception to be raised when trying to ingest data to a relationship index.LLMGraphTransformerfor converting text documents into graph documents using an LLM, migrated fromlangchain-experimental.
- Skipped removal of
idproperty from search query results, this field can now present in retrieved documents' metadata.
- Replaced deprecated
apoc.create.addLabelswith native Cypher dynamic label assignment inNeo4jGraph.
- Added LangChain-specific user-agent metadata to Neo4j driver initialization across graph, vectorstore, and checkpoint integrations.
- Fixed
GraphCypherQAChaincompatibility with non-Neo4jGraphStoreimplementations (for exampleAGEGraph) by not requiring the private_enhanced_schemaattribute.
- Added
Neo4jSaver, a synchronous checkpoint saver for persisting LangGraph graph state in Neo4j. - Added
AsyncNeo4jSaver, an asynchronous checkpoint saver for persisting LangGraph graph state in Neo4j.
- Added bearer token auth support to
Neo4jGraph(viatoken). - Added support for Python 3.14.
- Added support for Neo4j Python Driver v6.0.0+.
- Switched project/dependency management from Poetry to uv.
- Updated docstrings/reference-doc formatting for the new LangChain reference docs site (MkDocs/Markdown).
- CI/CD workflows now test with Python 3.14.
Neo4jVectornow handles missingmetadatain retrieval results.- Fixed
Neo4jVector.from_existing_indexretrieval query generation when using multipletext_node_properties. - Fixed issue with
Neo4jChatMessageHistoryusingdatabaserather thandatabase_in itsexecute_querycalls.
- Added
langchain-classicas a dependency.
- Removed
langchainas a dependency. - Removed support for Python 3.9 as
langchain-classicno longer supports it. - CI/CD workflows now test Python versions 3.10 to 3.13 in line with other LangChain integrations.
- Bumped
langchain-coredependency version from^0.3.39to^1.0.0
- Added support for specifying custom database names in
Neo4jChatMessageHistory(not limited to the default"neo4j"). - Introduced an optional
mmrdependency group for maximal marginal relevance search dependencies. - Included
numpyin themmrdependency group.
- Bumped
neo4j-graphragdependency version from^1.5.0to^1.9.0.
- Prevented infinite loops in
CypherQueryCorrector.extract_pathswhenever there was a repeated path in a Cypher query. - Replaced direct
result["text"]indexing withresult.get("text")inNeo4jVector.similarity_search_with_score_by_vector, so missing text fields are handled gracefully instead of raising errors. - Changed an empty-list check in
CypherQueryCorrector.detect_node_variablesso that nodes without an explicit variable are properly skipped instead of misclassifying all labels under an empty variable. - Stopped
Neo4jChatMessageHistoryfrom creating duplicate session nodes. - Schema bug in
Neo4jGraphwhenenhance_schema=Truewhere relationships with boolean properties triggered a malformedRETURN {} AS outputCypher query and prevented graph initialization. - Ensured custom DB names are passed through to
retrieve_vector_index_infoandretrieve_existing_fts_indexinNeo4jVector.
- Renamed the
typeproperty toroleonMessagenodes inNeo4jChatMessageHistory. - Updated
GraphCypherQAChainto use the same schema format asNeo4jGraph. - Replaced code used to query vector and full text indexes in the
vectorstores.neo4j_vectormodule with equivalents from theneo4j-graphragpackage. - Replaced database schema retrieval code in the
graphs.neo4j_graphmodule with equivalents from theneo4j-graphragpackage. - Replaced the Cypher queries in
Neo4jChatMessageHistorywith equivalents from theneo4j-graphragpackage. - Updated the
construct_schemafunction used by theGraphCypherQAChainto use schema retrieval functions from theneo4j-graphragpackage. - Replaced the legacy
extract_cypherfunction with the improved version fromneo4j-graphragpackage.
- Introduced a
delete_session_nodeparameter to theclearmethod inNeo4jChatMessageHistoryfor optional deletion of theSessionnode. - Added
neo4j-graphragto the dependencies.
- Optional parameter to specify embedding dimension in
Neo4jVector, avoiding the need to query the embedding model.
- Made the
sourceparameter ofGraphDocumentoptional and updated related methods to support this. - Suppressed AggregationSkippedNull warnings raised by the Neo4j driver in the
Neo4jGraphclass when fetching the enhanced_schema. - Modified the
Neo4jGraphclass's enhanced schema Cypher query to utilize the apoc.meta.graph procedure instead of apoc.meta.graphSample. - Updated
GraphStoreto be a Protocol, enabling compatibility withGraphCypherQAChainwithout requiring inheritance.
- Resolved syntax errors in
GraphCypherQAChainby ensuring node labels with spaces are correctly quoted in Cypher queries. - Added missing Lucene special character '/' to the list of characters escaped in
remove_lucene_chars.
- Enhanced Neo4j driver connection management with more robust error handling.
- Simplified connection state checking in Neo4jGraph.
- Introduced
effective_search_ratioparameter in Neo4jVector to enhance query accuracy by adjusting the candidate pool size during similarity searches.
- Removed deprecated LLMChain from GraphCypherQAChain to resolve instantiation issues with the use_function_response parameter.
- Removed unnecessary # type: ignore comments, improving type safety and code clarity.
- Removed dependency on LangChain Community package by integrating necessary components directly into the LangChain Neo4j codebase.
- Fixed bugs in the Neo4jVector and GraphCypherQAChain classes preventing these classes from working with versions < 5.23 of Neo4j.
- Migrated all Neo4j-related code, including tests and integration tests, from the LangChain Community package to this package.