Créer une chaîne text-to-Cypher
Vous avez rédigé vos propres requêtes Cypher ; essayons maintenant d'utiliser des LLM pour les générer ! Générer une requête Cypher à partir d'une demande en langage naturel est un élément clé d'un flux de travail Graph RAG de type text-to-Cypher.
Vous travaillez avec la même base de données que dans l'exercice précédent, qui contient des nœuds représentant des personnes, des entreprises, ainsi que des relations WORKS_FOR, le tout disponible sous graph.
Cette activité fait partie du cours
Graph RAG avec LangChain et Neo4j
Instructions de l’exercice
- Mettez à jour le dictionnaire
partial_variablespour insérer le schéma du graphe dans l'invite. - Créez la chaîne text-to-Cypher en utilisant
prompt,llmet l'analyse vers une chaîne de caractères.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)