Documentation Index
Fetch the complete documentation index at: https://docs.langtrace.ai/llms.txt
Use this file to discover all available pages before exploring further.
Neo4j GraphRAG enables developers to build graph retrieval augmented generation (GraphRAG) applications using the power of Neo4j and Python. As a first-party library, it offers a robust, feature-rich, and high-performance solution, with the added assurance of long-term support and maintenance directly from Neo4j.
Here’s how to use it with Langtrace:
Setup
- Install the Langtrace’s SDK and initialize the SDK in your code.
pip install langtrace-python-sdk
- Install the Neo4j driver and the Neo4j GraphRAG library.
pip install neo4j
pip install neo4j-graphrag
- Setup environment variables:
export LANGTRACE_API_KEY=YOUR_LANGTRACE_API_KEY
export OPENAI_API_KEY=YOUR_OPENAI_API_KEY # this is assuming you're using OPENAI for inference
Usage
Initialize Langtrace before creating your Phidata agent:
from langtrace_python_sdk import langtrace # Must precede other imports
from langtrace_python_sdk.utils.with_root_span import with_langtrace_root_span
from neo4j import GraphDatabase
from neo4j_graphrag.generation import GraphRAG
from neo4j_graphrag.indexes import create_vector_index
from neo4j_graphrag.llm import OpenAILLM as LLM
from neo4j_graphrag.embeddings import OpenAIEmbeddings as Embeddings
from neo4j_graphrag.retrievers import VectorRetriever
from neo4j_graphrag.experimental.pipeline.kg_builder import SimpleKGPipeline
langtrace.init()
AUTH = (os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD"))
neo4j_driver = GraphDatabase.driver(os.getenv("NEO4J_URI"), auth=AUTH)
Create and run the RAG pipeline:
ex_llm=LLM(
model_name="gpt-4o-mini",
model_params={
"response_format": {"type": "json_object"},
"temperature": 0
})
embedder = Embeddings()
@with_langtrace_root_span("run_neo_rag")
async def run_rag():
# 1. Build KG and Store in Neo4j Database
kg_builder_pdf = SimpleKGPipeline(
llm=ex_llm,
driver=neo4j_driver,
embedder=embedder,
from_pdf=True
)
await kg_builder_pdf.run_async(file_path='data/contract.pdf')
create_vector_index(neo4j_driver, name="text_embeddings", label="Chunk",
embedding_property="embedding", dimensions=1536, similarity_fn="cosine")
# 2. KG Retriever
vector_retriever = VectorRetriever(
neo4j_driver,
index_name="text_embeddings",
embedder=embedder
)
# 3. GraphRAG Class
llm = LLM(model_name="gpt-4o")
rag = GraphRAG(llm=llm, retriever=vector_retriever)
# 4. Run
response = rag.search("can you summarize the termination clause from the contract.")
print(response.answer)
asyncio.run(run_rag())
What’s being traced?
With Langtrace, the following operations are automatically traced:
Knowledge Graph Building:
-Document ingestion and processing
-Entity extraction and relationship creation
-Vector embedding generation
Search and Retrieval:
- Vector similarity search operations
- Subgraph extraction for context
- Retrieved document chunks
LLM Generation:
- Prompt construction with retrieved context
- Model completion generation
- Response processing
View all these trace details in the Langtrace dashboard:
Resources