Skip to content

Commit 789fb35

Browse files
authored
Removed unneeded references to LangChain (#185)
* Removed uneeded references to LangChain * Remove unneeded langchain deps
1 parent 06d9889 commit 789fb35

File tree

13 files changed

+1195
-1120
lines changed

13 files changed

+1195
-1120
lines changed

docs/source/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ While the library has more retrievers than shown here, the following examples sh
152152
.. code:: python
153153
154154
from neo4j import GraphDatabase
155+
from neo4j_graphrag.embeddings.openai import OpenAIEmbeddings
155156
from neo4j_graphrag.retrievers import VectorRetriever
156-
from langchain_openai import OpenAIEmbeddings
157157
158158
URI = "neo4j://localhost:7687"
159159
AUTH = ("neo4j", "password")

docs/source/user_guide_rag.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ To perform a GraphRAG query using the `neo4j-graphrag` package, a few components
1515

1616
1. A Neo4j driver: used to query your Neo4j database.
1717
2. A Retriever: the `neo4j-graphrag` package provides some implementations (see the :ref:`dedicated section <retriever-configuration>`) and lets you write your own if none of the provided implementations matches your needs (see :ref:`how to write a custom retriever <custom-retriever>`).
18-
3. An LLM: to generate the answer, we need to call an LLM model. The neo4j-graphrag package currently only provides implementation for the OpenAI LLMs, but its interface is compatible with LangChain and let developers write their own interface if needed.
18+
3. An LLM: to generate the answer, we need to call an LLM model. The neo4j-graphrag package's LLM interface is compatible with LangChain. Developers can also write their own interface if needed.
1919

2020
In practice, it's done with only a few lines of code:
2121

@@ -223,8 +223,7 @@ Its interface is compatible with our `GraphRAG` interface, facilitating integrat
223223
print(response.answer)
224224
225225
226-
It is however not mandatory to use LangChain. The alternative is to implement
227-
a custom model.
226+
It is however not mandatory to use LangChain.
228227

229228
Using a Custom Model
230229
--------------------

examples/graphrag_with_langchain_llm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
import logging
1111

1212
import neo4j
13-
from langchain.chat_models import ChatOpenAI
14-
from langchain.embeddings import OpenAIEmbeddings
13+
from neo4j_graphrag.embeddings.openai import OpenAIEmbeddings
1514
from neo4j_graphrag.generation import GraphRAG
15+
from neo4j_graphrag.llm import OpenAILLM
1616
from neo4j_graphrag.retrievers import VectorCypherRetriever
1717
from neo4j_graphrag.types import RetrieverResultItem
1818

@@ -48,7 +48,7 @@ def formatter(record: neo4j.Record) -> RetrieverResultItem:
4848
embedder=embedder, # type: ignore
4949
)
5050

51-
llm = ChatOpenAI(model_name="gpt-4o", temperature=0) # type: ignore
51+
llm = OpenAILLM(model_name="gpt-4o", model_params={"temperature": 0})
5252

5353
rag = GraphRAG(retriever=retriever, llm=llm)
5454

examples/openai_search.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from random import random
22

3-
from langchain_openai import OpenAIEmbeddings
43
from neo4j import GraphDatabase
4+
from neo4j_graphrag.embeddings.openai import OpenAIEmbeddings
55
from neo4j_graphrag.indexes import create_vector_index
66
from neo4j_graphrag.retrievers import VectorRetriever
77

@@ -19,7 +19,7 @@
1919
embedder = OpenAIEmbeddings(model="text-embedding-3-large")
2020

2121
# Initialize the retriever
22-
retriever = VectorRetriever(driver, INDEX_NAME, embedder) # type: ignore
22+
retriever = VectorRetriever(driver, INDEX_NAME, embedder)
2323

2424
# Creating the index
2525
create_vector_index(

examples/pinecone/text_search.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
from langchain_huggingface.embeddings import HuggingFaceEmbeddings
21
from neo4j import GraphDatabase
2+
from neo4j_graphrag.embeddings.sentence_transformers import (
3+
SentenceTransformerEmbeddings,
4+
)
35
from neo4j_graphrag.retrievers import PineconeNeo4jRetriever
46
from pinecone import Pinecone
57

@@ -11,14 +13,13 @@
1113
def main() -> None:
1214
with GraphDatabase.driver(NEO4J_URL, auth=NEO4J_AUTH) as neo4j_driver:
1315
pc_client = Pinecone(PC_API_KEY)
14-
embedder = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
15-
16+
embedder = SentenceTransformerEmbeddings(model="all-MiniLM-L6-v2")
1617
retriever = PineconeNeo4jRetriever(
1718
driver=neo4j_driver,
1819
client=pc_client,
1920
index_name="jeopardy",
2021
id_property_neo4j="id",
21-
embedder=embedder, # type: ignore
22+
embedder=embedder,
2223
)
2324

2425
res = retriever.search(query_text="biology", top_k=2)

examples/qdrant/text_search.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
from langchain_huggingface.embeddings import HuggingFaceEmbeddings
21
from neo4j import GraphDatabase
2+
from neo4j_graphrag.embeddings.sentence_transformers import (
3+
SentenceTransformerEmbeddings,
4+
)
35
from neo4j_graphrag.retrievers import QdrantNeo4jRetriever
46
from qdrant_client import QdrantClient
57

@@ -9,14 +11,14 @@
911

1012
def main() -> None:
1113
with GraphDatabase.driver(NEO4J_URL, auth=NEO4J_AUTH) as neo4j_driver:
12-
embedder = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
14+
embedder = SentenceTransformerEmbeddings(model="all-MiniLM-L6-v2")
1315
retriever = QdrantNeo4jRetriever(
1416
driver=neo4j_driver,
1517
client=QdrantClient(url="http://localhost:6333"),
1618
collection_name="Jeopardy",
1719
id_property_external="neo4j_id",
1820
id_property_neo4j="id",
19-
embedder=embedder, # type: ignore
21+
embedder=embedder,
2022
)
2123

2224
res = retriever.search(query_text="biology", top_k=2)

examples/weaviate/text_search_local_embedder.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
from langchain_huggingface.embeddings import HuggingFaceEmbeddings
21
from neo4j import GraphDatabase
2+
from neo4j_graphrag.embeddings.sentence_transformers import (
3+
SentenceTransformerEmbeddings,
4+
)
35
from neo4j_graphrag.retrievers import WeaviateNeo4jRetriever
46
from weaviate.connect.helpers import connect_to_local
57

@@ -10,14 +12,14 @@
1012
def main() -> None:
1113
with GraphDatabase.driver(NEO4J_URL, auth=NEO4J_AUTH) as neo4j_driver:
1214
with connect_to_local() as w_client:
13-
embedder = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
15+
embedder = SentenceTransformerEmbeddings(model="all-MiniLM-L6-v2")
1416
retriever = WeaviateNeo4jRetriever(
1517
driver=neo4j_driver,
1618
client=w_client,
1719
collection="Jeopardy",
1820
id_property_external="neo4j_id",
1921
id_property_neo4j="id",
20-
embedder=embedder, # type: ignore
22+
embedder=embedder,
2123
)
2224

2325
res = retriever.search(query_text="biology", top_k=2)

0 commit comments

Comments
 (0)