Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OntoPrune

Neuro-Symbolic Context Pruning Middleware for Local SLMs

OntoPrune es un middleware traductor ligero que transforma código fuente en contratos de contexto mínimos utilizando representación ontológica (RDF/SPARQL), reduciendo drásticamente los tokens de entrada y la latencia TTFT (Time to First Token) para modelos de lenguaje pequeños (SLMs) y evitando alucinaciones de API.


Resultados Empíricos (Benchmark en CPU)

Evaluación real con streaming sobre sample_service.py (300+ LOC) en CPU local (12 cores):

Métrica Naive (Archivo Completo) OntoPrune (stubs) Ganancia Real
Sobrecarga CPU 0.02 ms 9.9 ms $\le 10\text{ ms}$ (Meta: $\le 15\text{ ms}$)
Tokens Entrada 2,390 tokens 406 tokens -83.0% ($\approx 6\text{x}$ menos)
TTFT (qwen2.5-coder:3b) 22.4 s 3.3 s 6.7x más rápido (ahorra 19.1 s)
Tiempo Total (3B) 59.9 s 16.5 s -72.5% ($3.6\text{x}$ más rápido)
Alucinaciones API 1 método inválido 0 métodos inválidos 100% Precisión Contractual

Instalación

# Instalación estándar (Python nativo):
pip install ontoprune

# Con soporte multi-lenguaje (Flutter/Dart, Java, TypeScript vía Tree-sitter):
pip install "ontoprune[languages]"

# Para desarrollo y benchmarks:
pip install "ontoprune[dev,benchmark,languages]"

Soporte Multi-Lenguaje Universal

OntoPrune utiliza una representación ontológica interna (software.ttl) agnóstica del lenguaje. Detecta automáticamente la extensión del archivo y genera contratos tipados nativos:

Lenguaje Extensión Motor AST Formato de Salida
Python .py Python ast nativo def nombre(args) -> Ret: ...
Flutter / Dart .dart tree-sitter-dart abstract class ... { Ret metodo(); }
Java .java tree-sitter-java public interface ... { Ret metodo(); }
TypeScript / JS .ts, .tsx, .js tree-sitter-typescript export interface ... { metodo(): Ret; }

Modos de Uso

1. Como Servidor MCP (Model Context Protocol)

OntoPrune incluye un servidor MCP nativo (ontoprune-mcp) para integrarse con Cursor, Claude Desktop, Gemini CLI o cualquier agente:

# Ejecutar servidor MCP en transporte stdio:
ontoprune-mcp

Configuración en claude_desktop_config.json o similar:

{
  "mcpServers": {
    "ontoprune": {
      "command": "ontoprune-mcp"
    }
  }
}

Herramientas MCP expuestas:

  • prune_context(file_path, target_symbol, format='stubs', include_body=False, project_root=None): Extrae el contrato podado mínimo (< 400 tokens) resolviendo dependencias entre múltiples archivos del proyecto.
  • verify_response(response_code, contract_or_file, target_symbol): Detecta alucinaciones en código generado comparando contra el contrato o archivo.

2. Como Librería Python

import ontoprune

# 1. Traducir un archivo a contexto compacto podado (formato stubs)
# Resuelve automáticamente imports relativos y absolutos entre módulos del proyecto
context = ontoprune.translate(
    "services/order_service.py",
    target="procesar_orden",
    fmt="stubs",
    multi_module=True,
)
print(context)

# 2. Verificar respuestas del modelo frente al contrato
violations = ontoprune.check(llm_code_response, against=context)
if not violations:
    print("Código 100% válido")

3. Desde la Línea de Comandos (CLI & Pipes)

# Traducir función en proyectos multi-módulo:
ontoprune translate services/order_service.py procesar_orden --format stubs

# Pipeline directo con Ollama en proyectos modulares:
ontoprune translate services/order_service.py procesar_orden | ollama run qwen2.5-coder:3b

4. Ejecución del Benchmark Empírico

# Correr benchmark comparativo (Naive vs OntoPrune con ablación de formatos):
python -m ontoprune.benchmark --file fixtures/sample_service.py --func procesar_orden --backend ollama --model qwen2.5-coder:3b --compare-formats

Modelos de Monetización y Aplicación Comercial

OntoPrune resuelve dos problemas críticos de costo y confiabilidad en ingeniería de IA:

1. Token Cost Optimization Gateway (B2B SaaS / Middleware de Ahorro)

  • Problema: Equipos que operan agentes de código autónomos (Devin, Cursor, Copilot Workspace) gastan miles de dólares mensuales en tokens de entrada donde más del 80% es código irrelevante.
  • Solución: OntoPrune como proxy o sidecar que poda el contexto antes de enviarlo a APIs comerciales (Gemini, Claude, OpenAI), reduciendo la factura de tokens en un 85%.
  • Monetización: Cobro basado en porcentaje de ahorro (gain-share: ej. 10% del ahorro mensual generado).

2. Local-First Developer Tooling (Edición Profesional / Equipos)

  • Problema: Desarrolladores y empresas que requieren privacidad estricta ejecutan SLMs en laptops o servidores locales (Ollama/vLLM), sufriendo latencias inaceptables en CPU.
  • Solución: OntoPrune reduce el TTFT de 22s a 3.3s (6.7x más rápido).
  • Monetización: Versión open-source para desarrolladores individuales + licencia empresarial para equipos (soporte multi-repositorio, telemetría y reglas de cumplimiento de arquitectura).

3. Agent Compliance & CI/CD Security Gate

  • Problema: Los agentes de código alucinan APIs y rompen contratos de software en producción.
  • Solución: ontoprune check como paso automatizado en GitHub Actions / GitLab CI que bloquea pull requests con llamadas no autorizadas al grafo del sistema.
  • Monetización: Modelo SaaS de auditoría y seguridad para código generado por agentes.

Metadata

Release files for ontoprune 0.2.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ontoprune 0.2.0a1
File Size Uploaded
ontoprune-0.2.0a1.tar.gz 139.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ontoprune 0.2.0a1
File Interpreter ABI Platform
ontoprune-0.2.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 168.4 kB

Release files / ontoprune-0.2.0a1.tar.gz

Download URL ontoprune-0.2.0a1.tar.gz
Size 139.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a7865dcb2d9bda8342ec7d7ab623cd4b7e05f9551751ebc50d8133dc56eacb06
BLAKE2b-256 checksum
How to use checksums
a09e8665b9e58772daaf4b48a434416ece06768d1d029ca2ab122a5645ba1814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21.1","id":"vera","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ontoprune-0.2.0a1-py3-none-any.whl

Download URL ontoprune-0.2.0a1-py3-none-any.whl
Size 28.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb8e7d25be72105d9cc8f1f0588da8460ce1da36edd54d1b159174236d24457f
BLAKE2b-256 checksum
How to use checksums
f3de33fea571f55dba4d1a8a1baf11509cb9507ebf11d6837155dffa71da3ef2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"21.1","id":"vera","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.0

2 release files

This release

0.2.0a1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page