semantica
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 从“不可信的黑盒”变成了“透明的合规专家”。
运行环境要求
- 未说明
未说明
未说明

快速开始
🧠 Semantica
用于构建上下文图和 AI 决策智能层的框架
⭐ 给我们点个 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_graph、navigate_to、resolve_links)及完整的保存/加载持久化支持 |
| 决策智能 | 完整生命周期:record_decision → trace_decision_chain → analyze_decision_impact → find_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;返回 ValidationResult 的 PipelineValidator;重试循环修复 |
| 图数据库后端 | 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 相似度、基础分块
- 去重 v2 —
blocking_v2、hybrid_v2、semantic_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 — 原生支持;
DecisionQuery和CausalChainAnalyzer可直接处理 FalkorDB 的行/表头格式
数据摄入
- 文件格式 — PDF、DOCX、HTML、JSON、CSV、Excel、PPTX、压缩包
- 网页爬取 — 可配置深度的
WebIngestor - 数据库 — 支持 SQL 查询的
DBIngestor - Snowflake —
SnowflakeIngestor支持表/查询摄入、分页以及密钥对/OAuth 认证 - Docling — 高级文档解析,支持表格和版面提取(PDF、DOCX、PPTX、XLSX)
- 媒体 — 图像 OCR、音频/视频元数据提取
导出格式
- RDF — Turtle (
.ttl)、JSON-LD、N-Triples (.nt)、XML,通过RDFExporter输出 - Parquet —
ParquetExporter用于导出实体、关系及完整知识图谱 - ArangoDB AQL — 通过
ArangoAQLExporter生成可直接运行的 INSERT 语句 - OWL 本体 — 将生成的本体以 Turtle 或 RDF/XML 格式导出
- SHACL 形状 — 通过
RDFExporter.export_shacl()自动导出约束形状(.ttl、.jsonld、.nt、.shacl)
流水线与生产
- 流水线构建器 —
PipelineBuilder支持阶段串联和平行工作进程 - 验证 —
PipelineValidator在执行前返回ValidationResult(valid, errors, warnings) - 失败处理 —
FailureHandler提供RetryPolicy和RetryStrategy(指数退避、固定等) - 并行处理 — 可为每个流水线阶段配置工作进程数量
- 大语言模型提供商 — 通过 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_shacl、export_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 提供社区支持。
当前支持:
- 社区支持 - 通过 Discord 和 GitHub Discussions 提供的免费支持
- Bug 报告 - GitHub Issues
未来的企业服务:
- 带有 SLA 的专业支持
- 企业许可
- 定制开发服务
- 优先处理的功能请求
- 专属支持渠道
敬请期待更新!
- AI / ML 工程师 — GraphRAG、可解释代理、决策追踪
- 数据工程师 — 受治理的语义管道,具备完整溯源能力
- 知识工程师 — 大规模本体管理和知识图谱构建
- 高风险领域 — 医疗保健、金融、法律、网络安全、政府
资源
贡献
欢迎所有贡献 — Bug 修复、新功能、测试和文档。
- 分支仓库并创建分支
pip install -e ".[dev]"- 在修改的同时编写测试
- 打开 PR 并标记
@KaifAhmad1进行审查
完整指南请参阅 CONTRIBUTING.md。
MIT 许可证 · 由 Hawksight AI 构建 · ⭐ 在 GitHub 上点赞
版本历史
v0.3.02026/03/10v0.3.0-beta2026/03/07v0.3.0-alpha2026/02/19v0.2.72026/02/09v0.2.62026/02/03v0.2.52026/01/27v0.2.42026/01/22v0.2.32026/01/20v0.2.22026/01/14v0.2.12026/01/12v0.2.02026/01/10v0.0.52025/11/26v0.0.42025/11/26v0.0.32025/11/25v0.0.12025/11/21常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
