Neo4j GraphRAG#
Neo4j GraphRAG - пакет Python для создания приложений с расширенной генерацией поиска по графам (GraphRAG), использующих Neo4j и Python. Будучи библиотекой первого уровня, он предлагает надежное, функционально насыщенное и высокопроизводительное решение с дополнительной гарантией долгосрочной поддержки и сопровождения непосредственно от компании Neo4j. Он предоставляет нативный ретривер Vector DB для поиска векторов, хранящихся в коллекции Vector DB.
Установка#
pip install neo4j-graphrag[qdrant]
Использование#
Запрос вектора с использованием Neo4j и Vector DB может выглядеть так:
from neo4j import GraphDatabase
from neo4j_graphrag.retrievers import QdrantNeo4jRetriever
from qdrant_client import QdrantClient
from examples.embedding_biology import EMBEDDING_BIOLOGY
NEO4J_URL = "neo4j://localhost:7687"
NEO4J_AUTH = ("neo4j", "password")
with GraphDatabase.driver(NEO4J_URL, auth=NEO4J_AUTH) as neo4j_driver:
retriever = QdrantNeo4jRetriever(
driver=neo4j_driver,
client=QdrantClient(url="http://localhost:6333"),
collection_name="{collection_name}",
id_property_external="neo4j_id",
id_property_neo4j="id",
)
retriever.search(query_vector=[0.5523, 0.523, 0.132, 0.523, ...], top_k=5)
В качестве альтернативы можно использовать любого из поставщиков вложений Langchain, чтобы автоматически векторизовать текстовые запросы.
from langchain_huggingface.embeddings import HuggingFaceEmbeddings
from neo4j import GraphDatabase
from neo4j_graphrag.retrievers import QdrantNeo4jRetriever
from qdrant_client import QdrantClient
NEO4J_URL = "neo4j://localhost:7687"
NEO4J_AUTH = ("neo4j", "password")
with GraphDatabase.driver(NEO4J_URL, auth=NEO4J_AUTH) as neo4j_driver:
embedder = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
retriever = QdrantNeo4jRetriever(
driver=neo4j_driver,
client=QdrantClient(url="http://localhost:6333"),
collection_name="{collection_name}",
id_property_external="neo4j_id",
id_property_neo4j="id",
embedder=embedder,
)
retriever.search(query_text="my user query", top_k=10)