semantica

GitHub
943 153 非常简单 1 次阅读 今天MIT数据工具Agent语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

Semantica 是一个专为构建可解释、可追溯的 AI 系统而设计的框架,旨在为人工智能应用添加“语义层”和“决策智能”。当前许多 AI 代理虽然能力强大,却常被视为“黑盒”:它们缺乏真正的记忆结构,无法解释检索依据,没有决策记录可供审计,也难以追踪数据来源或发现事实冲突。这些缺陷使得 AI 在医疗、金融等对合规性要求极高的领域难以落地。

Semantica 通过构建结构化的上下文图谱(Context Graphs),将实体、关系和决策过程清晰记录下来,让每一步推理都有据可查。它支持完整的决策生命周期管理,确保每个结论都能追溯到源头事实,并符合 W3C 溯源标准。此外,内置的推理引擎支持多种逻辑推导方式,能主动检测数据冲突并进行实体消歧,从而提升系统的可靠性。

这款工具特别适合需要构建高可信度 AI 应用的开发者、研究人员及企业架构师。它可以无缝集成到 LangChain、LlamaIndex 或 AutoGen 等现有工作流中,作为上层的“问责机制”而非替代品。如果你希望 AI 系统不仅聪明,而且透明、可控且值得信赖,Semantica 提供了坚实的技术基础。

使用场景

某金融合规团队正在构建一个自动化信贷审批 AI 助手,需要依据不断更新的监管政策和客户历史数据做出放贷决策,并随时接受审计审查。

没有 semantica 时

  • 决策黑盒难审计:AI 直接给出“拒绝贷款”的结论,但无法追溯是依据哪条法规或哪个数据点做出的判断,导致合规部门无法通过审计。
  • 事实冲突无感知:向量数据库中同时存在客户“已还清债务”和“当前逾期”的矛盾嵌入记录,AI 随机采信其一,产生不可预测的错误结果。
  • 缺乏因果链条:当政策更新时,无法快速定位哪些历史决策受到了旧政策影响,难以进行批量回溯和修正。
  • 记忆只有碎片:系统仅存储模糊的语义相似度匹配,丢失了实体间明确的逻辑关系(如“公司 A 是公司 B 的子公司”),导致推理能力薄弱。

使用 semantica 后

  • 全链路可解释:semantica 将每个审批决策记录为独立对象,自动生成从原始数据到最终结论的完整推理路径,审计人员可一键查看“为何被拒”。
  • 自动冲突检测:在知识写入阶段,semantica 自动识别并标记相互矛盾的事实(如还款状态冲突),强制人工或规则介入解决,杜绝逻辑谬误。
  • 动态影响分析:利用决策智能功能,团队可反向追踪受特定法规变更影响的所有历史案例,迅速完成合规性重估。
  • 结构化上下文图谱:构建包含时间有效性的上下文图谱,明确实体间的因果与从属关系,让 AI 基于严谨的逻辑网络而非模糊匹配进行推理。

semantica 通过将混沌的非结构化数据转化为可追溯、可解释的决策智能层,让金融 AI 从“不可信的黑盒”变成了“透明的合规专家”。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该工具是一个用于构建上下文图谱和决策智能层的框架,支持多种图数据库后端(如 AWS Neptune, Apache AGE, FalkorDB, PgVector)和向量存储后端(如 FAISS, Pinecone, Weaviate)。它通过 LiteLLM 支持 100+ 种 LLM 模型。README 中未明确提及具体的操作系统、GPU 或内存硬性要求,表明其可能主要依赖 CPU 运行核心逻辑,或在连接外部 LLM/向量库时依赖相应服务端的资源。安装方式为直接 pip install semantica。
python3.8+
semantica
LiteLLM
FAISS
PgVector
Docling
Apache AGE
FalkorDB
AWS Neptune
Snowflake
semantica hero image

快速开始

Semantica Logo

🧠 Semantica

用于构建上下文图和 AI 决策智能层的框架

Python 3.8+ License: MIT PyPI Version Total Downloads CI Discord X Discord X

⭐ 给我们点个 Star • 🍴 Fork 我们 • 💬 加入我们的 Discord • 🐦 在 X 上关注我们

将混沌转化为智能。构建具备上下文图、决策追踪和高级知识工程的 AI 系统,使其可解释、可追溯且值得信赖——而不是黑箱。


问题

如今的 AI 代理虽然功能强大,却缺乏可信度:

  • 无记忆结构 — 代理存储的是嵌入向量,而非语义信息。检索结果模糊不清,无法追问“为何会召回该内容”。
  • 无决策轨迹 — 代理持续做出决策,却未记录任何信息。一旦出现问题,便无历史记录可供调试或审计。
  • 无出处溯源 — 输出结果无法追溯到原始事实来源。在受监管的行业中,这成为合规性障碍。
  • 推理透明度不足 — 黑箱式的回答,缺乏对结论得出过程的解释。
  • 无冲突检测机制 — 相互矛盾的事实会在向量存储中悄然共存,导致输出结果不可预测。

这些问题并非边缘情况,而是阻碍 AI 在医疗、金融、法律和政府等领域部署的根本原因,除非从头构建定制化的安全防护机制。

解决方案

Semantica 是您为 AI 技术栈添加的 上下文与智能层

  • 上下文图 — 由您的代理在运行过程中构建的实体、关系和决策的结构化图谱。可查询、可追溯、持久化存储。
  • 决策智能 — 每个决策都是第一类对象:被记录、以因果关系链接、可通过先例搜索,并可分析其下游影响。
  • 出处溯源 — 每条事实都与其来源相关联。符合 W3C PROV-O 标准。从数据摄入到推理的完整 lineage。
  • 推理引擎 — 前向链式推理、Rete 网络、演绎推理、溯因推理以及 SPARQL 推理。提供可解释的推理路径,而非黑箱答案。
  • 去重与质量保证 — 冲突检测、实体解析和验证内置于管道中。

Semantica 可与 LangChain、LlamaIndex、AutoGen、CrewAI 以及任何 LLM 提供商协同工作。它并非替代品,而是位于顶层的责任保障层。

⚡ 快速安装

pip install semantica

v0.3.0 新特性

首个稳定版本 — PyPI 上标记为 Production/Stable。分三个阶段发布:0.3.0-alpha、0.3.0-beta 和 0.3.0 稳定版。

领域 亮点
上下文图 时间有效性窗口(valid_from/valid_until)、加权 BFS(min_weight)、跨图导航(link_graphnavigate_toresolve_links)及完整的保存/加载持久化支持
决策智能 完整生命周期:record_decisiontrace_decision_chainanalyze_decision_impactfind_similar_decisions;混合先例搜索;带有版本化规则的 PolicyEngine
知识图算法 PageRank、介数中心性、社区发现(Louvain)、Node2Vec 嵌入、链接预测、路径查找 — 所有结果均返回结构化字典
语义抽取 LLM 关系抽取修复(不再出现静默丢失);_match_pattern 重写;移除重复关系错误;修正 "llm_typed" 元数据
去重 v2 blocking_v2/hybrid_v2 候选生成(快 63.6%);两阶段预过滤器(快 18–25%);语义去重 v2(快 6.98 倍
增量处理 基于 SPARQL 的增量差异计算;delta_mode 管道;通过 prune_versions() 进行快照版本管理
导出 RDF 格式别名("ttl""json-ld" 等);ArangoDB AQL 导出;Apache Parquet 导出(适用于 Spark/BigQuery/Databricks)
管道 带有 LINEAR/EXPONENTIAL/FIXED 退避策略的 FailureHandler;返回 ValidationResultPipelineValidator;重试循环修复
图数据库后端 Apache AGE(修复 SQL 注入漏洞)、AWS Neptune、FalkorDB、PgVector(HNSW/IVFFlat 索引)
测试 886+ 项通过,0 项失败 — 包括 335 项上下文相关测试、约 430 项知识图测试、70 项语义抽取测试、85 项真实场景端到端测试

完整按贡献者划分的说明请参阅 RELEASE_NOTES.md,完整变更日志请参阅 [CHANGELOG.md]。


尚未发布 / 即将推出

领域 亮点
SHACL 约束 OntologyEngine.to_shacl() 可自动从任意 OWL 本体推导 SHACL 形状;validate_graph() 返回结构化的 SHACLValidationReport,附带纯英文违规说明;三种质量等级("basic""standard""strict");三种输出格式(Turtle、JSON-LD、N-Triples);三级继承传播

功能

上下文与决策智能

  • 上下文图 — 实体、关系和决策的结构化图谱;可查询、具因果关系、持久化存储
  • 决策追踪 — 使用 add_decision()record_decision() 记录、链接并分析每个代理决策
  • 因果链条 — 使用 add_causal_relationship() 链接决策,用 trace_decision_chain() 追踪其沿袭
  • 先例搜索 — 使用 find_similar_decisions() 对过往决策进行混合相似度搜索
  • 影响力分析analyze_decision_impact()analyze_decision_influence() — 了解决策的下游效应
  • 政策引擎 — 使用 check_decision_rules() 强制执行业务规则;实现自动化合规验证
  • 代理记忆AgentMemory 提供短期/长期存储、对话历史和统计数据
  • 跨系统上下文捕获capture_cross_system_inputs() 用于多代理流水线

知识图谱

  • 知识图谱构建 — 实体、关系、属性、类型化边
  • 图算法 — PageRank、介数中心性、聚类系数、社区发现
  • 节点嵌入 — 通过 NodeEmbedder 生成 Node2Vec 嵌入
  • 相似度 — 通过 SimilarityCalculator 计算余弦相似度
  • 链接预测 — 通过 LinkPredictor 评分潜在的新边
  • 时序图 — 考虑时间的节点和边
  • 增量/差异处理 — 在不完全重新计算的情况下更新图

语义抽取

  • 实体抽取 — 命名实体识别、归一化、分类
  • 关系抽取 — 使用大语言模型或基于规则的方法从原始文本中生成三元组
  • 大语言模型类型化抽取 — 抽取带有类型化关系元数据的结果
  • 去重 v1 — Jaro-Winkler 相似度、基础分块
  • 去重 v2blocking_v2hybrid_v2semantic_v2 策略,配合 max_candidates_per_entity
  • 三元组去重 — 使用 dedup_triplets() 移除重复的 (主体, 谓语, 客体) 三元组

推理引擎

  • 正向链式推理 — 使用 IF/THEN 字符串规则和字典事实的 Reasoner
  • Rete 网络 — 高吞吐量生产规则匹配的 ReteEngine
  • 演绎推理 — 用于经典推理的 DeductiveReasoner
  • 溯因推理 — 根据观测结果生成假设的 AbductiveReasoner
  • SPARQL 推理 — 用于 RDF 图上基于查询的推理的 SPARQLReasoner

来源追踪与可审计性

  • 实体来源追踪ProvenanceTracker.track_entity(id, source_url, metadata)
  • 算法来源追踪AlgorithmTrackerWithProvenance 追踪计算 lineage
  • 图构建者来源追踪GraphBuilderWithProvenance 记录来自 URL 的实体来源 lineage
  • W3C PROV-O 兼容 — 所有模块的 lineage 追踪
  • 变更管理 — 使用校验和进行版本控制,提供审计轨迹和支持合规性

向量存储

  • 后端 — FAISS、Pinecone、Weaviate、Qdrant、Milvus、PgVector、内存中存储
  • 语义搜索 — 按嵌入相似度检索 top-k 结果
  • 混合搜索 — 向量 + 关键词,权重可配置
  • 过滤搜索 — 基于元数据对任意字段进行过滤
  • 自定义相似度权重 — 针对不同用例调整检索方式

🌐 图数据库支持

  • AWS Neptune — 带有 IAM 认证的 Amazon Neptune 图数据库
  • Apache AGE — PostgreSQL 图扩展,通过 SQL 支持 openCypher
  • FalkorDB — 原生支持;DecisionQueryCausalChainAnalyzer 可直接处理 FalkorDB 的行/表头格式

数据摄入

  • 文件格式 — PDF、DOCX、HTML、JSON、CSV、Excel、PPTX、压缩包
  • 网页爬取 — 可配置深度的 WebIngestor
  • 数据库 — 支持 SQL 查询的 DBIngestor
  • SnowflakeSnowflakeIngestor 支持表/查询摄入、分页以及密钥对/OAuth 认证
  • Docling — 高级文档解析,支持表格和版面提取(PDF、DOCX、PPTX、XLSX)
  • 媒体 — 图像 OCR、音频/视频元数据提取

导出格式

  • RDF — Turtle (.ttl)、JSON-LD、N-Triples (.nt)、XML,通过 RDFExporter 输出
  • ParquetParquetExporter 用于导出实体、关系及完整知识图谱
  • ArangoDB AQL — 通过 ArangoAQLExporter 生成可直接运行的 INSERT 语句
  • OWL 本体 — 将生成的本体以 Turtle 或 RDF/XML 格式导出
  • SHACL 形状 — 通过 RDFExporter.export_shacl() 自动导出约束形状(.ttl.jsonld.nt.shacl

流水线与生产

  • 流水线构建器PipelineBuilder 支持阶段串联和平行工作进程
  • 验证PipelineValidator 在执行前返回 ValidationResult(valid, errors, warnings)
  • 失败处理FailureHandler 提供 RetryPolicyRetryStrategy(指数退避、固定等)
  • 并行处理 — 可为每个流水线阶段配置工作进程数量
  • 大语言模型提供商 — 通过 LiteLLM 支持 100 多种模型(OpenAI、Anthropic、Cohere、Mistral、Ollama 等)

本体

  • 自动生成 — 通过 OntologyGenerator 从知识图谱推导 OWL 本体
  • 导入 — 通过 OntologyImporter 加载现有的 OWL、RDF、Turtle、JSON-LD 本体
  • 验证 — 兼容 HermiT/Pellet 的一致性检查
  • SHACL 形状生成OntologyEngine.to_shacl() 会自动从任何 Semantica 本体字典中推导出 SHACL 节点和属性形状,无需手动编写,且具有确定性(同一本体生成相同形状)
  • SHACL 验证OntologyEngine.validate_graph() 会将形状应用于数据图,并返回包含机器可读违规信息及英文说明的 SHACLValidationReport
  • 质量等级"basic"(结构 + 基数)、"standard"(+ 枚举、继承)、"strict"(+ sh:closed 拒绝未声明的属性)
  • 继承传播 — 子形状会自动包含所有祖先属性形状(最多 3 层以上),且循环安全
  • 三种输出格式 — Turtle (.ttl)、JSON-LD、N-Triples;可通过 export_shacl() 导出文件

模块

模块 提供的功能
semantica.context 上下文图、智能体记忆、决策追踪、因果分析、先例检索、策略引擎
semantica.kg 知识图谱构建、图算法、中心性分析、社区发现、嵌入、链接预测、溯源
semantica.semantic_extract 命名实体识别、关系抽取、事件抽取、指代消解、三元组生成、大模型增强的抽取
semantica.reasoning 正向链式推理、Rete网络、演绎推理、溯因推理、SPARQL推理、解释生成
semantica.vector_store FAISS、Pinecone、Weaviate、Qdrant、Milvus、PgVector、内存存储;混合与过滤搜索
semantica.export RDF(Turtle/JSON-LD/N-Triples/XML)、Parquet、ArangoDB AQL、CSV、YAML、OWL、图格式
semantica.ingest 文件(PDF、DOCX、CSV、HTML)、网页爬取、信息流、数据库、Snowflake、MCP、电子邮件、代码仓库
semantica.ontology 自动化生成(6阶段流程)、OWL/RDF导出、导入(OWL/RDF/Turtle/JSON-LD)、验证、版本控制、SHACL形状生成与验证
semantica.pipeline 流水线DSL、并行工作进程、验证、重试策略、故障处理、资源调度
semantica.graph_store 图数据库后端——Neo4j、FalkorDB、Apache AGE、Amazon Neptune;Cypher查询
semantica.embeddings 文本嵌入生成——Sentence-Transformers、FastEmbed、OpenAI、BGE;相似度计算
semantica.deduplication 实体去重、相似度评分、合并、聚类;阻塞与语义策略
semantica.provenance 符合W3C PROV-O标准的端到端血缘追踪、来源归因、审计轨迹
semantica.parse 文档解析——PDF、DOCX、PPTX、HTML、代码、电子邮件、结构化数据、含OCR的媒体
semantica.split 文档分块——递归式、语义式、实体感知式、关系感知式、基于图的、本体感知式
semantica.normalize 数据标准化——文本、实体、日期、数字、数量、语言、编码
semantica.conflicts 多源冲突检测(值、类型、关系、时间、逻辑)及解决策略
semantica.change_management 版本存储、变更追踪、校验和、审计轨迹、KG与本体的合规支持
semantica.triplet_store RDF三元组存储集成——Blazegraph、Jena、RDF4J;SPARQL查询与批量加载
semantica.visualization KG、本体、嵌入、分析结果及时间序列图的交互式与静态可视化
semantica.seed 种子数据管理——用于从CSV、JSON、数据库和API构建初始KG
semantica.core 框架编排、配置管理、知识库构建、插件系统
semantica.llms 大模型提供商集成——Groq、OpenAI、Novita AI、HuggingFace、LiteLLM
semantica.utils 共享工具——日志记录、验证、异常处理、常量、类型、进度跟踪

⚡ 快速入门

import semantica
from semantica.context import AgentContext, ContextGraph
from semantica.vector_store import VectorStore

# 构建具有结构化上下文的智能体
context = AgentContext(
    vector_store=VectorStore(backend="faiss", dimension=768),
    knowledge_graph=ContextGraph(advanced_analytics=True),
    decision_tracking=True,
    kg_algorithms=True,
)

# 存储记忆
memory_id = context.store(
    "GPT-4在推理基准测试中比GPT-3.5高出40%",
    conversation_id="research_session_1",
)

# 记录带有完整上下文的决策
decision_id = context.record_decision(
    category="model_selection",
    scenario="为生产推理流水线选择大模型",
    reasoning="GPT-4的基准优势足以证明其价格高出3倍的合理性",
    outcome="selected_gpt4",
    confidence=0.91,
    entities=["gpt4", "gpt35", "reasoning_pipeline"],
)

# 查找历史中的相似决策
precedents = context.find_precedents("模型选择推理", limit=5)

# 分析该决策的下游影响
influence = context.analyze_decision_influence(decision_id)

📖 完整快速入门🍳 食谱示例💬 加入Discord⭐ 给我们点个赞


核心价值主张

可信 可解释 可审计
冲突检测与验证 透明的推理路径 完整的溯源追踪
基于规则的治理 实体关系与本体 符合W3C PROV-O标准的血缘
生产级质量保证 多跳图推理 来源追踪与完整性验证

关键特性与优势

不只是又一个智能体框架

Semantica补充了 LangChain、LlamaIndex、AutoGen、CrewAI、Google ADK、Agno等框架,通过以下方式增强您的智能体:

特性 优势
上下文图 结构化的知识表示,包含实体关系与语义上下文
决策追踪 完整的决策生命周期管理,支持先例检索与因果分析
KG算法 高级图数据分析,包括中心性、社区发现和嵌入
向量存储集成 混合搜索,支持自定义相似度权重与高级过滤
可审计 完整的溯源追踪,符合W3C PROV-O标准
可解释 透明的推理路径,结合实体关系
溯源感知 从文档到响应的端到端血缘
已验证 内置冲突检测、去重与质量保证
受治理 基于规则的验证与语义一致性
版本控制 企业级变更管理,确保完整性

非常适合高风险应用场景

🏥 医疗保健 💰 金融 ⚖️ 法律
临床决策 欺诈检测 证据支持的研究
药物相互作用 监管支持 合同分析
患者安全 风险评估 判例法推理
🔒 网络安全 🏛️ 政府 🏭 基础设施 🚗 自动驾驶
威胁归因 政策决策 电网 决策日志
事件响应 机密信息 交通运输 安全验证

驱动您的 AI 技术栈

  • 上下文图谱 — 带有实体关系和语义上下文的结构化知识表示
  • 决策追踪系统 — 全面的决策生命周期管理,支持先例检索与因果分析
  • GraphRAG 系统 — 结合图推理与混合搜索的检索系统,采用知识图谱算法
  • AI 代理 — 可信、可问责的多智能体系统,具备语义记忆与决策历史
  • 推理模型 — 提供带有推理路径与影响分析的可解释 AI 决策
  • 企业级 AI — 受治理、可审计的平台,支持合规性与政策执行

集成

  • Docling 支持 — 文档解析与表格提取(PDF、DOCX、PPTX、XLSX)
  • AWS Neptune — 支持 Amazon Neptune 图数据库,并提供 IAM 身份验证
  • Apache AGE — PostgreSQL 图扩展后端(通过 SQL 使用 openCypher)
  • Snowflake — 原生数据摄取工具 SnowflakeIngestor;支持表/查询摄取、分页、密钥对及 OAuth 认证
  • 自定义本体导入 — 导入现有本体(OWL、RDF、Turtle、JSON-LD)

专为需要每一条回答都可解释且受监管的环境打造。


上下文图谱与决策追踪

Semantica 的旗舰模块。将您的代理所做的每一个决策以结构化的图节点形式记录下来——包含因果链接、先例检索、影响分析以及政策执行。

from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# 记录一笔贷款审批决策
loan_id = graph.add_decision(
    category="loan_approval",
    scenario="抵押贷款申请 — 信用评分780,DTI 28%",
    reasoning="良好的信用记录,稳定收入8年,低 DTI",
    outcome="批准",
    confidence=0.95,
)

# 记录下游的从属决策
rate_id = graph.add_decision(
    category="interest_rate",
    scenario="为已批准的抵押贷款设定利率",
    reasoning="优质申请人符合最低等级利率条件",
    outcome="利率定为6.2%",
    confidence=0.98,
)

# 将两个决策以因果关系连接
graph.add_causal_relationship(loan_id, rate_id, relationship_type="enables")

# 使用混合相似度查找类似的历史决策
similar    = graph.find_similar_decisions("抵押贷款审批", max_results=5)
chain      = graph.trace_decision_chain(loan_id)
impact     = graph.analyze_decision_impact(loan_id)
compliance = graph.check_decision_rules({"category": "loan_approval", "confidence": 0.95})
insights   = graph.get_decision_insights()
from semantica.context import AgentContext, AgentMemory
from semantica.vector_store import VectorStore

context = AgentContext(
    vector_store=VectorStore(backend="inmemory"),
    knowledge_graph=ContextGraph(advanced_analytics=True),
    decision_tracking=True,
    graph_expansion=True,
    kg_algorithms=True,
)

context.store("欧盟法规 2024/1689 要求高风险 AI 必须具备可解释性", conversation_id="compliance_review")
context.store("我们的欺诈模型会标记 0.3% 的交易", conversation_id="compliance_review")

results = context.retrieve("AI 法规中的可解释性要求", limit=3)
history = context.get_conversation_history("compliance_review")
stats   = context.get_statistics()

知识图谱

from semantica.kg import KnowledgeGraph, Entity, Relationship
from semantica.kg import CentralityAnalyzer, NodeEmbedder, LinkPredictor

kg = KnowledgeGraph()

kg.add_entity(Entity(id="transformer", label="Transformer", type="Architecture",
                     properties={"year": 2017, "paper": "Attention Is All You Need"}))
kg.add_entity(Entity(id="bert", label="BERT", type="Model",
                     properties={"year": 2018, "parameters": "340M"}))
kg.add_entity(Entity(id="gpt4", label="GPT-4", type="Model", properties={"year": 2023}))

kg.add_relationship(Relationship(source="bert", target="transformer", type="based_on"))
kg.add_relationship(Relationship(source="gpt4", target="transformer", type="based_on"))

# 图算法
analyzer    = CentralityAnalyzer(kg)
centrality  = analyzer.compute_pagerank()
betweenness = analyzer.compute_betweenness()

# 节点嵌入(Node2Vec)
embedder   = NodeEmbedder()
embeddings = embedder.compute_embeddings(kg, node_labels=["Model"], relationship_types=["based_on"])

# 链接预测
predictor = LinkPredictor()
score     = predictor.score_link(kg, "gpt4", "bert", method="common_neighbors")

models      = kg.find_nodes(type="Model")
descendants = kg.get_neighbors("transformer", direction="incoming")

语义抽取

from semantica.semantic_extract import extract_entities, extract_relations, extract_triplets

text = """
OpenAI 于 2023 年 3 月发布了 GPT-4。微软将 GPT-4 集成到了 Azure OpenAI 服务中。
由前 OpenAI 研究人员创立的 Anthropic 发布了 Claude 作为竞争模型。
"""

entities = extract_entities(text)
# → [Entity(label="OpenAI", type="Organization"), Entity(label="GPT-4", type="Model"), ...]

relations = extract_relations(text)
# → [Relation(source="OpenAI", type="released", target="GPT-4"), ...]

triplets = extract_triplets(text)
from semantica.deduplication import DuplicateDetector

entities = [
    {"id": "e1", "name": "OpenAI Inc.", "type": "Organization"},
    {"id": "e2", "name": "Open AI",    "type": "Organization"},
    {"id": "e3", "name": "Anthropic",  "type": "Organization"},
]

detector   = DuplicateDetector()
duplicates = detector.detect_duplicates(entities, threshold=0.85)
# → [("e1", "e2")]

duplicates_v2 = detector.detect_duplicates(entities, threshold=0.85, strategy="semantic_v2")

推理引擎

from semantica.reasoning import Reasoner

reasoner = Reasoner()
reasoner.add_rule("IF Person(?x) THEN Mortal(?x)")
reasoner.add_rule("IF Employee(?x) AND WorksAt(?x, ?y) THEN HasEmployer(?x, ?y)")

results = reasoner.infer_facts([
    "Person(Socrates)",
    "Employee(Alice)",
    {"source_name": "Alice", "target_name": "OpenAI", "type": "WorksAt"},
])
# → ["Mortal(Socrates)", "HasEmployer(Alice, OpenAI)"]
from semantica.reasoning import ReteEngine

rete = ReteEngine()
rete.add_rule({
    "name": "flag_high_risk_transaction",
    "conditions": [
        {"field": "amount",  "operator": ">",  "value": 10000},
        {"field": "country", "operator": "in", "value": ["IR", "KP", "SY"]},
    ],
    "action": "flag_for_compliance_review",
})
matches = rete.match({"amount": 15000, "country": "IR", "id": "txn_9921"})
from semantica.reasoning import DeductiveReasoner, AbductiveReasoner

deductive = DeductiveReasoner()
deductive.add_axiom("所有 Transformer 模型都使用注意力机制")
deductive.add_fact("BERT 是一种 Transformer")
conclusion = deductive.reason("BERT 是否使用注意力机制?")

abductive = AbductiveReasoner()
abductive.add_observation("模型部署后准确率下降了 12%")
hypotheses = abductive.generate_hypotheses()

# → ["生产数据中的分布偏移", "预处理管道不匹配", ...]

出处追踪

符合 W3C PROV-O 标准的谱系追踪。每个事实都能追溯到其源头。

from semantica.kg import ProvenanceTracker, AlgorithmTrackerWithProvenance

tracker = ProvenanceTracker()
tracker.track_entity("gpt4_benchmark",
    source_url="https://openai.com/research/gpt-4",
    metadata={"metric": "MMLU", "score": 86.4})

algo_tracker = AlgorithmTrackerWithProvenance(provenance=True)
algo_tracker.track_graph_construction(
    algorithm="node2vec",
    input_data={"nodes": 1500, "edges": 4200},
    parameters={"dimensions": 128, "walk_length": 80},
)

sources      = tracker.get_all_sources("gpt4_benchmark")
all_entities = tracker.get_all_entities()

向量存储与混合搜索

from semantica.vector_store import VectorStore

vs = VectorStore(backend="faiss", dimension=768)

vs.store("Transformer 架构彻底革新了自然语言处理",
         metadata={"source": "arxiv", "year": 2017}, id="doc_001")
vs.store("BERT 引入了用于语言理解的双向预训练",
         metadata={"source": "arxiv", "year": 2018}, id="doc_002")

results = vs.search("语言模型中的注意力机制", top_k=5)

results = vs.hybrid_search(
    query="Transformer 预训练",
    top_k=10,
    vector_weight=0.6,
    keyword_weight=0.4,
)

results = vs.search("预训练", top_k=5, filter={"year": 2018})

数据摄取

from semantica.ingest import FileIngestor, WebIngestor, DBIngestor

file_ingestor = FileIngestor(recursive=True)
docs = file_ingestor.ingest("./research_papers/")

web_ingestor = WebIngestor(max_depth=2)
web_docs = web_ingestor.ingest("https://arxiv.org/abs/1706.03762")

db_ingestor = DBIngestor(connection_string="postgresql://user:pass@localhost/kg_db")
db_docs = db_ingestor.ingest(query="SELECT title, abstract FROM papers WHERE year >= 2020")

all_sources = docs + web_docs + db_docs
from semantica.parse import DoclingParser

# 高级表格和布局提取
docling = DoclingParser()
parsed  = docling.parse("financial_report.pdf")
from semantica.ingest import SnowflakeIngestor

# 连接到 Snowflake 并摄取一张表
ingestor = SnowflakeIngestor(
    account="myorg-myaccount",
    user="analyst",
    password="...",
    warehouse="COMPUTE_WH",
    database="ANALYTICS",
    schema="PUBLIC",
)

# 摄取一张表,可选进行过滤和分页
data = ingestor.ingest_table(
    table_name="customer_events",
    where="event_date >= '2024-01-01'",
    limit=10000,
)

# 或者运行自定义 SQL 查询
data = ingestor.ingest_query(
    query="SELECT id, content, tags FROM knowledge_base WHERE active = TRUE",
    batch_size=500,
)

# 转换为 Semantica 文档,供下游流程使用
docs = ingestor.export_as_documents(data, id_field="id", text_fields=["content"])

# 支持通过环境变量进行密钥对和 OAuth 认证:
# SNOWFLAKE_PRIVATE_KEY_PATH、SNOWFLAKE_TOKEN、SNOWFLAKE_AUTHENTICATOR

导出

from semantica.export import RDFExporter、ParquetExporter、ArangoAQLExporter

rdf_exporter = RDFExporter()
turtle   = rdf_exporter.export_to_rdf(kg, format="turtle")
jsonld   = rdf_exporter.export_to_rdf(kg, format="json-ld")
ntriples = rdf_exporter.export_to_rdf(kg, format="nt")

parquet_exporter = ParquetExporter()
parquet_exporter.export_entities(kg,        path="output/entities.parquet")
parquet_exporter.export_relationships(kg,   path="output/relationships.parquet")
parquet_exporter.export_knowledge_graph(kg, path="output/")

aql_exporter = ArangoAQLExporter()
aql_exporter.export(kg, path="output/insert.aql")

流水线编排

from semantica.pipeline import PipelineBuilder、PipelineValidator、FailureHandler
from semantica.pipeline import RetryPolicy、RetryStrategy

builder = (
    PipelineBuilder()
    .add_stage("ingest",      FileIngestor(recursive=True))
    .add_stage("extract",     extract_triplets)
    .add_stage("deduplicate", DuplicateDetector())
    .add_stage("build_kg",    KnowledgeGraph())
    .add_stage("export",      RDFExporter())
    .with_parallel_workers(4)
)

validator = PipelineValidator()
result    = validator.validate(builder)
if result.valid:
    pipeline = builder.build()
    pipeline.run(input_path="./documents/")

retry_policy = RetryPolicy(strategy=RetryStrategy.EXPONENTIAL_BACKOFF, max_retries=3)
handler = FailureHandler()
handler.handle_failure(error=last_error, policy=retry_policy, retry_count=1)

本体论

from semantica.ontology import OntologyGenerator、OntologyImporter

generator = OntologyGenerator()
ontology  = generator.generate(kg)
generator.export(ontology, path="domain_ontology.owl", format="turtle")

importer = OntologyImporter()
ontology = importer.load("existing_ontology.owl")
ontology = importer.load("schema.ttl", format="turtle")
ontology = importer.load("context.jsonld")

SHACL 形状生成与验证

Semantica 将本体论转化为可执行的数据契约。约束层完善了混合推理系统——符号约束(SHACL)与语义检索(嵌入)相结合。

阶段 1 — 从任意本体字典生成形状:

from semantica.ontology import OntologyEngine

engine   = OntologyEngine()
ontology = engine.from_data(data)          # 或 engine.from_text(...) / engine.to_owl(...)

# 生成 SHACL 形状——无需手动编写
shacl_ttl  = engine.to_shacl(ontology)                        # Turtle 字符串(默认)
shacl_jld  = engine.to_shacl(ontology, format="json-ld")      # JSON-LD 字符串
shacl_nt   = engine.to_shacl(ontology, format="n-triples")    # N-Triples 字符串

# 写入文件
engine.export_shacl(ontology, path="shapes/domain.ttl")

质量等级——控制约束严格程度:

# "basic"    — 节点形状、属性路径、数据类型、基数
# "standard" — + 枚举(sh:in)、模式、继承传播  [默认]
# "strict"   — + sh:closed true 在所有形状上(拒绝未声明的属性)

shacl = engine.to_shacl(ontology, quality_tier="strict")

阶段 2 — 根据形状验证图:

import pathlib

report = engine.validate_graph(
    data_graph=pathlib.Path("data/graph.ttl").read_text(),
    ontology=ontology,   # 自动在验证前生成 SHACL
    explain=True,        # 为每项违规添加通俗易懂的解释
)

print(report.summary())
# → "图不符合规范:2 处违规。"

for v in report.violations:
    print(v.explanation)
# → "节点 <https://example.com/john> 缺少必需的属性 <ex:name>。至少需要 1 个值。"

# → “节点 <https://example.com/acme> 在 <ex:employeeCount> 上的值为 '999',但预期的数据类型是 xsd:string。”

import json
print(json.dumps(report.to_dict(), indent=2))  # 机器可读 — 可输入到 LLM 或流水线中

或者使用预构建的 SHACL 文件进行验证:

report = engine.validate_graph(
    data_graph=graph_turtle_string,
    shacl="shapes/domain.ttl",   # 路径或 SHACL 字符串
)

在 CI 中重新生成形状以检测破坏性本体变更:

python -c "
from semantica.ontology import OntologyEngine
import json, pathlib
engine = OntologyEngine()
onto = engine.from_data(json.loads(pathlib.Path('ontology.json').read_text()))
engine.export_shacl(onto, 'shapes/shapes.ttl')
"
git diff shapes/shapes.ttl   # 检测破坏性本体变更

validate_graph() 需要 pyshacl: pip install semantica[shacl] 形状生成(to_shaclexport_shacl)无需任何可选依赖即可运行。


集成

图数据库

  • AWS Neptune — 带有 IAM 认证的 Amazon Neptune
  • Apache AGE — 通过 SQL 使用 PostgreSQL + openCypher
  • FalkorDB — 原生支持决策查询和因果分析

向量数据库

  • FAISS — 高性能稠密向量搜索
  • Pinecone — 无服务器且基于 Pod 的托管向量数据库(pip install semantica[vectorstore-pinecone]
  • Weaviate — 基于 GraphQL 的向量存储,具有丰富的模式管理功能(pip install semantica[vectorstore-weaviate]
  • Qdrant — 基于集合的存储,支持负载过滤(pip install semantica[vectorstore-qdrant]
  • Milvus — 具有分区支持和多种索引类型的可扩展存储(pip install semantica[vectorstore-milvus]
  • PgVector — 带有 JSONB 元数据的 PostgreSQL pgvector 扩展(pip install semantica[vectorstore-pgvector]
  • 内存中 — 轻量级、零依赖的存储,适用于开发和测试

数据源

  • Snowflake — SnowflakeIngestor 用于表/查询摄取、模式自省、分页以及多种认证方式(密码、密钥对、OAuth、SSO)(pip install semantica[db-snowflake]

文档解析

  • Docling — 支持 PDF、DOCX、PPTX、XLSX,并可提取表格和布局

LLM 提供商

  • 通过 LiteLLM 支持 100 多种模型 — OpenAI、Anthropic、Cohere、Mistral、Ollama、Azure、AWS Bedrock 等
  • Novita AI — 兼容 OpenAI 的提供商(deepseek/deepseek-v3.2 等);可通过 NOVITA_API_KEY 进行配置

代理框架

  • 补充 LangChain、LlamaIndex、AutoGen、CrewAI、Google ADK 等

Agno — 一流集成 pip install semantica[agno]

Semantica 提供专门的 Agno 集成,包含五个开箱即用的组件:

  • AgnoContextStore — 基于图的代理记忆
  • AgnoKnowledgeGraph — 多跳 GraphRAG 知识库
  • AgnoDecisionKit — 6 种决策智能工具
  • AgnoKGToolkit — 7 种知识图谱流水线工具
  • AgnoSharedContext — 用于多代理团队的共享上下文图

导出

  • RDF:Turtle、JSON-LD、N-Triples、XML · Parquet · ArangoDB AQL

安装

# 核心包
pip install semantica

# 包含所有可选依赖
pip install semantica[all]

# 向量存储后端(仅安装所需)
pip install semantica[vectorstore-pinecone]
pip install semantica[vectorstore-weaviate]
pip install semantica[vectorstore-qdrant]
pip install semantica[vectorstore-milvus]
pip install semantica[vectorstore-pgvector]

# SHACL 验证(validate_graph)
pip install semantica[shacl]

# Snowflake 数据摄取
pip install semantica[db-snowflake]

# 从源码安装
git clone https://github.com/Hawksight-AI/semantica.git
cd semantica
pip install -e ".[dev]"

# 运行测试
pytest tests/

🤝 社区与支持

加入我们的社区

频道 用途
Discord 实时帮助、案例展示
GitHub Discussions 问答、功能请求

学习资源

企业支持

未来将提供企业支持、专业服务和商业许可。目前,我们通过 Discord 和 GitHub Discussions 提供社区支持。

当前支持:

未来的企业服务:

  • 带有 SLA 的专业支持
  • 企业许可
  • 定制开发服务
  • 优先处理的功能请求
  • 专属支持渠道

敬请期待更新!

  • AI / ML 工程师 — GraphRAG、可解释代理、决策追踪
  • 数据工程师 — 受治理的语义管道,具备完整溯源能力
  • 知识工程师 — 大规模本体管理和知识图谱构建
  • 高风险领域 — 医疗保健、金融、法律、网络安全、政府

资源


贡献

欢迎所有贡献 — Bug 修复、新功能、测试和文档。

  1. 分支仓库并创建分支
  2. pip install -e ".[dev]"
  3. 在修改的同时编写测试
  4. 打开 PR 并标记 @KaifAhmad1 进行审查

完整指南请参阅 CONTRIBUTING.md


MIT 许可证 · 由 Hawksight AI 构建 · ⭐ 在 GitHub 上点赞

GitHubDiscord

版本历史

v0.3.02026/03/10
v0.3.0-beta2026/03/07
v0.3.0-alpha2026/02/19
v0.2.72026/02/09
v0.2.62026/02/03
v0.2.52026/01/27
v0.2.42026/01/22
v0.2.32026/01/20
v0.2.22026/01/14
v0.2.12026/01/12
v0.2.02026/01/10
v0.0.52025/11/26
v0.0.42025/11/26
v0.0.32025/11/25
v0.0.12025/11/21

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

143.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent