Das letzte Glied in der Kette
Mit der Text-zu-Cypher-Chain aus Kapitel 1 und dem Vector Retriever von früher in diesem Kapitel hast du jetzt die Komponenten, um eine Chain zu erstellen, die mehrere Wege bietet – sowohl Vektoren als auch Knoten und Beziehungen –, um auf die Informationen in deinem Knowledge Graph zuzugreifen.
Die Variablen text_to_cypher_chain und line_retriever (der Neo4j Vector Retriever) stehen dir zur Verfügung, zusammen mit einem Question-Answering-Prompt für hybrides Retrieval, graphrag_qa_prompt.
Diese Übung ist Teil des Kurses
<Kurs>Graph RAG mit LangChain und Neo4j</Kurs>Übungsanweisungen
- Übergib den Schlüssel
"question"an den Vector Retriever (line_retriever), um mit der Vectorsuche relevante Ergebnisse zu erhalten. - Extrahiere die Abfrage aus dem Objekt
graph, um die vomtext_to_cypher_chaingenerierte Cypher-Anweisung auszuführen. - Führe
graphrag_qa_chainauf der gegebenen Eingabe aus.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
graphrag_qa_chain = RunnablePassthrough.assign(
# Pass the "question" key to the retriever
vectors = RunnableLambda(lambda x: line_retriever.invoke(____)),
# Execute the generated Cypher statement
records = text_to_cypher_chain | graph.____
) | graphrag_qa_prompt | llm | StrOutputParser()
# Execute the hybrid chain
output = graphrag_qa_chain.____({"question": "Does Sampson bite his thumb at Gregory?"})
print(output)