knowledge-graph-llms 代码实现解析:从文本到知识图谱的完整流水线拆解
knowledge-graph-llms 代码实现解析从文本到知识图谱的完整流水线拆解【免费下载链接】knowledge-graph-llmsIn this project, I explored how to extract knowledge graphs from text using LLMs, such as OpenAI GPT4o.项目地址: https://gitcode.com/gh_mirrors/kn/knowledge-graph-llms用 GPT-4o 把任意一段文本变成可视化知识图谱总共分几步knowledge-graph-llms 项目给出了答案它基于 LLM LangChain PyVis Streamlit 搭建了一条完整的知识图谱构建流水线只需输入文本就能自动抽取实体与关系并生成可拖拽、可筛选的交互式知识图谱。本文将从代码实现层面一步步拆解这条文本 → 知识图谱流水线的每个环节帮助新手彻底看懂它的工作原理。一、knowledge-graph-llms 是什么项目全景速览 knowledge-graph-llms 是一个轻量级的开源实验项目核心目标只有一个用大语言模型从纯文本中自动提取知识图谱数据。它的整体架构非常清晰由 4 个核心模块组成模块技术栈职责交互界面Streamlit提供文件上传与文本输入两种入口抽取引擎LangChain GPT-4o从文本中提取实体和关系图谱可视化PyVis生成可交互的力导向图异步调度asyncio高效执行 LLM 抽取任务整个项目只有三个核心代码文件界面入口app.py、核心逻辑generate_knowledge_graph.py以及用于实验探索的knowledge_graph.ipynb。麻雀虽小五脏俱全非常适合作为 LLM 知识图谱入门的参考模板。二、完整流水线拆解文本如何一步步变成知识图谱 在深入代码之前先建立全局视角。从输入一段文本到最终看到交互式知识图谱整个流水线共经历 6 个环节输入文本 → 封装为 Document → GPT-4o 抽取实体与关系 → 生成 GraphDocument → PyVis 构建网络图 → Streamlit 展示其中前三个环节由generate_knowledge_graph.py中的generate_knowledge_graph(text)函数统一调度先通过asyncio.run()执行异步抽取再把结果交给可视化函数渲染。下面我们按环节逐一拆解。三、环境准备最快 3 步完成依赖安装与密钥配置 ️在运行代码之前需要先准备好运行环境。这个项目的依赖非常精简全部集中在requirements.txt中主要包括langchain / langchain-experimental核心 LLM 框架与实验性图转换器langchain-openaiOpenAI 模型接入pyvis交互式图谱可视化streamlitWeb 界面框架python-dotenv环境变量管理一键安装全部依赖pip install -r requirements.txt配置 OpenAI API Key项目通过.env文件管理密钥。在项目根目录创建.env文件写入你的 OpenAI API Key 即可OPENAI_API_KEY你的密钥代码中通过load_dotenv()自动加载见generate_knowledge_graph.py第 6-14 行随后用os.getenv(OPENAI_API_KEY)读取无需手动传参。四、核心抽取引擎解析LLMGraphTransformer 如何实现实体关系抽取 ⚙️这是整个项目最精华的部分。知识图谱构建的关键在于实体识别和关系抽取而 project 巧妙地把这两件事全部交给了 LLM 完成。GPT-4o 的调用配置首先创建 LLM 实例代码中有一个非常值得注意的细节llm ChatOpenAI(temperature0, model_namegpt-4o)temperature0意味着让模型保持确定性输出避免每次运行抽取结果随机波动这对知识图谱构建这类需要稳定结果的任务至关重要。异步抽取函数 extract_graph_data 的实现思路接下来是抽取环节代码将文本封装成 LangChain 的Document对象再交给LLMGraphTransformer的异步方法处理documents [Document(page_contenttext)] graph_documents await graph_transformer.aconvert_to_graph_documents(documents)LLMGraphTransformer是 LangChain 实验性模块提供的文本→图转换器它会自动引导模型完成两件事抽取实体Nodes并为其分类如 Person、Organization、Concept、Event 等类型以及识别实体之间的语义关系Relationships并标注关系类型如 DEVELOPED、MOVED_TO、WORKED_AT 等。以项目 notebook 中的爱因斯坦文本为例GPT-4o 能从一段人物传记中抽取 35 个节点和 32 条关系——从Albert Einstein → DEVELOPED → Theory Of Relativity到Albert Einstein → RECEIVED → 1921 Nobel Prize In Physics实体与关系覆盖人物、地点、组织、奖项、概念、事件等多种类型效果相当惊艳。五、可视化模块拆解PyVis 让知识图谱活起来 抽取完成后的GraphDocument只是结构化数据要想直观展示还需要可视化的加持。项目选用 PyVisvis.js 的 Python 接口来完成这一步。节点与边的构建逻辑在visualize_graph函数中有几个值得学习的工程细节建立节点索引先把所有节点放进字典node_dict便于快速查找过滤非法边只保留源节点和目标节点都真实存在的边防止出现悬空连接按类型着色通过groupnode.type让同类型节点显示同一颜色视觉上层次分明容错处理添加节点和边时使用 try/except 跳过异常数据保证单个脏数据不会拖垮整个渲染流程。forceAtlas2Based 物理布局为了让图谱看起来更美观、更易读代码为 PyVis 配置了forceAtlas2Based物理引擎通过调整引力常数、弹簧长度等参数让节点自动散开、关联紧密的节点相互靠近形成符合直觉的力导向布局。最终图谱会保存为独立的knowledge_graph.html文件用户可以在浏览器中自由拖拽节点、滚动缩放、悬停查看详情还能使用筛选菜单过滤指定节点。六、Streamlit 交互界面解析两种输入方式一次讲透 项目的用户界面由app.py实现代码逻辑非常简洁。它通过侧边栏的单选组件提供了两种输入方式。方式一上传 .txt 文件用户选择 Upload txt 后界面出现文件上传组件代码将上传的文件读取并解码为 UTF-8 文本text uploaded_file.read().decode(utf-8)方式二直接输入文本用户也可以选择 Input text在文本框中直接粘贴任意内容例如新闻、论文摘要、人物介绍无需创建文件。无论哪种方式点击Generate Knowledge Graph按钮后都会进入统一的处理流程调用generate_knowledge_graph(text)生成图谱 → 保存为 HTML 文件 → 通过components.html()内嵌到 Streamlit 页面中展示。整个交互只有几十行代码却构成了一个完整的输入—处理—展示闭环非常适合初学者模仿学习。七、进阶玩法限定节点类型与关系类型让抽取更精准 如果觉得默认抽取太自由项目在knowledge_graph.ipynb中还演示了两种精准控制技巧限定节点类型通过allowed_nodes参数只抽取 Person、Organization、Location、Award 等指定类型的实体过滤掉无关概念限定关系类型通过allowed_relationships参数指定关系三元组模板例如只保留(Person, WORKS_AT, Organization)这类关系让抽取结果严格符合业务需求。这两个参数是LLMGraphTransformer内置的能力适合在特定领域如人物履历分析、公司关系网中控制知识图谱的精度。八、快速上手指南从零跑通整个项目 想亲自体验这条知识图谱构建流水线按下面的步骤操作即可克隆项目git clone https://gitcode.com/gh_mirrors/kn/knowledge-graph-llms安装依赖执行pip install -r requirements.txt配置密钥创建.env文件并填入OPENAI_API_KEY启动应用streamlit run app.py启动后浏览器会自动打开 Streamlit 界面默认地址 http://localhost:8501粘贴一段文本并点击生成按钮稍等片刻就能看到属于你的知识图谱了。结语 knowledge-graph-llms 虽然代码量不大却完整覆盖了文本 → LLM 抽取 → 图谱可视化 → 交互展示的全链路是学习 LLM 知识图谱构建的绝佳样板。它的核心启发在于借助大模型的理解能力知识图谱构建不再依赖繁琐的规则编写只需几行代码即可完成。如果你正在探索如何用 LLM 从非结构化文本中挖掘结构化知识这个项目值得仔细研读。【免费下载链接】knowledge-graph-llmsIn this project, I explored how to extract knowledge graphs from text using LLMs, such as OpenAI GPT4o.项目地址: https://gitcode.com/gh_mirrors/kn/knowledge-graph-llms创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

为什么你的README没人看?readme-checklist 教你用“为什么“而非“是什么“写出吸睛项目简介

为什么你的README没人看?readme-checklist 教你用“为什么“而非“是什么“写出吸睛项目简介

为什么你的README没人看?readme-checklist 教你用"为什么"而非"是什么"写出吸睛项目简介 【免费下载链接】readme-checklist A checklist for writing READMEs 项目地址: https://gitcode.com/gh_mirrors/re/readme-checklist 代码写完了…

2026/10/20 19:05:17 阅读更多 →
autobloody 是什么?自动利用 BloodHound 攻击路径的 AD 权限提升神器完全解析

autobloody 是什么?自动利用 BloodHound 攻击路径的 AD 权限提升神器完全解析

autobloody 是什么?自动利用 BloodHound 攻击路径的 AD 权限提升神器完全解析 【免费下载链接】autobloody Tool to automatically exploit Active Directory privilege escalation paths shown by BloodHound 项目地址: https://gitcode.com/gh_mirrors/au/autob…

2026/10/20 4:27:30 阅读更多 →
macOS Preview 终极指南:从图片处理到PDF编辑的隐藏技巧

macOS Preview 终极指南:从图片处理到PDF编辑的隐藏技巧

1. 项目概述:被低估的“瑞士军刀” 如果你在Mac上工作,每天都会和它打交道,但你可能从未真正认识它。我说的就是那个图标像个放大镜看文件的「预览」(Preview)。在很多人眼里,它就是个“看图软件”或者“PDF阅读器”,点…

2026/10/20 19:05:16 阅读更多 →

最新新闻

缠论源码包v1.2实战:分型笔线段与背驰买卖点信号详解

缠论源码包v1.2实战:分型笔线段与背驰买卖点信号详解

简介:包含缠论公式源码的压缩包,面向熟悉缠论理论且具备大智慧或飞狐平台指标编写基础的投资者,用于将缠论的中枢、走势类型与买卖点判断转化为可视化图表信号,提升盯盘与分析效率。包内共16个文件,以cpp与h源码文件为…

2026/10/20 19:05:03 阅读更多 →
10款开源免费降AI率工具实测:从检测原理到选型避坑全指南

10款开源免费降AI率工具实测:从检测原理到选型避坑全指南

先说个结论放在前面:我这两周把市面上能找到的、标着“开源免费”或者“免费不限次数”的降AIGC工具挨个试了一遍,真正值得留下来用的不超过十个。这篇就把我的筛选过程、统一测评结果、以及每个工具的适用场景完整写出来,不吹不黑&#xff0…

2026/10/20 19:05:03 阅读更多 →
anydoc:把Word、PPT、Excel、PDF一键转为干净Markdown

anydoc:把Word、PPT、Excel、PDF一键转为干净Markdown

那些年被文档格式逼疯过的朋友,这回可以松口气了。Word、PPT、Excel、PDF,这四位大爷平时各说各话,想把他们整整齐齐地归拢到一个地方,过去得靠人肉复制粘贴,或者一堆格式互转的中间步骤,折腾半天还到处是乱…

2026/10/20 19:05:03 阅读更多 →
基于Matlab的指纹识别系统:预处理、特征提取与GUI实现

基于Matlab的指纹识别系统:预处理、特征提取与GUI实现

简介:这份资源面向计算机、电子信息工程、数学等专业的大学生,提供一套基于Matlab实现的指纹识别系统完整毕业设计参考方案,适合用于课程设计、期末大作业或毕业设计阶段的学习与借鉴。资源包内含源码、图片素材、PPT演示文稿及课题介绍文档&…

2026/10/20 19:05:03 阅读更多 →
ManiSkill panda_wristcam 腕部相机机械臂:从最小示例到参数覆盖的完整指南

ManiSkill panda_wristcam 腕部相机机械臂:从最小示例到参数覆盖的完整指南

ManiSkill panda_wristcam 腕部相机机械臂:从最小示例到参数覆盖的完整指南 【免费下载链接】ManiSkill Manipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark 项目地址: https://gitcode.com/GitHub_Trending/ma/Ma…

2026/10/20 19:05:03 阅读更多 →
基于改进鲸鱼算法的六自由度机械臂3-5-3多项式时间最优轨迹规划

基于改进鲸鱼算法的六自由度机械臂3-5-3多项式时间最优轨迹规划

机械臂的轨迹规划,说白了就是在“怎么走”和“走多快”之间做交易。生产线节拍压得紧,机械臂末端就得跑得更快,但速度一上来,关节的冲击和振动也跟着上来,时间久了螺丝都能给你抖松。我做过的一个很典型的项目——基于…

2026/10/20 19:04:03 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →