Text-zu-Cypher Retrieval-Chain
Du hast jetzt eine Chain, die natürliche Sprache in eine Cypher-Anweisung umwandeln kann. Verwenden wir sie in einer größeren Chain, um das von der LLM generierte Cypher auszuführen und Benutzerfragen mit den abgerufenen Informationen zu beantworten.
Diese Übung ist Teil des Kurses
<Kurs>Graph RAG mit LangChain und Neo4j</Kurs>Übungsanweisungen
- Aktualisiere den Code, um die vom
text_to_cypher_chaingenerierte Cypher-Anweisung auszuführen und weise das Ergebnis der Variable"context"zu, die inQA_PROMPTverwendet wird. - Leite die Eingabe unverändert an die Variable
"question"weiter.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
qa_prompt = ChatPromptTemplate.from_messages([
SystemMessagePromptTemplate.from_template(QA_PROMPT),
HumanMessagePromptTemplate.from_template("Question: {question}")
])
qa_chain = {
# Use output of text_to_cypher to get database results
"context": text_to_cypher_chain | ____(lambda cypher: graph.____(cypher)),
# Pass the user input through to the "question" variable
"question": ____
} | qa_prompt | llm | StrOutputParser()
res = qa_chain.invoke({"question": "What companies is Harrison Chase connected to?"})
print(res)