Ultima verigă din lanț
Cu lanțul text-to-Cypher din Capitolul 1 și cu vectorul de regăsire de mai devreme din acest capitol, ai acum componentele necesare pentru a crea un lanț care oferă mai multe modalități—atât vectori, cât și noduri și relații—de a accesa informațiile din graful tău de cunoștințe.
Variabilele text_to_cypher_chain și line_retriever (vectorul de regăsire Neo4j) sunt disponibile pentru a fi folosite, împreună cu un prompt de răspuns la întrebări pentru regăsirea hibridă, graphrag_qa_prompt.
Acest exercițiu face parte din cursul
Graph RAG cu LangChain și Neo4j
Instrucțiuni pentru exercițiu
- Transmite cheia
"question"vectorului de regăsire (line_retriever) pentru a obține rezultate relevante prin căutare vectorială. - Extrage interogarea din obiectul
graphpentru a executa instrucțiunea Cypher generată detext_to_cypher_chain. - Execută
graphrag_qa_chainpe datele de intrare furnizate.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)