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

Цепочка извлечения данных с Text-to-Cypher

Теперь у вас есть цепочка, способная преобразовывать запросы на естественном языке в операторы Cypher. Давайте включим её в более крупную цепочку, чтобы выполнять сгенерированные LLM запросы Cypher и отвечать на вопросы пользователей на основе полученных данных.

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

Graph RAG с LangChain и Neo4j

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

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

  • Обновите код так, чтобы выполнялся оператор Cypher, сгенерированный text_to_cypher_chain, и присвойте результат переменной "context", используемой в QA_PROMPT.
  • Передайте входные данные в переменную "question" без изменений.

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

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

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