L’ultimo anello della catena
Con la catena text-to-cypher del Capitolo 1 e il retriever vettoriale visto prima in questo capitolo, ora hai i componenti per creare una catena che offre più modalità — sia vettori sia nodi e relazioni — per accedere alle informazioni nel tuo knowledge graph.
Le variabili text_to_cypher_chain e line_retriever (il vector retriever di Neo4j) sono a tua disposizione, insieme a un prompt di question answering per il retrieval ibrido, graphrag_qa_prompt.
Questo esercizio fa parte del corso
Graph RAG con LangChain e Neo4j
Istruzioni dell'esercizio
- Passa la chiave
"question"al vector retriever (line_retriever) per ottenere risultati pertinenti tramite vector search. - Estrai la query dall’oggetto
graphper eseguire l’istruzione Cypher generata datext_to_cypher_chain. - Esegui
graphrag_qa_chainsull’input fornito.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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)