FalkorDB 图数据库存储
本笔记本将指导如何配置 FalkorDB 作为 LlamaIndex 中图存储的后端。
%pip install llama-index-llms-openai%pip install llama-index-graph-stores-falkordb# My OpenAI Keyimport os
os.environ["OPENAI_API_KEY"] = "API_KEY_HERE"import loggingimport sys
logging.basicConfig(stream=sys.stdout, level=logging.INFO)使用知识图谱与FalkorDBGraphStore
Section titled “Using Knowledge Graph with FalkorDBGraphStore”启动 FalkorDB
Section titled “Start FalkorDB”启动FalkorDB作为图数据库的最简单方法是使用falkordb docker镜像。
要跟随本教程的每一步,请按如下方式启动镜像:
docker run -p 6379:6379 -it --rm falkordb/falkordb:edgefrom llama_index.graph_stores.falkordb import FalkorDBGraphStore
graph_store = FalkorDBGraphStore( "redis://localhost:6379", decode_responses=True)INFO:numexpr.utils:NumExpr defaulting to 8 threads.from llama_index.core import SimpleDirectoryReader, KnowledgeGraphIndex
from llama_index.llms.openai import OpenAIfrom llama_index.core import Settingsfrom IPython.display import Markdown, displaydocuments = SimpleDirectoryReader( "../../../../examples/paul_graham_essay/data").load_data()# define LLM
llm = OpenAI(temperature=0, model="gpt-3.5-turbo")Settings.llm = llmSettings.chunk_size = 512from llama_index.core import StorageContext
storage_context = StorageContext.from_defaults(graph_store=graph_store)
# NOTE: can take a while!index = KnowledgeGraphIndex.from_documents( documents, max_triplets_per_chunk=2, storage_context=storage_context,)首先,我们可以仅查询并将三元组发送给LLM。
query_engine = index.as_query_engine( include_text=False, response_mode="tree_summarize")response = query_engine.query( "Tell me more about Interleaf",)display(Markdown(f"<b>{response}</b>"))Interleaf 是一家软件公司,成立于1981年。该公司专注于开发和销售桌面出版软件。其旗舰产品名为 Interleaf,这是一款用于创建和发布复杂文档的强大工具。Interleaf 的软件广泛应用于航空航天、国防和政府等行业,这些领域需要创建技术文档和手册。该公司于2000年被 BroadVision 收购。
为了获取更详细的答案,我们还可以发送从中提取检索到的三元组的原始文本。
query_engine = index.as_query_engine( include_text=True, response_mode="tree_summarize")response = query_engine.query( "Tell me more about Interleaf",)display(Markdown(f"<b>{response}</b>"))Interleaf 是一家拥有优秀人才并开发了令人印象深刻技术的公司。然而,它面临挑战并最终被摩尔定律击垮。20世纪90年代,商用处理器(尤其是英特尔处理器)性能的指数级增长导致高端专用硬件和软件公司被整合淘汰。Interleaf 正是这一趋势的牺牲品之一。尽管该公司拥有才华横溢的员工和先进技术,却无法与处理器性能的飞速发展相抗衡。
%pip install pyvis## create graphfrom pyvis.network import Network
g = index.get_networkx_graph()net = Network(notebook=True, cdn_resources="in_line", directed=True)net.from_nx(g)net.show("falkordbgraph_draw.html")