在网站上上传文件需要怎么做上海简站商贸有限公司
在网站上上传文件需要怎么做,上海简站商贸有限公司,网站维护客户,用手机制作app如何在知识提取与可视化管道中使用 LLMs 前言
知识图谱是一种强大的信息表达方式#xff0c;由“实体”#xff08;节点#xff09;及它们之间的“关系”#xff08;边#xff09;组成#xff0c;使我们能够比纯文本更直观地洞察事物之间的关联。
传统上#xff0c;从…如何在知识提取与可视化管道中使用 LLMs前言知识图谱是一种强大的信息表达方式由“实体”节点及它们之间的“关系”边组成使我们能够比纯文本更直观地洞察事物之间的关联。传统上从原始文本构建知识图谱十分耗时且复杂既要识别实体及其关系又要编写提取规则或训练专用的机器学习模型。近年来大语言模型LLMs凭借其出色的自然语言理解能力提供了一种更加灵活、高效的替代方案。LLMs 能直接读取自由文本并输出结构化信息使我们能够将其集成到自动化流水线中一键生成知识图谱。本文将介绍我设计的一个学习项目构建一条基于 LLM 的管道将非结构化文本转化为可交互的网页知识图谱。项目所有代码均托管于 AI-Knowledge-Graph 仓库。示例说明以下示例展示了该项目的核心能力。假设我们提供这段非结构化文本作为输入Henry一位来自加拿大的才华横溢的音乐家最初在著名指挥家 Maria Rodriguez 门下学习古典钢琴。后来Henry 与他的妹妹 LucyLucy 曾在多伦多大学学习作曲组成了摇滚乐队The Maple Leaves。The Maple Leaves于 2020年8月12日 发布首张专辑《Polar Lights》因巧妙融合古典与摇滚风格而赢得好评。Lucy 投身环保事业担任Clean Earth的地区大使倡导更严格的野生动物保护法。Henry 受其感染开始在家乡动物收容所做志愿者。尽管兄妹二人在创作理念上最初存在分歧但最终通过将 Lucy 的古典作曲与 Henry 的摇滚吉他即兴结合达成完美和谐。2021年The Maple Leaves在欧洲巡演于巴黎、柏林、罗马等地举办多场售罄演出。巡演期间Henry 对国际美食产生浓厚兴趣并与当地厨师合作拍摄了一部短纪录片展示各地烹饪技法。ai-knowledge-graph工具会调用你配置的 LLM从上述文本中自动提取“实体—关系”对并生成一个交互式 HTML 知识图谱效果示例如下示例AI-Knowledge-Graph 生成的知识图谱架构概述工作流程•文本分块自动将大型文档拆分成可管理的小块便于后续处理。•知识抽取使用大语言模型LLM识别并提取每个文本块中的主谓宾三元组事实。•实体标准化将同一实体的不同表述如 “AI” 与 “artificial intelligence”统一为一个标准名称。•关系推断借助简单的逻辑规则例如传递性和 LLM 推理补充推断出跨块未直接连接的关系。•交互式可视化在浏览器中以交互式网络的形式展示最终图谱支持节点拖拽、缩放和详情查看。高层次展示“文本 → 知识图谱”转换管道详细工作流程1. 文本分块由于 LLM 存在上下文窗口限制本地系统也受内存约束工具会先将大篇幅文本切分为若干小块例如每块 500 字且带有一定重叠。重叠部分可确保边界句子的上下文连贯性。每个文本块随后被发送给 LLM并附带提示要求其提取该块中的 SPO三元组事实。2. 基于 LLM 的知识抽取对每个文本块工具会让 LLM 输出一个 JSON 数组列出所有提取到的三元组及其所在的块编号。示例[ { subject:eli whitney, predicate:invented, object:cotton gin, chunk:1 }, { subject:Industrial Revolution, predicate:reshapes, object:economic systems, chunk:1 }, { subject:amazon, predicate:transformed, object:retail, chunk:3 } ]提示中强调•对同一实体使用一致的名称•关系短语保持简洁1–3 个词•不要使用代词引用将所有分块提取出的三元组合并后就得到了初步的“原始”知识图谱。3. 在分块间标准化实体提取完毕后常会出现同一实体的多种写法例如 “AI”、“A.I.”、“artificial intelligence”。为避免节点碎片化或重复工具提供了实体标准化步骤1.基本归一化•全部小写•去除首尾空白•合并明显重复的名称2.高级标准化可选•启用后LLM 会将可能指向同一实体的不同描述聚类为同一个规范名称。•例如 “New York”、“NYC” 与 “New York City” 会合并为一个节点•“United States”、“U.S.” 与 “USA” 会合并为另一个节点•建议开启以提高图谱一致性如需保留“纯粹”原始提取可在配置文件中禁用此功能。4. 推断隐藏关系丰富图谱即便对文本进行了全面抽取也可能漏掉一些隐含的关联。工具通过两种方式补充此类关系1.规则驱动推断•传递性关系•如果 A “enables” B且 B “drives” C则可推断 A “influences” C•词汇相似性•名称相近的实体可自动建立通用的 “related to” 关系2.LLM 辅助推断•向 LLM 提示让其在未连接的子图之间提出可能的关联。•例如一个子图聚焦“工业革命”另一个子图关注“AI”LLM 可能推断出“AI 是源于工业革命时期技术创新的发展成果”。•这些推断关系在可视化时会用虚线标记以区分于显式陈述的事实。注意•如需仅展示文本直接抽取的关系可在配置文件中关闭推断步骤。•推断关系条目不包含chunk字段而是增加一个inferred: true属性用于渲染时区分。示例推断关系格式:[ { subject:electrification, predicate:enables, object:Manufacturing Automation, inferred:true }, { subject:tim berners-lee, predicate:expanded via internet, object:information sharing, inferred:true } ]5. LLM 提示模板当启用所有选项时会向 LLM 发送以下四个提示。首先是主体-谓词-宾语SPO知识抽取提示。一、抽取系统提示System Prompt你是一名专注于知识抽取与知识图谱生成的高级 AI 系统。 你的专长包括在文本中识别一致的实体引用和有意义的关系。 关键指令所有关系谓词最多不超过3个单词。理想长度为1–2个单词。这是硬性要求。二、抽取用户提示User Prompt任务阅读下方以三重反引号包裹的文本识别每句话中的所有主体-谓词-宾语S-P-O关系。然后输出一个 JSON 数组每个对象表示一个三元组。 请严格遵循以下规则 -实体一致性全文使用统一的实体名称。例如“JohnSmith”若被称作“John”、“Mr.Smith”和“JohnSmith”都应统一为最完整形式。 -原子术语识别独立关键术语如对象、地点、机构、缩写、人名、概念、情感等避免将多个概念合并成一个术语。 -消除代词将“he”、“she”、“it”、“they”等代词替换为实际实体若可识别。 -配对关系若多个术语在同一句或同一上下文段落中关联针对每个有意义的配对生成一个三元组。 -关键指令谓词最多1–3个单词绝对不能超过3个单词务必保持极简。 -确保识别并捕获文本中所有可能的关系。 -术语标准化若同一概念存在细微变体如“artificial intelligence”与“AI”全文统一使用最常见或规范形式。 -所有 S-P-O 文本均转换为小写包括人名与地名。 -若文中出现人物若上下文提供其地点、职业或代表作如发明、著作、创立、职称等应生成相应关系。 重要注意事项 -实体命名要精准区分相似实体。 -最大化节点连通性同一概念务必使用相同名称。 -捕捉整个文本上下文确保实体引用准确。 -所有谓词必须≤3个单词此为硬性要求。 输出要求: -不要包含任何注释或额外文字仅返回 JSON 数组。 -每个三元组用对象表示包含subject、predicate和object三个字段。 -确保输出为合法且格式正确的 JSON。除了前述的四个提示外项目中还有三个用于实体标准化和关系推断的提示模板。你可以在 src/knowledge_graph/prompts.py[2] 文件中查看并根据需要调整它们。6. 交互式图谱可视化在完成对所有 SPO 三元组包括原始与推断提取后工具会调用PyVisVis.js 的 Python 接口生成一个交互式 HTML 可视化页面。打开输出文件后你将看到•颜色编码的社区同一聚类内的节点颜色一致通常对应文本中的子主题或主题。•节点大小表示重要性连接数多或中心性高的节点会显示得更大。•边线样式•实线文本直接提取的关系•虚线推断得到的关系•交互控件支持平移、缩放、拖拽节点可切换物理引擎切换亮/暗模式按需过滤视图。这样的交互式图谱能让你以直观且美观的方式探索实体及其关联。7. 程序流程下面是工具的基本执行流程更多细节请参见仓库 README.md 中的流程图安装 AI-Knowledge-Graph要在本地运行该工具请确保满足以下环境要求并完成依赖安装。系统与环境要求•操作系统Windows、Linux 或 macOS•Python3.12 及以上•OpenAI 兼容 API 接口如 Ollama、LiteLLM、LM Studio、OpenAI 订阅等•Git用于克隆仓库安装步骤1.克隆仓库并进入目录git clone https://github.com/robert-mcdermott/ai-knowledge-graph.gitcd ai-knowledge-graph2.安装依赖•使用uvuv sync•或使用pippip install -r requirements.txt完成以上步骤后即可运行示例脚本将任意非结构化文本转为交互式知识图谱。配置 AI-Knowledge-Graph编辑config.toml文件以根据你的需求进行调整。在此文件中你可以配置 LLM 模型、API 端点URL、最大内容窗口长度、以及 LLM 的温度参数。以下示例中我使用的是 Google 的开源 Gemma 3 模型托管在本地计算机上并通过 Ollama 提供服务。你还可以在此处调整文档分块大小、重叠部分并选择是否启用实体标准化和关系推断功能。[llm] model gemma3# 使用的 LLM 模型 api_key sk-1234# API 密钥如果需要 base_url http://localhost:11434/v1/chat/completions# 端点 URL max_tokens 8192# 最大令牌数 temperature 0.2# 温度控制生成文本的创造性 [chunking] chunk_size 200# 每个分块的词数 overlap 20# 分块之间重叠的词数 [standardization] enabled true# 是否启用实体标准化 use_llm_for_entities true# 是否使用 LLM 进行额外的实体解析 [inference] enabled true# 是否启用关系推断 use_llm_for_inference true# 是否使用 LLM 进行关系推断 apply_transitive true# 是否应用传递性推断规则 [visualization] edge_smooth false# 是否平滑边缘线true 或 false注意•本地使用 LLM 时可选择 Ollama 或 LM Studio 的 API 端点•若要接入商业 LLM 提供商如 AWS Bedrock、Azure、Anthropic、OpenAI 等可通过 LiteLLM 代理访问。创建知识图谱现在你已经安装并配置了ai-knowledge-graph并将其指向了你使用的 LLM你就可以开始创建第一个知识图谱了。首先获取一个纯文本文档目前该工具仅支持文本文件并准备生成知识图谱。接下来你需要运行generate-graph.py脚本。以下是脚本的帮助信息usage: generate-graph.py [-h][--test][--config CONFIG][--output OUTPUT][--input INPUT][--debug][--no-standardize][--no-inference] KnowledgeGraphGeneratorandVisualizer options: -h,--help show this help message andexit --test Generate a test visualization with sample data --config CONFIG Path to configuration file --output OUTPUT Output HTML file path --input INPUT Path to input text file (required unless--test is used) --debug Enable debug output (raw LLM responses and extracted JSON) --no-standardize Disable entity standardization --no-inference Disable relationship inference创建知识图谱示例假设你有一个名为 mydocument.txt 的文本文件存放在当前目录运行以下命令来创建知识图谱python generate-graph.py --input mydocument.txt --output mydocument.html如果你使用的是uv则替换命令中的python为uv run。完整管道运行输出示例运行上述命令后控制台会显示如下输出python generate-graph.py --input mydocument.txt --output mydocument.html Using input text from file: mydocument.txt PHASE 1: INITIAL TRIPLE EXTRACTION Processing text in3 chunks (size:500 words, overlap:50 words) Processing chunk 1/3(500 words) Processing chunk 2/3(500 words) Processing chunk 3/3(66 words) Extracted a total of 73 triples from all chunks PHASE 2: ENTITY STANDARDIZATION Startingwith73 triples and106 unique entities Standardizing entity names across all triples... Applied LLM-based entity standardization for15 entity groups Removed8self-referencing triples Standardized106 entities into101 standard forms After standardization:65 triples and72 unique entities PHASE 3: RELATIONSHIP INFERENCE Startingwith65 triples Top5 relationship types before inference: - pioneered:9 occurrences - invented:7 occurrences - developed:6 occurrences - develops:6 occurrences - was:4 occurrences Inferring additional relationships between entities... Identified18 disconnected communities in the graph Inferred27new relationships between communities Inferred30new relationships between communities Inferred6new relationships within communities Inferred8 relationships based on lexical similarity Added51 inferred relationships Top5 relationship types after inference: - invented:7 occurrences - pioneered:6 occurrences - developed:6 occurrences - develops:6 occurrences - related to:6 occurrences Added57 inferred relationships Final knowledge graph:116 triples Saved raw knowledge graph data to mydocument.json Processing116 triples for visualization Found72 unique nodes Found55 inferred relationships Detected12 communities usingLouvain method Knowledge graph visualization saved to mydocument.html KnowledgeGraphStatistics: Nodes:72 Edges:116(55 inferred) Communities:12 To view the visualization, open the following file in your browser: file:///Users/robertm/mycode/ai-knowledge-graph/mydocument.html现在你可以在浏览器中打开生成的 HTML 文件来探索知识图谱。如果你只是跟随阅读并希望直接查看由该系统创建的知识图谱示例可以点击以下链接查看一个关于工业革命的文档生成的可视化示例Industrial-Revolutions.html[3]。在网页的顶部菜单中你可以找到控制面板用于调整布局物理引擎、隐藏或显示节点/边缘标签、查看图谱统计信息或者选择/过滤节点和边缘。你还可以切换到暗黑模式如下所示调整设置进行实验实验不同的分块/重叠大小和 LLM 模型以查看它们带来的不同效果是非常重要的。一般来说我将重叠设置为分块大小的 10%。较小的文档分块大小100–200似乎能提取出更多的关系但这可能会导致与其他事物和概念/社区之间的关系较少尤其是当它们被分散在较小的文本块中时。你需要通过实验来找到最适合的分块大小和模型。此外我相信通过调整提示词prompts也能进行许多优化。写在最后LLM Agent 的诞生为我们提供了一个极具想象空间的技术路线它将传统模型的强大语言理解能力与外部工具的实际动手能力相结合创造出无限可能的应用空间。希望这篇文章能够启发你进一步探索和创新用有限的代码创造出更加强大、高效且安全的智能体推动人工智能真正落地到更多场景惠及更多人群。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】