import os
import pandas as pd
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import SimpleDirectoryReader, KnowledgeGraphIndex
from llama_index.core.graph_stores import SimpleGraphStore
from llama_index.core import Document
# Create a node parser
node_parser = SentenceSplitter()
# Create an empty index
index = KnowledgeGraphIndex(
[],
)
# Prepare triplets
df = pd.read_csv("triplets.csv")
grouped = df.groupby("Source").apply(lambda x: list(zip(x["Subject"], x["Predicate"], x["Object"])))
# Create a knowledge graph from the triplets
for node, triplets in grouped.items():
document = Document(text=node)
node = node_parser.get_nodes_from_documents([document])[0]
for triplet in triplets:
index.upsert_triplet_and_node(triplet, node)
# Query your index
query_engine = index.as_query_engine(
include_text=False, response_mode="tree_summarize"
)
response = query_engine.query(
"Tell me more about <YOUR QUESTION HERE>",
)
print(response.response)