Łańcuch pobierania danych text-to-Cypher
Masz już łańcuch, który potrafi przekształcić język naturalny w instrukcję Cypher. Teraz użyjemy go w większym łańcuchu, żeby wykonać wygenerowany przez LLM Cypher i odpowiedzieć na pytania użytkownika na podstawie pobranych informacji.
To ćwiczenie jest częścią kursu
Graph RAG z LangChain i Neo4j
Instrukcje do ćwiczenia
- Zaktualizuj kod tak, aby wykonywał instrukcję Cypher wygenerowaną przez
text_to_cypher_chain, i przypisz wynik do zmiennej"context"używanej wQA_PROMPT. - Przekaż dane wejściowe do zmiennej
"question"bez zmian.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)