Die Graph-RAG-Chain erstellen

Retrieval Augmented Generation (RAG) mit LangChain

Meri Nova

Machine Learning Engineer

Die Graph-RAG-Architektur aufbauen

Eine Graphdatenbank.

Retrieval Augmented Generation (RAG) mit LangChain

Die Graph-RAG-Architektur aufbauen

Dokumente werden in Graph-Dokumente umgewandelt und in der Graphdatenbank gespeichert.

Retrieval Augmented Generation (RAG) mit LangChain

Die Graph-RAG-Architektur aufbauen

Eine Cypher-Query ruft Graph-Dokumente aus der Datenbank ab. Eine Nutzereingabe und die Antwort in natürlicher Sprache sind ebenfalls gezeigt.

Retrieval Augmented Generation (RAG) mit LangChain

Die Graph-RAG-Architektur aufbauen

Ein Natural-Language-zu-Cypher-Übersetzer wandelt die Eingabe in eine Cypher-Query um und die abgerufenen Graph-Dokumente zurück in natürliche Sprache.

Retrieval Augmented Generation (RAG) mit LangChain

Von Eingaben zu Cypher-Queries

Ein einfacher Graph mit drei Knoten und drei Beziehungen. Zwei Knoten stehen für Personen, einer für einen Ort, den James besucht hat.

Retrieval Augmented Generation (RAG) mit LangChain

Von Eingaben zu Cypher-Queries

Eine Nutzereingabe mit der Frage „Where has James visited?“

Retrieval Augmented Generation (RAG) mit LangChain

Von Eingaben zu Cypher-Queries

Die Cypher-Query wird aus dem Graph-Schema und der Nutzereingabe erzeugt.

Retrieval Augmented Generation (RAG) mit LangChain

GraphCypherQAChain

Die Graph-RAG-Architektur übersetzt Eingaben in Cypher-Queries und liefert eine Antwort in natürlicher Sprache.

Retrieval Augmented Generation (RAG) mit LangChain

GraphCypherQAChain

Die Graph-RAG-Architektur mit hervorgehobener Generate-Cypher-Chain und hervorgehobener Summarize-Results-Chain.

Retrieval Augmented Generation (RAG) mit LangChain

Schema aktualisieren

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

Den Graph abfragen

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

Den Graph abfragen

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

Anpassen

chain = GraphCypherQAChain.from_llm(
    llm=ChatOpenAI(api_key="...", temperature=0), graph=graph, verbose=True
)
  • qa_prompt: Prompt-Vorlage für Ergebniserzeugung
  • cypher_prompt: Prompt-Vorlage für Cypher-Erzeugung
  • cypher_llm: LLM für Cypher-Erzeugung
  • qa_llm: LLM für Ergebniserzeugung
Retrieval Augmented Generation (RAG) mit LangChain

Lass uns üben!

Retrieval Augmented Generation (RAG) mit LangChain

Preparing Video For Download...