-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverify_graph.py
More file actions
42 lines (36 loc) · 1.3 KB
/
Copy pathverify_graph.py
File metadata and controls
42 lines (36 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import asyncio
import os
from typing import List, Dict, Any, Optional
from agent.core.neo4j_client import Neo4jClient
from dotenv import load_dotenv
async def verify():
load_dotenv()
neo4j = Neo4jClient()
print(f"Connecting to Neo4j: {os.getenv('NEO4J_URI')}")
query = """
MATCH (r:Repository)
OPTIONAL MATCH (r)-[:CONTAINS]->(f:File)
OPTIONAL MATCH (f)<-[:PART_OF]-(c:Chunk)
RETURN r.name as repo, count(DISTINCT f) as file_count, count(DISTINCT c) as chunk_count
"""
try:
async with neo4j.driver.session() as session:
result = await session.run(query)
records = await result.data()
print(f"✅ Knowledge Graph Full Discovery:")
if not records:
print(" - (No nodes found at all)")
for r in records:
print(f" - Labels: {r['labels']}, Count: {r['count']}")
except Exception as e:
print(f"❌ Error querying Neo4j: {e}")
finally:
await neo4j.close()
if __name__ == "__main__":
import sys
import selectors
if sys.platform == 'win32':
loop_factory = lambda: asyncio.SelectorEventLoop(selectors.SelectSelector())
asyncio.run(verify(), loop_factory=loop_factory)
else:
asyncio.run(verify())