当前位置: 首页 > article >正文

使用大语言模型创建 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)))


在这里插入图片描述

总结

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


http://www.kler.cn/a/400611.html

相关文章:

  • 【计算机网络安全】湖北大学-mysql事务隔离性实验
  • BERT模型中的嵌入后处理与注意力掩码
  • 15分钟学 Go 第 59 天 :更高级的Go话题——接触微服务
  • Python爬虫下载新闻,Flask展现新闻(2)
  • PCL 三维重建 耳切三角剖分算法
  • vue+svg圆形进度条组件
  • css中的box-sizing,记录
  • 基于YOLOv8深度学习的智慧健康室内行人跌倒监测系统(PyQt5界面+数据集+训练代码)
  • 【qt】控件2
  • Java之遍历List集合安全地删除元素
  • 采用多种深度学习、机器学习算法实现目标意图识别系统——含完整项目源码
  • 场景营销在企业定制开发 AI 智能名片 S2B2C 商城小程序中的应用与价值
  • 实用办公AI合集;绘图、扣图、视频、文转声等
  • 谷粒商城のRabbitMQ高级篇最终一致性解决方案。
  • Python技巧:查询模块的版本号的方法
  • 百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章
  • C/C++精品项目之图床共享云存储(2):MySql连接池
  • 有序数组的平方(leetcode 977)
  • Redis自学之路—基础数据结构具体方法解析(五)
  • 【网络安全 | 甲方建设】双/多因素认证、TOTP原理及实现
  • 基于 MATLAB 的模拟退火算法详解及实现
  • 小鹏汽车嵌入式面试题及参考答案
  • MySQL索引原理之查询优化
  • Altenergy电力系统控制软件 status_zigbee SQL注入漏洞复现(CVE-2024-11305)
  • MATLAB绘制正四面体、正六面体
  • LSTM 和 LSTMCell