Aan de slagBegin gratis

Text-to-Cypher retrieval chain

Je hebt nu een chain die natuurlijke taal kan omzetten naar een Cypher-statement. Laten we die gebruiken in een grotere chain om deze door het LLM gegenereerde Cypher-statement uit te voeren en gebruikersvragen te beantwoorden met de opgehaalde informatie.

Deze oefening maakt deel uit van de cursus

Graph RAG met LangChain en Neo4j

Bekijk cursus

Oefeninstructies

  • Werk de code bij zodat het door text_to_cypher_chain gegenereerde Cypher-statement wordt uitgevoerd en wijs het toe aan de variabele "context" die in QA_PROMPT wordt gebruikt.
  • Geef de input ongewijzigd door aan de variabele "question".

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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)
Code bewerken en uitvoeren