Repository navigation
nano-ontoprompt v0.1
Pre-release
Pre-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)