Последнее звено в цепочке
Имея цепочку text-to-Cypher из главы 1 и векторный ретривер из предыдущего раздела этой главы, вы располагаете всем необходимым, чтобы создать цепочку с несколькими способами доступа к информации в графе знаний: через векторы, а также через узлы и связи.
Переменные text_to_cypher_chain и line_retriever (векторный ретривер Neo4j) доступны для использования, как и промпт для ответов на вопросы в режиме гибридного поиска — graphrag_qa_prompt.
Это упражнение является частью курса
Graph RAG с LangChain и Neo4j
Инструкции к упражнению
- Передайте ключ
"question"векторному ретриверу (line_retriever), чтобы получить релевантные результаты с помощью векторного поиска. - Извлеките запрос из объекта
graph, чтобы выполнить запрос Cypher, сгенерированный цепочкойtext_to_cypher_chain. - Запустите
graphrag_qa_chainна переданных входных данных.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
graphrag_qa_chain = RunnablePassthrough.assign(
# Pass the "question" key to the retriever
vectors = RunnableLambda(lambda x: line_retriever.invoke(____)),
# Execute the generated Cypher statement
records = text_to_cypher_chain | graph.____
) | graphrag_qa_prompt | llm | StrOutputParser()
# Execute the hybrid chain
output = graphrag_qa_chain.____({"question": "Does Sampson bite his thumb at Gregory?"})
print(output)