Appearance
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.0Requirements: 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)