Conversation
Extends Cypher queries in Neo4j graph backend and async MCP implementation to support class-level queries, matching both exact symbol names and their methods (e.g., 'MyClass' and 'MyClass.method'). Updates benchmark indexer to support multi-granular (entity/relation) vector embeddings, including extraction, embedding, and upsert logic. Also ensures retriever outputs results in JSON format for consistency.
Introduces a compute_pagerank method to Neo4jGraphBackend, which calculates PageRank using an in-degree approximation and assigns a base rank to all nodes. The auto-backfill process now triggers PageRank computation after edge population. The fallback logic in Neo4jKnowledgeGraph is updated to ensure all nodes receive a base rank, not just those with incoming edges.
🤖 Augment PR SummarySummary: This PR adds multi-granular indexing support and improves Neo4j-based code graph querying/scoring. Changes:
Technical Notes: Multi-vector indexing is gated by 🤖 Was this summary useful? React with 👍 or 👎 |
| result = tx.run(""" | ||
| MATCH (n:Symbol {collection: $collection}) | ||
| WHERE n.repo = $repo | ||
| OPTIONAL MATCH (n)<-[r:CALLS|IMPORTS]-() |
There was a problem hiding this comment.
In compute_pagerank, in_degree is computed via OPTIONAL MATCH (n)<-[r:CALLS|IMPORTS]-() without constraining r.collection (and r.repo when repo is provided), so edges from other collections/repos could skew the ranking. Consider scoping the incoming relationships to the same collection/repo as n to keep PageRank isolated per graph.
🤖 Was this useful? React with 👍 or 👎
| MATCH (n)<-[r:CALLS|IMPORTS]-() | ||
| MATCH (n:Symbol) | ||
| WHERE n.repo = $repo | ||
| OPTIONAL MATCH (n)<-[r:CALLS|IMPORTS]-() |
There was a problem hiding this comment.
No description provided.