Graph retrieval
Project description
GraphRetrieval
GraphRetrieval is a Python library designed for advanced text retrieval and knowledge graph querying. It supports various models and techniques to enable efficient and accurate information retrieval from large text corpora and knowledge bases.
Installation
pip install -e git+https://github.com/jayavibhavnk/GraphRetrieval.git#egg=GraphRetrieval
or
pip install GraphRetrieval
Usage Setting Up Environment Variables
Before using the library, set up the necessary environment variables for Neo4j and OpenAI:
import os
os.environ["NEO4J_URI"] = "add your Neo4j URI here"
os.environ["NEO4J_USERNAME"] = "add your Neo4j username here"
os.environ["NEO4J_PASSWORD"] = "add your Neo4j password here"
os.environ['OPENAI_API_KEY'] = "add your OpenAI API key here"
GraphRAG
GraphRAG is used to create and query graphs based on text documents.
Example
import GraphRetrieval
from GraphRetrieval import GraphRAG
grag = GraphRAG()
grag.create_graph_from_file('add file path here')
# Query using the default A* search
print(grag.queryLLM("Ask your query here"))
# Switch to greedy search
grag.retrieval_model = "greedy"
print(grag.queryLLM("Ask your query here"))
KnowledgeRAG
KnowledgeRAG integrates with a knowledge graph and supports hybrid searches combining structured and unstructured data.
Example
from GraphRetrieval import KnowledgeRAG
from langchain_community.graphs import Neo4jGraph
graph = Neo4jGraph()
gr = KnowledgeRAG()
# Initialize graph
gr.init_graph(graph)
# Create the graph chain
gchain = gr.graphChain()
# Query the graph chain
print(gchain.invoke({"question": "Ask your query here"}))
# Hybrid search using Neo4j vector index
gr.init_neo4j_vector_index()
gr.hybrid = True
print(gchain.invoke({"question": "Ask your query here"}))
Ingesting Data into Graph
Ingest large text data into the knowledge graph.
text = "enter text here"
from langchain_text_splitters import CharacterTextSplitter
text_splitter = CharacterTextSplitter(
separator="
",
chunk_size=1000,
chunk_overlap=200,
length_function=len,
is_separator_regex=False,
)
docs1 = text_splitter.create_documents([text])
docs = gr.generate_graph_from_text(docs1)
gr.ingest_data_into_graph(docs)
gr.init_neo4j_vector_index()
print(gchain.invoke({"question": "Ask your query here"}))
Hybrid Search with GraphRetrieval and Knowledge Base
Combine GraphRAG and KnowledgeRAG for hybrid search.
gr.vector_index = grag
gr.hybrid = True
print(gchain.invoke({"question": "Ask your query here"}))
Image Graph RAG
Use directories of images for searching similar images.
image_graph_rag = ImageGraphRAG()
image_paths = image_graph_rag.create_graph_from_directory('/content/images')
similar_images = image_graph_rag.similarity_search('/content/images/car.jpg', k=5)
for doc in similar_images:
print(doc.metadata["path"])
image_graph_rag.visualize_graph() # for graph visualization
Note: This is a new version without parallelization, use 0.1.5>= for parallelization.
Contributing
Contributions are welcome! Please submit a pull request or open an issue to discuss what you would like to change. License
This project is licensed under the MIT License. See the LICENSE file for details.
This README.md
provides an overview of the GraphRetrieval library, installation instructions, and example usage scenarios, with the specified changes to the file path and environment variables sections.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file graphretrieval-0.2.0a0.tar.gz
.
File metadata
- Download URL: graphretrieval-0.2.0a0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa725526a980f2eb1506667c7bce54568d1c68259ee05a485ea08213f428d291 |
|
MD5 | 01448e46996a660cd9f57d4256501fa6 |
|
BLAKE2b-256 | ec78780d93f989a88f1b5a3b299d726baeb82329e4811c9df9c8b60609f6d5a7 |
File details
Details for the file GraphRetrieval-0.2.0a0-py3-none-any.whl
.
File metadata
- Download URL: GraphRetrieval-0.2.0a0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 097b8133a44e9d7474ece424bbfe2008e05ee57f67ba893c70b9c47e3cce7b2f |
|
MD5 | 6821d0ebcea48e2e76690551e0e60e6a |
|
BLAKE2b-256 | 3cf3568455046beb8f4840a91c9db35a2a090ebbd930c990c9408342bdc50ea0 |