autogen.agentchat.contrib.graph_rag.neo4j_graph_query_engine.Neo4jGraphQueryEngine
Neo4jGraphQueryEngine
This class serves as a wrapper for a property graph query engine backed by LlamaIndex and Neo4j,
facilitating the creating, connecting, updating, and querying of LlamaIndex property graphs.
It builds a property graph Index from input documents,
storing and retrieving data from the property graph in the Neo4j database.
It extracts triplets, i.e., [entity] -> [relationship] -> [entity] sets,
from the input documents using llamIndex extractors.
Users can provide custom entities, relationships, and schema to guide the extraction process.
If strict is True, the engine will extract triplets following the schema
of allowed relationships for each entity specified in the schema.
It also leverages LlamaIndex’s chat engine which has a conversation history internally to provide context-aware responses.
For usage, please refer to example notebook/agentchat_graph_rag_neo4j.ipynb
Initialize a Neo4j Property graph.
Please also refer to https://docs.llamaindex.ai/en/stable/examples/property_graph/graph_store/
Name | Description |
---|---|
host | Type: str Default: ‘bolt |
port | Type: int Default: 7687 |
database | Type: str Default: ‘neo4j’ |
username | Type: str Default: ‘neo4j’ |
password | Type: str Default: ‘neo4j’ |
llm | Type: ForwardRef(‘LLM’) | None Default: None |
embedding | Type: ForwardRef(‘BaseEmbedding’) | None Default: None |
entities | Type: ForwardRef(‘TypeAlias’) | None Default: None |
relations | Type: ForwardRef(‘TypeAlias’) | None Default: None |
schema | Type: dict[str, str] | list[‘Triple’] | None Default: None |
strict | Type: bool | None Default: False |
Instance Methods
add_records
Add new records to the knowledge graph. Must be local files.
Name | Description |
---|---|
new_records | List of new documents to add. Type: list[Document] |
Type | Description |
---|---|
bool | bool: True if successful, False otherwise. |
connect_db
Connect to an existing knowledge graph database.
init_db
Build the knowledge graph with input documents.
Parameters:Name | Description |
---|---|
input_doc | Type: list[Document]Â |Â None Default: None |
query
Query the property graph with a question using LlamaIndex chat engine.
We use the condense_plus_context chat mode
which condenses the conversation history and the user query into a standalone question,
and then build a context for the standadlone question
from the property graph to generate a response.
Name | Description |
---|---|
question | a human input question. Type: str |
n_results | number of results to return. Type: int Default: 1 |
**kwargs | Type: Any |
Type | Description |
---|---|
GraphStoreQueryResult | A GrapStoreQueryResult object containing the answer and related triplets. |