Graph RAG zincirini oluşturma

LangChain ile Retrieval Augmented Generation (RAG)

Meri Nova

Machine Learning Engineer

Graph RAG mimarisini kurma

Bir grafik veritabanı.

LangChain ile Retrieval Augmented Generation (RAG)

Graph RAG mimarisini kurma

Belgeler, grafik belgelere dönüştürülerek grafik veritabanında depolanıyor.

LangChain ile Retrieval Augmented Generation (RAG)

Graph RAG mimarisini kurma

Bir Cypher sorgusu, veritabanından grafik belgelerini getirir. Kullanıcı girdisi ve kullanıcıya dönen doğal dilde yanıt da gösterilir.

LangChain ile Retrieval Augmented Generation (RAG)

Graph RAG mimarisini kurma

Doğal dilden Cypher’a çevirici, doğal dil girdisini Cypher sorgusuna; getirilen grafik belgeleri de yeniden doğal dile çevirir.

LangChain ile Retrieval Augmented Generation (RAG)

Kullanıcı girdilerinden Cypher sorgularına

Üç düğüm ve üç ilişkiden oluşan basit bir grafik. İki düğüm kişi, diğeri ise James’in ziyaret ettiği bir konumu temsil eder.

LangChain ile Retrieval Augmented Generation (RAG)

Kullanıcı girdilerinden Cypher sorgularına

“James nereleri ziyaret etti?” diye soran bir kullanıcı girişi.

LangChain ile Retrieval Augmented Generation (RAG)

Kullanıcı girdilerinden Cypher sorgularına

Cypher sorgusu, grafik şeması ve kullanıcı girdisiyle oluşturulur.

LangChain ile Retrieval Augmented Generation (RAG)

GraphCypherQAChain

Kullanıcı girdilerini Cypher sorgularına çevirip doğal dilde yanıt dönen Graph RAG mimarisi.

LangChain ile Retrieval Augmented Generation (RAG)

GraphCypherQAChain

Oluştur cypher zinciri ve sonuçları özetleme zinciri vurgulanmış Graph RAG mimarisi.

LangChain ile Retrieval Augmented Generation (RAG)

Şemayı yenileme

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 ile Retrieval Augmented Generation (RAG)

Grafiği sorgulama

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 ile Retrieval Augmented Generation (RAG)

Grafiği sorgulama

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 ile Retrieval Augmented Generation (RAG)

Özelleştirme

chain = GraphCypherQAChain.from_llm(
    llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True
)
  • qa_prompt: Sonuç üretimi için komut şablonu
  • cypher_prompt: Cypher üretimi için komut şablonu
  • cypher_llm: Cypher üretimi için LLM
  • qa_llm: Sonuç üretimi için LLM
LangChain ile Retrieval Augmented Generation (RAG)

Hadi pratik yapalım!

LangChain ile Retrieval Augmented Generation (RAG)

Preparing Video For Download...