neo4j / neo4j/neo4j-graphrag-python

Allow async driver in retrievers

Open
#406 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
Python
Stars
1.3k
Forks
246
Avg merge
1d 8h
Merged PRs (30d)
11

Description

Hi :)
I noticed that the retrievers (e.g. Text2CypherRetriever, VectorCypherRetriever) only accept the synchronous version of the Neo4J driver.

We are refactoring our codebase and would like to move entirely to async execution instead of having to spawn threads in order to not block the whole application.

Because of the above mentioned limitation, we have to keep using both, the sync and async version of the Neo4J driver, which is not ideal.

Is an async version of these retrievers planned?

Thanks in advance for your answer :)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating Text2CypherRetriever and VectorCypherRetriever and tracing how they use the synchronous Neo4j driver. Compare those entry points with the async driver API and determine the intended async interface. Done means the retrievers can execute asynchronously without requiring both driver variants or spawning threads.

Written by the indexing model from the issue text.

Assessment

Tech stack
neo4j, python
Domain
backend-api-design, databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.