Den sista länken i kedjan
Med text-till-Cypher-kedjan från kapitel 1 och vektorsökningsmotorn från tidigare i det här kapitlet har du nu alla komponenter för att skapa en kedja som erbjuder flera sätt – både vektorer och noder och relationer – att komma åt informationen i din kunskapsgraf.
Variablerna text_to_cypher_chain och line_retriever (Neo4j-vektorsökningsmotorn) är tillgängliga för dig att använda, tillsammans med en fråga-och-svar-prompt för hybrid-RAG: graphrag_qa_prompt.
Den här övningen är en del av kursen
Graph RAG med LangChain och Neo4j
Övningsinstruktioner
- Skicka nyckeln
"question"till vektorsökningsmotorn (line_retriever) för att hämta relevanta resultat med vektorsökning. - Extrahera frågan från
graph-objektet för att köra den Cypher-sats som genereras avtext_to_cypher_chain. - Kör
graphrag_qa_chainpå det angivna indata.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)