Een text-to-Cypher-chain bouwen
Je hebt je eigen Cypher-queries geschreven, dus laten we nu LLM's gebruiken om ze te genereren! Het genereren van een Cypher-query uit een gebruikersvraag in natuurlijke taal is een cruciaal onderdeel van een text-to-Cypher Graph RAG-workflow.
Je werkt met dezelfde database als in de vorige oefening, met knooppunten die personen en bedrijven voorstellen, en WORKS_FOR-relaties, beschikbaar als graph.
Deze oefening maakt deel uit van de cursus
Graph RAG met LangChain en Neo4j
Oefeninstructies
- Werk de dictionary
partial_variablesbij om het graafschema in de prompt te zetten. - Maak de text-to-Cypher-chain met behulp van de
prompt,llm, en parsing naar een string.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
prompt = ChatPromptTemplate.from_messages([
SystemMessagePromptTemplate.from_template("""
You are an expert Neo4j developer. Use the following database schema to write a Cypher statement to answer the user's question. Only generate the Cypher statement, no pre-amble. Do not return any Markdown.
Schema:
{schema}
Question: {question}""",
# Update the partial_variables dictionary
partial_variables={"schema": graph.____})
])
# Create the text-to-Cypher chain
text_to_cypher_chain = ____ | ____ | StrOutputParser()
cypher = text_to_cypher_chain.invoke({"question": "Where does Jo Cornelissen work?"})
print(cypher)