You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
langchain/templates/neo4j-cypher-ft
Tomaz Bratanic 8e88ba16a8
Update neo4j template readmes (#12540)
11 months ago
..
neo4j_cypher_ft Format Templates (#12396) 11 months ago
tests Templates (#12294) 11 months ago
README.md Update neo4j template readmes (#12540) 11 months ago
ingest.py notebook fmt (#12498) 11 months ago
main.py Templates (#12294) 11 months ago
poetry.lock Templates (#12294) 11 months ago
pyproject.toml various templates improvements (#12500) 11 months ago

README.md

Neo4j Knowledge Graph: Enhanced mapping from text to database using a full-text index

This template allows you to chat with Neo4j graph database in natural language, using an OpenAI LLM. Its primary purpose is to convert a natural language question into a Cypher query (which is used to query Neo4j databases), execute the query, and then provide a natural language response based on the query's results. The addition of the full-text index ensures efficient mapping of values from text to database for more precise Cypher statement generation. In this example, full-text index is used to map names of people and movies from the user's query with corresponding database entries.

Neo4j database

There are a number of ways to set up a Neo4j database.

Neo4j Aura

Neo4j AuraDB is a fully managed cloud graph database service. Create a free instance on Neo4j Aura. When you initiate a free database instance, you'll receive credentials to access the database.

Environment variables

You need to define the following environment variables

OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
NEO4J_URI=<YOUR_NEO4J_URI>
NEO4J_USERNAME=<YOUR_NEO4J_USERNAME>
NEO4J_PASSWORD=<YOUR_NEO4J_PASSWORD>

Populating with data

If you want to populate the DB with some example data, you can run python ingest.py. This script will populate the database with sample movie data. Additionally, it will create an full-text index named entity, which is used to map person and movies from user input to database values for precise Cypher statement generation.

Installation

# from inside your LangServe instance
poe add neo4j-cypher-ft