Text-till-Cypher-hämtningskedja
Du har nu en kedja som kan konvertera naturligt språk till en Cypher-sats. Nu ska vi använda den i en större kedja för att köra den LLM-genererade Cypher-koden och besvara användarfrågor med den hämtade informationen.
Den här övningen är en del av kursen
Graph RAG med LangChain och Neo4j
Övningsinstruktioner
- Uppdatera koden så att Cypher-satsen som genereras av
text_to_cypher_chainkörs, och tilldela resultatet till variabeln"context"som används iQA_PROMPT. - Skicka indata till variabeln
"question"vidare oförändrad.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)