डोमेन ग्राफ्स

LangChain और Neo4j के साथ Graph RAG

Adam Cowley

Manager, Developer Education at Neo4j

डोमेन ग्राफ्स

एक नॉलेज ग्राफ डायग्राम जो बाएँ ओर लेक्सिकल ग्राफ दिखाता है जिसमें एक किताब, अध्याय और पेज हैं, और दाएँ ओर किताब में लोग और कंपनियाँ हैं, साथ ही अन्य स्रोतों जैसे Wikipedia से संदर्भ

LangChain और Neo4j के साथ Graph RAG

लेक्सिकल ग्राफ से डोमेन ग्राफ तक

Journey के "Don't Stop Believin'" के बोल

LangChain और Neo4j के साथ Graph RAG

लेक्सिकल ग्राफ से डोमेन ग्राफ तक

Journey के "Don't Stop Believin'" के बोल, जिसमें "Small Town Boy" को व्यक्ति के रूप में हाइलाइट किया गया है

LangChain और Neo4j के साथ Graph RAG

लेक्सिकल ग्राफ से डोमेन ग्राफ तक

Journey के "Don't Stop Believin'" के बोल, जिसमें "South Detroit" को स्थान के रूप में हाइलाइट किया गया है

LangChain और Neo4j के साथ Graph RAG

लेक्सिकल ग्राफ से डोमेन ग्राफ तक

Journey के "Don't Stop Believin'" के बोल, जिसमें "Born" को व्यक्ति "Small Town Boy" और स्थान "South Detroit" के नोड्स के बीच संबंध के रूप में हाइलाइट किया गया है

LangChain और Neo4j के साथ Graph RAG

लेक्सिकल ग्राफ से डोमेन ग्राफ तक

Journey के "Don't Stop Believin'" के बोल, जिसमें "Raised" को व्यक्ति "Small Town Boy" और स्थान "South Detroit" के नोड्स के बीच संबंध के रूप में हाइलाइट किया गया है

LangChain और Neo4j के साथ Graph RAG

डोमेन ग्राफ का उदाहरण

एक उदाहरण डोमेन ग्राफ मॉडल: एक व्यक्ति जो एक कंपनी में काम करता है, जो एक पते पर स्थित है। व्यक्ति के पास एक क्रेडिट कार्ड है, जिस पर उसी स्थान की एक कंपनी में एक ऑर्डर किया गया है

LangChain और Neo4j के साथ Graph RAG

स्ट्रक्चर्ड आउटपुट्स

from pydantic import BaseModel, Field

from typing import Optional
class Character(BaseModel): """नाटक का एक पात्र।"""
id: str = Field(description="स्लग-केस में पात्र के लिए एक यूनिक आइडेंटिफ़ायर",
examples=["montague-romeo", "tybalt"])
name: str = Field(description="पात्र का पूरा नाम", examples=["Romeo", "Tybalt"])
family: Optional[str] = Field(description="वह परिवार जिसका वे हिस्सा हैं", examples=["Montague", "Capulet"])
class CharacterOutput(BaseModel): characters: list[Character] = Field(description="पात्रों की सूची")
LangChain और Neo4j के साथ Graph RAG

स्ट्रक्चर्ड आउटपुट्स का उपयोग

from langchain.chat_models import init_chat_model
llm = init_chat_model("gpt-4o-mini", model_provider="openai", api_key="...")


# एक स्ट्रक्चर्ड आउटपुट के साथ character_model = llm.with_structured_output(CharacterOutput)
# एक चेन में उपयोग करें chain = extraction_prompt | character_model
# रिस्पॉन्स हैंडल करें output = chain.invoke(...)
CharacterOutput(characters=[Character, Character, Character...])
LangChain और Neo4j के साथ Graph RAG

एंटिटीज़ सेव करना

nodes = [

Node(
type="Character",
id=character.id,
properties={"name": character.name, "family": character.family}
)
for character in output.characters
]
# एक GraphDocument बनाएँ graph_document = GraphDocument(nodes=nodes, relationships=[])
# ग्राफ में सेव करें graph.add_graph_documents([graph_document])
LangChain और Neo4j के साथ Graph RAG

अभ्यास करते हैं!

LangChain और Neo4j के साथ Graph RAG

Preparing Video For Download...