НачатьНачать бесплатно

Создание цепочки text-to-Cypher

Вы уже писали Cypher-запросы вручную — теперь попробуем генерировать их с помощью LLM! Генерация Cypher-запроса из пользовательского вопроса на естественном языке — ключевой элемент рабочего процесса Graph RAG на основе text-to-Cypher.

Вы работаете с той же базой данных, что и в предыдущем упражнении: она содержит узлы, представляющие людей и компании, а также связи WORKS_FOR. База данных доступна через переменную graph.

Это упражнение является частью курса

Graph RAG с LangChain и Neo4j

Посмотреть курс

Инструкции к упражнению

  • Обновите словарь partial_variables, чтобы вставить схему графа в промпт.
  • Создайте цепочку text-to-Cypher, используя prompt, llm и парсинг в строку.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код