CommencerCommencez gratuitement

Créer une chaîne text-to-Cypher

Vous avez déjà écrit vos propres requêtes Cypher ; essayons maintenant de les générer avec des LLM ! Générer une requête Cypher à partir d’une question en langage naturel est une étape 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, et des relations WORKS_FOR, disponible sous le nom graph.

Cet exercice fait partie du cours

<cours>Graph RAG avec LangChain et Neo4j</cours>
Voir le cours

Instructions de l’exercice

  • Mettez à jour le dictionnaire partial_variables pour insérer le schéma du graphe dans le prompt.
  • Créez la chaîne text-to-Cypher en utilisant prompt, llm, puis en analysant le résultat en 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)
Modifier et exécuter le code