Skip to content

nano-ontoprompt v0.1

Pre-release
Pre-release

Choose a tag to compare

@jingw2 jingw2 released this 13 Jun 07:57
· 639 commits to master since this release

nano-ontoprompt v0.1

nano-ontoprompt 是一个受 Palantir Foundry 启发的本体工程平台,支持从多源异构数据自动构建结构化知识图谱(Ontology)。


核心功能

两条构建路径

路径 适用场景 结果
Pipeline Mapping 结构化/半结构化数据(CSV/XLSX/JSON/XML/PDF) 精准实体+关系图谱,支持 FK 推断
简易 LLM 提取 非结构化文档,快速验证 LLM 直接生成实体列表

三种 Transform 路由

  • Route A — 结构化数据(CSV/XLSX)→ Schema 映射 → 实体/关系
  • Route B — 半结构化(JSON/XML)→ 展开 → 实体/关系
  • Route C — 非结构化文档(PDF/Markdown/Word)→ LLM 结构化提取 → 实体/关系;有 LLM 时自动调用,否则规则降级

跨数据集关系推断

  • FK 推断:精确匹配、点号列名归一化(supplier.id → supplier_id)、值格式容错(SUP-001 ↔ SUP001)
  • 备用键推断:基于高基数非主键列(如公司名称)跨数据集连线,无需显式外键
  • 典型效果:供应链 8 文件 → 1 pipeline → 249 节点 128 边,物流/采购单→供应商四种链路汇聚

逻辑规则 & 动作自动发现

自动从 Mapping 结果提取 Logic(Validation/State/Mapping/Inference)和 Action(Automation),并生成人类可读公式(如"库存状态 ∈ {正常, 超储, 预警}")

图谱可视化

  • Cytoscape.js cose 布局,支持节点点击跳转详情
  • 无 Neo4j 时自动回退 SQLite 图数据
  • 图谱切换从 6.5–10s 优化至 1.1–1.4s(ChromaService/Neo4j 共享连接 + 60s 不可用缓存)

安全与工程

  • Curated 审批强制管理员权限
  • 上传白名单扩展名 + 最大文件限制(默认 200MB)
  • Cypher 词边界安全校验 + 强制 ontology_id 隔离
  • 关键词搜索 ChromaDB 不可用时自动回退 SQL

技术栈

后端: FastAPI + SQLAlchemy + Celery/Redis + Alembic
存储: PostgreSQL(元数据)+ MinIO(文件)+ Neo4j(图谱)+ ChromaDB(向量)
前端: React + Vite + Tailwind CSS + Cytoscape.js

Neo4j/MinIO/ChromaDB 均为可选;全部支持优雅降级,仅 PostgreSQL 为必需依赖。


快速开始

git clone https://github.com/jingw2/nano-ontoprompt
cd nano-ontoprompt/backend
cp .env.example .env  # 配置数据库连接
alembic upgrade head
uvicorn app.main:app --reload --port 8000

# 另一终端
cd frontend && npm install && npm run dev

详细说明见 README.md / README_zh.md


测试验证

  • 后端 302 单测全绿
  • UI 验收 9/9 通过(test_data/eval_ui_acceptance.py)
  • 双路径 × 三业务域(供应链/财务/医疗)端到端测试通过(test_data/test_two_paths_per_domain.py)
  • deepseek-v4 真实 LLM 测试通过(test_data/test_real_models.py)