Ланцюжок Text-to-Cypher для отримання даних
Тепер у вас є ланцюжок, який уміє перетворювати природну мову на інструкцію Cypher. Використайте його в більшому ланцюжку, щоб виконати згенерований LLM запит Cypher і відповісти на запитання користувача на основі отриманої інформації.
Ця вправа є частиною курсу
Graph RAG з LangChain і Neo4j
Інструкції до вправи
- Оновіть код, щоб виконати інструкцію Cypher, згенеровану
text_to_cypher_chain, і присвоїти результат змінній"context", яку використовуєQA_PROMPT. - Передайте вхідне значення до змінної
"question"без змін.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)