Semantica 知识图谱:让 AI 决策“可回答为什么“的五大能力域与最短路径
2026/9/17 9:01:32 网站建设 项目流程

Semantica 知识图谱:让 AI 决策"可回答为什么"的五大能力域与最短路径

【免费下载链接】semanticaGraph-Native Infrastructure for Context and Accountable AI Systems项目地址: https://gitcode.com/GitHub_Trending/sema/semantica

"为什么"不在模型里,在图里

一家公司的知识通常散落在三种地方:产品文档 PDF、历史决策纪要、数仓里的业务表。当 Agent 要做一个决定——选云厂商、判一单风险——它能调用的往往只是向量检索碰巧命中的几段文本。之后审计员问"系统为什么选了它",没有人答得上来。

Semantica 补的就是这个缺口:它把"数据"与"决策"的关系,从"向量库里散落着相似片段",改成"每个事实、每个实体、每条决策都挂在一张图上,互相连着、可以追溯"。它不替代你的 LLM 或向量库,而是垫在下面的一层:构图、推理、溯源全部是确定性的,不用任何模型也能跑,用到 LLM 时也是可选且供应商中立的。

一份文件怎样变成可查询的知识图谱

数据流是一条单向的路:文件、网页、湖仓表、消息流先经统一摄取(Ingest),再解析(Parse)与归一化,随后做实体与关系抽取,最后由 GraphBuilder 组装成图——组装时同步做实体合并、冲突检测、可选的时间标注。图落进两类存储:图数据库(Neo4j、FalkorDB、Oxigraph 等)或内存 NetworkX,向量库则承载语义检索。全程有一个贯穿层在记录"这条信息从哪个源来、置信度多少"。

五个能力关键词,记住名词即可:

  • 多源数据摄取
  • 语义抽取(实体 / 关系 / 事件)
  • 时序知识图谱
  • 图存储与向量存储双写
  • W3C PROV-O 决策溯源

一句话边界:如果你的场景是"把一批文档变成可查询、可审计的图",它够用;如果你要的是训练模型本身或纯向量检索引擎,把它当作辅助层,别当主力。

最短路径:从一份 PDF 到看得见的图

安装并确认版本(你会看到 0.7.0 这样的输出):

pip install semantica python -c "import semantica; print(semantica.__version__)"

加载本地 PDF,走完摄取 → 解析 → 抽取 → 构图 → 可视化的最小闭环(你会得到一个graph.html,浏览器打开后可缩放、点节点看详情、按实体类型过滤):

from semantica.ingest import FileIngestor from semantica.parse import DocumentParser from semantica.semantic_extract import NERExtractor, RelationExtractor from semantica.kg import GraphBuilder from semantica.visualization import KGVisualizer text = DocumentParser().parse("data/report.pdf")["full_text"] entities = NERExtractor(method="pattern").extract(text) rels = RelationExtractor(method="pattern").extract(text, entities=entities) graph = GraphBuilder(merge_entities=True).build( {"entities": entities, "relationships": rels}) KGVisualizer(layout="force").visualize_network( graph, output="html", file_path="graph.html", node_color_by="type")

注意:当前仓库版本是 v0.7.0,相比 0.6.x 把约 22 个重量级包移入了可选 extras。如果照旧资料跑报"缺依赖",见下文"意外三"。

三个非直觉的默认选择,值得知道为什么:

  • 抽取用pattern而非 LLM:它是规则模板匹配,不需要任何 API Key,"founded by"、"located in" 这类通用关系开箱即有,跑通闭环零成本;复杂文本后面随时切llm模式提精度,两路接口一致。
  • merge_entities=True:多文档汇聚时,"Apple"、"Apple Inc."、"AAPL" 会按语义相似度合并成一个节点,否则同一公司在图里会裂成好几座孤岛。
  • 默认内存图:进程结束即失,适合实验;生产上给GraphBuilder传一个graph_store参数即可落持久化后端,构图代码不用改。

五大能力域:用到哪个就看哪个

数据接入:数据散在十种格式里时

当源数据横跨本地文件、网页、湖仓表和消息流时,每个源对应一个独立的 ingestor,返回类型各自不同但都带.text/ 结构化记录与.metadata

场景Ingestor说明
本地文件 / 目录FileIngestor递归扫描,覆盖 PDF、DOCX、Excel、PPTX 等
网页正文WebIngestor返回文本可直接进抽取,免解析
湖仓 / 数仓表DatabricksIngestor/SnowflakeIngestor带目录级血缘信息
结构化记录ParquetIngestor/XMLIngestor跳过解析,直接构图

进阶指引:完整二十余种源(邮件、Kafka、Git 仓库、MCP 等)见 ingest。

语义抽取:文本变成"节点与边"时

当你要控制"抽什么、用多准"时,抽取器用method参数切换策略,实体类型用entity_types限定,低置信度结果用min_confidence过滤。

场景推荐配置说明
零 Key 跑通method="pattern"内置关系模板库,无需配置
自定义领域模板method="regex" / "rules"按自己的句式写规则
生产级精度method="llm"+provider也支持 OpenAI 兼容网关
多方法互证传方法列表回退链 + 投票,min_votes控阈值

进阶指引:事件检测、三元组生成、本体约束校验(SchemaValidator)见 semantic_extract。

图构建与存储:图要"活得久"时

当进程会重启、或多服务要读同一张图时,给 GraphBuilder 传持久化后端即可,上层代码不变。

场景后端说明
本地实验内存(默认)无外部依赖
生产 LPGneo4j/falkordbCypher 生态
RDF / SPARQL 生态Oxigraph、RDF4J 等 triplet store标准语义网协议
时序查询enable_temporal=True边上标注 valid_from / valid_until,可定点回放

进阶指引:后端清单与切换方式见 graph_store。

溯源与决策智能:要回答"为什么"时

当每一次 Agent 决策都可能需要向审计方交代时,AgentContext把向量库、图、决策记录绑在一起:事实入库带来源,决策成为一等对象,可查前例、可追因果链。

场景调用说明
记录一条决策record_decision(...)类别 / 场景 / 理由 / 结果 / 置信度五要素
查相似历史决策find_precedents(...)向量 + 图混合检索,防前后矛盾
追溯因果链trace_decision_chain(...)完整上游因果
查单个事实的来源get_all_sources(...)W3C PROV-O 标准

进阶指引:多 Agent 共享上下文的装配见 context。

下游对接:图要被别的系统"用"时

当图要喂给 Spark、语义网生态或现成的 Agent 框架时,导出器与集成包是即插即用的。

目标方式说明
Spark / BigQuery 分析ParquetExporter实体、关系各落一个文件
语义网生态RDFExporterturtle / json-ld / nt,置信度统一为 xsd:decimal
现成 Agent 框架Agno / CrewAI / LangChain 集成包作为工具或记忆层挂载
浏览器交互探索explorer 可视化工作台无需写前端

进阶指引:CSV、OWL、Arrow、AQL 等十余种格式见 export。

三域串联的一个真实场景:受监管环境下的"决策审计"——向量库存事实、图存关系、决策追踪留痕,一次 import 全打通(你会拿到可追溯的决策 ID,下次同类决策前可先查前例):

from semantica.context import AgentContext, ContextGraph from semantica.vector_store import VectorStore ctx = AgentContext(vector_store=VectorStore(backend="faiss", dimension=768), knowledge_graph=ContextGraph(advanced_analytics=True), decision_tracking=True) ctx.store("GPT-4 outperforms GPT-3.5 on reasoning by 40%") did = ctx.record_decision(category="model_selection", scenario="Select LLM", reasoning="Benchmark advantage justifies cost", outcome="selected_gpt4", confidence=0.91) ctx.find_precedents("model selection", limit=5) # 相似历史决策

你会碰到的三个意外,以及已知边界

  • 抽取结果空无一物→ PDF 是扫描件,没有文本层 → 换DoclingParser(enable_ocr=True)(需pip install semantica[parse-docling])。
  • 进程一重启图就没了→ 默认内存 NetworkX 不持久 →GraphBuilder(graph_store=GraphStore(backend="neo4j", ...))
  • 报"缺少某某依赖"→ v0.7.0 起 spaCy、plotly、docx 解析等移入可选 extras → 按需装对应 extra,或pip install "semantica[all]"一把装齐。
  • pattern 抽取在领域文本上"懂的非它、漏的没漏"→ 内置模板库是通用英文向 → 领域任务改用regex/rules自写模板,或切llm模式后抽样评测。

不回避的局限:pattern抽取器的模板库以英文通用语料为主,中文与强领域文本建议直接上 LLM 模式并留人工抽检;内存图没有规模上限,超大语料要流式摄取(scan_directory逐篇处理)+ 持久化后端;它提供的是系统级可解释性——讲清"喂了什么上下文、触发了什么规则",模型内部依然不透明。

延伸阅读,按时机取用:

  • docs/quickstart.md —— 想按官方节奏再走一遍全流水线、对照自己文档格式时;
  • docs/modules.md —— 需要确认"某个功能在哪个模块"、又不想翻源码时;
  • docs/choose-your-module.md —— 带着明确目标(比如"建一张时序图谱")想直接对号入座时。

最后一件事留给读者自己:如果这张图谱要跨机构共享,而每家机构只能看见自己贡献节点的溯源,权限模型该设计在哪一层——导出时裁剪、查询时过滤,还是在图结构上就分区?

【免费下载链接】semanticaGraph-Native Infrastructure for Context and Accountable AI Systems项目地址: https://gitcode.com/GitHub_Trending/sema/semantica

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询