GitHub · by Michael Hunger
neo4jev
Walking a Neo4j graph one hop at a time, each hop a typed choice.
Michael Hunger navigates a Neo4j graph with Jev instead of free-text generation. At each node the outgoing relationships are presented as the options of a Choice — relationship type, relationship properties, target label and properties — and Jev returns a full probability distribution over which one to follow next.
A second question rides in the same request: has the goal been reached? Because the goal check and the hop decision share one round trip, a hop costs exactly one call no matter how many questions are asked of it. Top-k selection over the returned probabilities turns the walk into a beam search, and chains are ranked by the sum of log-probabilities rather than the product, which avoids both float underflow and a bias towards short paths.
The application is schema-agnostic: labels, relationship types and property names are discovered live by introspection and never hardcoded, so it can be pointed at any Neo4j instance through a `.env` file. It ships as a reusable library, three notebooks and a Streamlit application, with results rendered in an interactive `neo4j-viz` graph alongside the surrounding neighbourhood. The default target is the public Neo4j Companies knowledge graph.
The README is unusually careful about provenance, and the care is the point: without an API key each call is still attempted, its failure is displayed verbatim, and the surrounding pipeline runs on explicitly labelled stand-in answers. Nothing is ever presented as model output that did not come from the model.
jexp/neo4jev on GitHub
- Stars
- 85
- Forks
- 8
- Language
- Jupyter Notebook
- Last push
- Sep 18, 2026
Repository created Sep 16, 2026. Counts read from the GitHub API on Sep 22, 2026, and they move daily — quote them with the date.
