絞り込みを使ったGraph RAG
大規模で複雑なグラフの場合、LLMがCypherクエリを構築する際に、最も関連性の高いノードやリレーションシップを正確に推測できないことがあります。実際には、LLMにグラフの一部だけを認識させれば十分なケースが多く、特定のノードタイプを除外することで、LLMが正確にCypherクエリを作成しやすくなるだけでなく、クエリのレスポンス時間の改善にもつながります。
これまで使用してきたグラフデータベースはgraphとして利用できます。
この演習はコースの一部です
LangChainで学ぶ検索拡張生成(RAG)
演習の手順
"Concept"タイプのノードを除外してgraphデータベースにクエリを実行するGraphQAChainを作成してください。llmはすでに定義済みなので、verbose=Trueを設定してください。- すでに入っている入力で
graph_qa_chainを呼び出してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the graph QA chain excluding Concept
graph_qa_chain = ____
# Invoke the chain with the input provided
result = ____({"query": "Who was Marie Curie married to?"})
print(f"Final answer: {result['result']}")