Graph RAG चेन बनाना

LangChain के साथ Retrieval Augmented Generation (RAG)

Meri Nova

Machine Learning Engineer

Graph RAG आर्किटेक्चर बनाना

एक ग्राफ डेटाबेस.

LangChain के साथ Retrieval Augmented Generation (RAG)

Graph RAG आर्किटेक्चर बनाना

डॉक्यूमेंट्स को ग्राफ डॉक्यूमेंट्स में बदला जा रहा है और ग्राफ डेटाबेस में स्टोर किया जा रहा है.

LangChain के साथ Retrieval Augmented Generation (RAG)

Graph RAG आर्किटेक्चर बनाना

डेटाबेस से ग्राफ डॉक्यूमेंट्स निकालने के लिए एक Cypher क्वेरी का उपयोग. यूज़र इनपुट और यूज़र को लौटाया गया नेचुरल लैंग्वेज रिस्पॉन्स भी दिखाया गया है.

LangChain के साथ Retrieval Augmented Generation (RAG)

Graph RAG आर्किटेक्चर बनाना

नेचुरल लैंग्वेज से Cypher ट्रांसलेटर, प्राकृतिक भाषा इनपुट को Cypher क्वेरी में बदलता है और प्राप्त ग्राफ डॉक्यूमेंट्स को फिर से प्राकृतिक भाषा में लौटाता है.

LangChain के साथ Retrieval Augmented Generation (RAG)

यूज़र इनपुट से Cypher क्वेरी तक

एक साधारण ग्राफ जिसमें तीन नोड और तीन रिलेशनशिप हैं. दो नोड लोग दर्शाते हैं और एक वह लोकेशन है जहाँ James गया है.

LangChain के साथ Retrieval Augmented Generation (RAG)

यूज़र इनपुट से Cypher क्वेरी तक

यूज़र इनपुट पूछता है: "Where has James visited?".

LangChain के साथ Retrieval Augmented Generation (RAG)

यूज़र इनपुट से Cypher क्वेरी तक

ग्राफ स्कीमा और यूज़र इनपुट से Cypher क्वेरी जेनरेट होती है.

LangChain के साथ Retrieval Augmented Generation (RAG)

GraphCypherQAChain

Graph RAG आर्किटेक्चर, जो यूज़र इनपुट को Cypher क्वेरी में बदलता है और प्राकृतिक भाषा में उत्तर लौटाता है.

LangChain के साथ Retrieval Augmented Generation (RAG)

GraphCypherQAChain

Graph RAG आर्किटेक्चर जिसमें generate cypher chain और summarize results chain हाईलाइटेड हैं.

LangChain के साथ Retrieval Augmented Generation (RAG)

स्कीमा रिफ्रेश करें

graph.refresh_schema()
print(graph.get_schema)
Node properties:
Document {title: STRING, id: STRING, text: STRING, summary: STRING, source: STRING}
Concept {id: STRING}
Organization {id: STRING}
Relationship properties:

The relationships:
(:Document)-[:MENTIONS]->(:Organization)
(:Concept)-[:DEVELOPED_BY]->(:Person)
LangChain के साथ Retrieval Augmented Generation (RAG)

ग्राफ को क्वेरी करना

from langchain_community.chains.graph_qa.cypher import GraphCypherQAChain

chain = GraphCypherQAChain.from_llm( llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True )
result = chain.invoke({"query": "What is the most accurate model?"})
1 https://api.python.langchain.com/en/latest/chains/langchain_community.chains.graph_qa.cypher. GraphCypherQAChain.html
LangChain के साथ Retrieval Augmented Generation (RAG)

ग्राफ को क्वेरी करना

print(f"Final answer: {result['result']}")
> Entering new GraphCypherQAChain chain...
Generated Cypher:
MATCH (m:Model)
RETURN m
ORDER BY m.accuracy DESC
LIMIT 1;
Full Context:
[{'m': {'id': 'Artificial Neural Networks'}}]

> Finished chain.


Final answer: Artificial Neural Networks
LangChain के साथ Retrieval Augmented Generation (RAG)

कस्टमाइज़ेशन

chain = GraphCypherQAChain.from_llm(
    llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True
)
  • qa_prompt: रिजल्ट जेनरेट करने का प्रॉम्प्ट टेम्पलेट
  • cypher_prompt: Cypher जेनरेशन का प्रॉम्प्ट टेम्पलेट
  • cypher_llm: Cypher जेनरेशन के लिए LLM
  • qa_llm: रिजल्ट जेनरेट करने के लिए LLM
LangChain के साथ Retrieval Augmented Generation (RAG)

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

LangChain के साथ Retrieval Augmented Generation (RAG)

Preparing Video For Download...