De laatste schakel in de keten
Met de text-to-cypher-keten uit hoofdstuk 1 en de vector-retriever van eerder in dit hoofdstuk heb je nu de onderdelen om een keten te bouwen die meerdere manieren biedt—zowel vectors als nodes en relationships—om toegang te krijgen tot de informatie in je knowledge graph.
De variabelen text_to_cypher_chain en line_retriever (de Neo4j vector-retriever) zijn beschikbaar om te gebruiken, samen met een vraag-en-antwoordprompt voor hybride retrieval, graphrag_qa_prompt.
Deze oefening maakt deel uit van de cursus
Graph RAG met LangChain en Neo4j
Oefeninstructies
- Geef de
"question"-sleutel door aan de vector-retriever (line_retriever) om relevante resultaten op te halen met vector search. - Haal de query uit het
graph-object om de Cypher-instructie uit te voeren die is gegenereerd door detext_to_cypher_chain. - Voer
graphrag_qa_chainuit op de meegegeven input.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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)