Skip to content

Elsai Graph Generator

Package: elsai-graph-generator  v0.1.0

Stores knowledge graphs in Neo4j, manages vector indexes for semantic search, and generates embeddings for graph entities.

Installation

bash
pip install --extra-index-url https://core-packages.elsai.ai/root/elsai-graph-generator/ elsai-graph-generator==0.1.0

Requirements: Python >= 3.10, Neo4j instance (local or hosted)


Neo4jConnector

Manages the database connection and Cypher query execution.

python
from elsai_graph_generator import Neo4jConnector

connector = Neo4jConnector(
    uri="bolt://localhost:7687",
    user="neo4j",
    password="your-password",
    database="neo4j",
    verbose=True,
)

success, message = connector.connect()

# Execute a custom Cypher query
success, message, results = connector.execute_query(
    "MATCH (n) RETURN count(n) AS node_count"
)

# Database statistics
stats = connector.get_database_stats()
print(stats)

GraphStorage

Saves and manages graph data within Neo4j.

python
from elsai_graph_generator import GraphStorage

storage = GraphStorage(connector, verbose=True)

# Store the full graph (output from elsai-graph-constructor)
success, message = storage.store_graph(graph_data, clear_existing=True)

# Incrementally add nodes and edges
storage.add_node({"id": "Python", "label": "Python", "type": "Skill"})
storage.add_edge({"from": "John_Doe", "to": "Python", "type": "HAS_SKILL"})

EmbeddingManager

Generates and manages vector embeddings for graph entities, enabling semantic similarity search.

python
from elsai_graph_generator import EmbeddingManager
from elsai_embeddings.azure_openai import AzureOpenAIEmbeddingModel

embedding_model = AzureOpenAIEmbeddingModel(...)

embedding_manager = EmbeddingManager(connector, embedding_model, verbose=True)

# Create a vector index in Neo4j
embedding_manager.create_vector_index("entity_embeddings")

# Generate embeddings for all nodes (batched)
embedding_manager.embed_nodes(batch_size=10)

# Semantic similarity search
success, message, results = embedding_manager.find_similar_nodes(
    query_text="software engineer",
    top_k=5,
)

for node in results:
    print(node["label"], node["score"])

EmbeddingManager supports Azure OpenAI, elsai-embeddings, and Bedrock embedding models.


Full pipeline

python
from elsai_graph_constructor import GraphConstructor
from elsai_graph_generator import Neo4jConnector, GraphStorage, EmbeddingManager

# 1. Build graph from text
constructor = GraphConstructor(llm=llm)
_, _, graph_data = constructor.construct_graph(chunks=my_chunks)

# 2. Connect to Neo4j
connector = Neo4jConnector(uri="bolt://localhost:7687", user="neo4j", password="pw")
connector.connect()

# 3. Store
storage = GraphStorage(connector)
storage.store_graph(graph_data, clear_existing=True)

# 4. Embed for semantic search
em = EmbeddingManager(connector, embedding_model)
em.create_vector_index("entity_embeddings")
em.embed_nodes(batch_size=20)

Copyright © 2026 Elsai Foundry.