llama-index packs neo4j_query_engine integration
Project description
Neo4j Query Engine Pack
This LlamaPack creates a Neo4j query engine, and executes its query
function. This pack offers the option of creating multiple types of query engines, namely:
- Knowledge graph vector-based entity retrieval (default if no query engine type option is provided)
- Knowledge graph keyword-based entity retrieval
- Knowledge graph hybrid entity retrieval
- Raw vector index retrieval
- Custom combo query engine (vector similarity + KG entity retrieval)
- KnowledgeGraphQueryEngine
- KnowledgeGraphRAGRetriever
CLI Usage
You can download llamapacks directly using llamaindex-cli
, which comes installed with the llama-index
python package:
llamaindex-cli download-llamapack Neo4jQueryEnginePack --download-dir ./neo4j_pack
You can then inspect the files at ./neo4j_pack
and use them as a template for your own project!
Code Usage
You can download the pack to a ./neo4j_pack
directory:
from llama_index.core.llama_pack import download_llama_pack
# download and install dependencies
Neo4jQueryEnginePack = download_llama_pack(
"Neo4jQueryEnginePack", "./neo4j_pack"
)
From here, you can use the pack, or inspect and modify the pack in ./neo4j_pack
.
Then, you can set up the pack like so:
# Load the docs (example of Paleo diet from Wikipedia)
from llama_index import download_loader
WikipediaReader = download_loader("WikipediaReader")
loader = WikipediaReader()
docs = loader.load_data(pages=["Paleolithic diet"], auto_suggest=False)
print(f"Loaded {len(docs)} documents")
# get Neo4j credentials (assume it's stored in credentials.json)
with open("credentials.json") as f:
neo4j_connection_params = json.load(f)
username = neo4j_connection_params["username"]
password = neo4j_connection_params["password"]
url = neo4j_connection_params["url"]
database = neo4j_connection_params["database"]
# create the pack
neo4j_pack = Neo4jQueryEnginePack(
username=username, password=password, url=url, database=database, docs=docs
)
Optionally, you can pass in the query_engine_type
from Neo4jQueryEngineType
to construct Neo4jQueryEnginePack
. If query_engine_type
is not defined, it defaults to Knowledge Graph vector based entity retrieval.
from llama_hub.llama_packs.neo4j_query_engine.base import Neo4jQueryEngineType
# create the pack
neo4j_pack = Neo4jQueryEnginePack(
username=username,
password=password,
url=url,
database=database,
docs=docs,
query_engine_type=Neo4jQueryEngineType.KG_HYBRID,
)
Neo4jQueryEnginePack
is a enum defined as follows:
class Neo4jQueryEngineType(str, Enum):
"""Neo4j query engine type"""
KG_KEYWORD = "keyword"
KG_HYBRID = "hybrid"
RAW_VECTOR = "vector"
RAW_VECTOR_KG_COMBO = "vector_kg"
KG_QE = "KnowledgeGraphQueryEngine"
KG_RAG_RETRIEVER = "KnowledgeGraphRAGRetriever"
The run()
function is a light wrapper around query_engine.query()
, see a sample query below.
response = neo4j_pack.run("Tell me about the benefits of paleo diet.")
You can also use modules individually.
# call the query_engine.query()
query_engine = neo4j_pack.query_engine
response = query_engine.query("query_str")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for llama_index_packs_neo4j_query_engine-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | eca1f0c4688ee617e8e657fe2c69b52ef33a5c3df8dec319cdeaff592752db64 |
|
MD5 | 341c23d2c1bdcb6910145043d77dff3e |
|
BLAKE2b-256 | afa30514454dd16e90f9e7ed315f4e545b2947302a6cb5da7a76656b79057fe1 |
Hashes for llama_index_packs_neo4j_query_engine-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d87a29f3a31f5ee20a21f76c9f5307cb16046373b95852b372a4d2dda95aa2f2 |
|
MD5 | 2cfeaab1e230075b6819acb6929a0179 |
|
BLAKE2b-256 | 123c99a2666ef9dab8222a451410bcfb87a578bed409eb14f48b2851e94cfef3 |