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

使用大语言模型创建 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.lryc.cn/news/485290.html

相关文章:

  • Java poi 模板导出Word 带图片
  • SpringCloud-使用FFmpeg对视频压缩处理
  • shell bash---类似数组类型
  • IIoT(Industrial Internet of Things,工业物联网)
  • 【C++】引用(reference)
  • 学习日记_20241115_聚类方法(层次聚类)
  • 安卓开发怎么获取返回上一级activity事件
  • 神经网络与Transformer详解
  • C语言之MakeFile
  • vue项目PC端和移动端实现在线预览docx、excel、pdf文件
  • FlinkSql读取kafka数据流的方法(scala)
  • .NET 9 中 IFormFile 的详细使用讲解
  • 使用阿里云远程访问 Synology Web Station 的指南
  • LlamaFactory介绍
  • vue 项目使用 nginx 部署
  • <项目代码>YOLOv8 玉米地杂草识别<目标检测>
  • Wxml2Canvas小程序将dom转为图片,bug总结
  • [ 网络安全介绍 3 ] 网络安全事件相关案例有哪些?
  • SpringMVC学习笔记(二)
  • 51c嵌入式~单片机合集2
  • JavaScript:浏览器对象模型BOM
  • Unity音频导入设置
  • 【数据分享】中国对外投资合作发展报告(2013-2023)
  • java8之Stream流
  • pipx安装提示找不到包
  • Codeforces Round 987 (Div. 2)(前四道)
  • PCB+SMT线上报价系统+PCB生产ERP系统自动化拼板模块升级
  • 微信小程序_小程序视图与逻辑_day3
  • kubesphere环境-本地Harbor仓库+k8s集群(单master 多master)+Prometheus监控平台部署
  • 【提高篇】3.3 GPIO(三,工作模式详解 上)