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/18 10:54:14 阅读更多 →
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/18 10:55:10 阅读更多 →

最新新闻

NeuDecide:面向儿童语音交互的端到端轻量决策模型

NeuDecide:面向儿童语音交互的端到端轻量决策模型

1. 项目概述:一个被严重低估的“语音直通决策”范式转变最近在几个开源模型仓库和儿童教育硬件论坛里反复看到NeuDecide这个名字,点进去发现它不是又一个微调版 Whisper 或者 Whisper,而是一个彻底绕开传统语音识别(ASR&#xff0…

2026/10/20 18:14:48 阅读更多 →
企业大模型选型方法论:场景匹配、成本、工程与安全四维评估

企业大模型选型方法论:场景匹配、成本、工程与安全四维评估

前阵子有个做企业服务的哥们儿来找我聊,说他们准备把正在用的模型服务换掉,原因是“排行榜第一名已经换人了,我们是不是也该跟着换”。我当时就劝他先把预算和业务场景摆到桌面上,别急着追榜单。做模型选型这些年,我见…

2026/10/20 18:14:48 阅读更多 →
BC106上三角矩阵判定:从解题到工程应用的深度解析

BC106上三角矩阵判定:从解题到工程应用的深度解析

1. 从一道题看矩阵判定的门道"BC106 上三角矩阵判定"这个标题,第一次看到的人可能会觉得——不就是判断一个矩阵是不是上三角吗?有什么好讲的。但真正写过这道题、并且被它卡过的人都知道,这里面藏着不少容易翻车的地方。我第一次做…

2026/10/20 18:14:48 阅读更多 →
macOS本地AI照片视频搜索:多模型协同的隐私高效方案

macOS本地AI照片视频搜索:多模型协同的隐私高效方案

1. 这不是又一个“本地AI搜索”玩具,而是 macOS 上真正能管用的照片视频管家 你有没有过这种经历:去年夏天在海边拍的几百张照片,想找其中一张戴着草帽的合影,结果在相册里翻了二十分钟,最后靠模糊记忆点开某个日期文件…

2026/10/20 18:14:48 阅读更多 →
Archify开源项目商业化路径:从8万Star到$29/月SaaS产品

Archify开源项目商业化路径:从8万Star到$29/月SaaS产品

1. 项目概述:一个开源工具如何从代码仓库走向商业化产品“我免费开源的 Archify 约 8 万 Star,别人先做出了 $19/月的在线版”——这句话不是抱怨,而是一面镜子,照出了当代开源生态里最真实、也最容易被忽视的底层逻辑&#xff1a…

2026/10/20 18:14:48 阅读更多 →
生物医学传感器信号链设计:从换能原理到工程实践

生物医学传感器信号链设计:从换能原理到工程实践

简介:山东大学《生物医学传感器与测量》国家精品课程课件共447页,压缩包内为单个PDF文件,总大小46.57MB。课程面向生物医学工程、传感器技术相关专业学生,以及智能手环、血氧仪等可穿戴设备研发和医疗仪器应用工程师。内容从绪论入…

2026/10/20 18:13:46 阅读更多 →

日新闻

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 阅读更多 →