使用大语言模型创建 Graph 数据

Neo4j 是开源的 Graph 数据库,Graph 数据通过三元组进行表示,两个顶点+一条边,从语意上可以理解为:主语、谓语和宾语。GraphDB 能够通过图来表达复杂的结构,非常适合存储知识型数据,本文将通过大语言实现图数据库的创建。

首先,需要安装 LangChain 对应的依赖。

复制代码
langchain==0.3.7
python-dotenv==1.0.1
langchain-google-genai==2.0.4
langserve==0.3.0
langchain-community==0.3.5
dashscope==1.20.12
langgraph==0.2.45
tavily-python==0.5.0
langchain-experimental==0.3.3

初始化模型

本文我们使用 Qwen-Turbo。

复制代码
from langchain_community.chat_models import ChatTongyi
llm = ChatTongyi(model="qwen-turbo")

使用 LLMGraphTransformer 创建

创建的图关系为英文,这是因为 Langchain 提示词是英文,可以自行修改。

复制代码
### 创建 Graph
from langchain_core.documents import Document
from langchain_experimental.graph_transformers import LLMGraphTransformer
from langchain_core.output_parsers import StrOutputParser
from IPython.display import Markdown, display
parser = StrOutputParser()

llm_transformer = LLMGraphTransformer(llm=llm)

content = """
1 、项目编号:遂政采 [2024]G 049 号
2 、项目名称:无人机设备采购项目
3 、项目预算: 1550967.00元 4 、最高限价: 1550967.00元

1 、本项目投标截止时间和开标时间为 2024 年 9 月 11 日 10 点 00 分 (北京
时间)。投标人必须在投标截止时间前将电子投标文件上传至江西省公共资源
交易网,逾期为无效投标。
2 、开标地点:江西省公共资源交易网不见面开标大厅。
"""
with open("out.md", "r", encoding="utf-8") as file:
    markdown_content = file.read()

chain = llm | parser
# display(Markdown(chain.invoke("转换为 Graph 三元组, 请用中文回答,并只返回 Cypher QL, 。 {} " + content)))

documents = [Document(page_content=content)]
graph_documents = llm_transformer.convert_to_graph_documents(documents)
print(f"Nodes:{graph_documents[0].nodes}")
print(f"Relationships:{graph_documents[0].relationships}")
graph.add_graph_documents(graph_documents, include_source=False)

使用 Cypher 创建

Neo4j 提供了使用 Cypher 进行数据创建、查询等,类似于关系数据库中的 SQL。用模型生成 Cypher 语句。

复制代码
### 创建 Graph
from langchain_core.documents import Document
from langchain_experimental.graph_transformers import LLMGraphTransformer
from langchain_core.output_parsers import StrOutputParser
from IPython.display import Markdown, display
parser = StrOutputParser()

llm_transformer = LLMGraphTransformer(llm=llm)

content = """
1 、项目编号:遂政采 [2024]G 049 号
2 、项目名称:无人机设备采购项目
3 、项目预算: 1550967.00元 4 、最高限价: 1550967.00元

1 、本项目投标截止时间和开标时间为 2024 年 9 月 11 日 10 点 00 分 (北京
时间)。投标人必须在投标截止时间前将电子投标文件上传至江西省公共资源
交易网,逾期为无效投标。
2 、开标地点:江西省公共资源交易网不见面开标大厅。
"""
with open("out.md", "r", encoding="utf-8") as file:
    markdown_content = file.read()

chain = llm | parser
display(Markdown(chain.invoke("转换为 Graph 三元组, 请用中文回答,并只返回 Cypher QL, 。 {} " + content)))

总结

本文介绍了如何使用大语言模型创建图数据,同样的方式也可以创建其他类型的数据源,只需要对提示词进行修改即可。

相关推荐
乔代码嘚1 小时前
2026 AI大模型全套资料免费领!30天从入门到架构部署,附面试真题与行业报告
人工智能·语言模型·面试·大模型·产品经理·ai大模型·大模型学习
I love studying!!!7 小时前
Hermes+Obsidian +本地LLM部署
语言模型
wei_shuo9 小时前
SenseNova U1多模态模型深度解析:基于 NEO-Unify 架构统一多模态理解与生成
语言模型·sensenova u1·办公小浣熊
I love studying!!!9 小时前
hermes的UI界面
语言模型
weixin_5536544810 小时前
有没有一种可能,现在的大语言模型已经发展得接近极限了?
人工智能·语言模型·大模型
纤纡.1 天前
本地部署 AI 大模型保姆级教程:Ollama 安装、模型下载与终端实战全流程
人工智能·深度学习·语言模型·llama
python零基础入门小白1 天前
Transformer、Token、RAG全解析,一篇读懂大模型核心机制!
人工智能·深度学习·学习·语言模型·大模型·transformer·产品经理
码上掘金1 天前
基于 YOLO 的小麦麦穗检测系统的设计与实现
人工智能·yolo·语言模型
生成论实验室1 天前
《事件关系阴阳博弈动力学:识势应势之道》第十一篇:双脑协同——WOLM与大模型的共生智能
人工智能·算法·语言模型·架构·创业创新
不知名的老吴1 天前
一文看懂:针对大语言模型的提示注入攻击
人工智能·语言模型·自然语言处理