Skip to main content

llama-index packs nebulagraph_query_engine integration

Project description

NebulaGraph Query Engine Pack

This LlamaPack creates a NebulaGraph 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 NebulaGraphQueryEnginePack --download-dir ./nebulagraph_pack

You can then inspect the files at ./nebulagraph_pack and use them as a template for your own project!

Code Usage

You can download the pack to a ./nebulagraph_pack directory:

from llama_index.core.llama_pack import download_llama_pack

# download and install dependencies
NebulaGraphQueryEnginePack = download_llama_pack(
    "NebulaGraphQueryEnginePack", "./nebulagraph_pack"
)

From here, you can use the pack, or inspect and modify the pack in ./nebulagraph_pack.

Then, you can set up the pack like so:

pip install llama-index-readers-wikipedia
# Load the docs (example of Paleo diet from Wikipedia)

from llama_index.readers.wikipedia import WikipediaReader

loader = WikipediaReader()
docs = loader.load_data(pages=["Paleolithic diet"], auto_suggest=False)
print(f"Loaded {len(docs)} documents")

# get NebulaGraph credentials (assume it's stored in credentials.json)
with open("credentials.json") as f:
    nebulagraph_connection_params = json.load(f)
    username = nebulagraph_connection_params["username"]
    password = nebulagraph_connection_params["password"]
    ip_and_port = nebulagraph_connection_params["ip_and_port"]

space_name = "paleo_diet"
edge_types, rel_prop_names = ["relationship"], ["relationship"]
tags = ["entity"]
max_triplets_per_chunk = 10

# create the pack
nebulagraph_pack = NebulaGraphQueryEnginePack(
    username=username,
    password=password,
    ip_and_port=ip_and_port,
    space_name=space_name,
    edge_types=edge_types,
    rel_prop_names=rel_prop_names,
    tags=tags,
    max_triplets_per_chunk=max_triplets_per_chunk,
    docs=docs,
)

Optionally, you can pass in the query_engine_type from NebulaGraphQueryEngineType to construct NebulaGraphQueryEnginePack. If query_engine_type is not defined, it defaults to Knowledge Graph vector based entity retrieval.

from llama_index.core.packs.nebulagraph_query_engine.base import (
    NebulaGraphQueryEngineType,
)

# create the pack
nebulagraph_pack = NebulaGraphQueryEnginePack(
    username=username,
    password=password,
    ip_and_port=ip_and_port,
    space_name=space_name,
    edge_types=edge_types,
    rel_prop_names=rel_prop_names,
    tags=tags,
    max_triplets_per_chunk=max_triplets_per_chunk,
    docs=docs,
    query_engine_type=NebulaGraphQueryEngineType.KG_HYBRID,
)

NebulaGraphQueryEnginePack is a enum defined as follows:

class NebulaGraphQueryEngineType(str, Enum):
    """NebulaGraph 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 = nebulagraph_pack.run("Tell me about the benefits of paleo diet.")

You can also use modules individually.

# call the query_engine.query()
query_engine = nebulagraph_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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file llama_index_packs_nebulagraph_query_engine-0.4.1.tar.gz.

File metadata

File hashes

Hashes for llama_index_packs_nebulagraph_query_engine-0.4.1.tar.gz
Algorithm Hash digest
SHA256 8849b53e22c27091477408547a7323fb617a9d586f6501f043ddb70a25e43443
MD5 9f3de9e9cee6c5c0826eeabaab6da1a4
BLAKE2b-256 317156633d31a47f4713a3643830333aa2c68f56a645c7656130e9286ce97baa

See more details on using hashes here.

File details

Details for the file llama_index_packs_nebulagraph_query_engine-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_index_packs_nebulagraph_query_engine-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d9935302ddfb129f90e2893e072a769bbf8c6d377c30504ef5e1a60f25ad7b1c
MD5 15420f086c228b34c8322adc78cf4308
BLAKE2b-256 7b9f05f93ab8956a2ad2af2bf39db4a07aa2cb2d0b6a1ffdb46236fb95df4d95

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page