Query expansion using graph structures in LLMs
We can leverage graph structures to expand queries and improve retrieval. Let’s implement a simple query expansion technique:
import random class QueryExpansionGraphRAG(AdvancedGraphRAG): def expand_query( self, query: str, num_expansions: int = 2 ) -> List[str]: initial_nodes = super().retrieve(query, k=3) expanded_queries = [query] for node in initial_nodes: neighbors = list(self.graph.neighbors(node)) if neighbors: random_neighbor = random.choice(neighbors...