Kore — Motor de Conocimiento Inteligente. Cache + comprensión + decisión en un solo paquete.
Project description
Kore Engine
El motor de conocimiento que responde antes que tu LLM.
El problema
Cada empresa que usa un LLM gasta miles de euros al mes respondiendo las mismas preguntas una y otra vez. El 70-80% de las consultas de tus usuarios ya las has respondido antes.
La solución
pip install kore-engine
Kore se pone delante de tu LLM. Si sabe la respuesta, la da en menos de 1 milisegundo. Si no sabe, te dice que no sabe y tú decides si pasarla al LLM. Cada respuesta buena que pasa por Kore se queda para la próxima vez.
from kore import Kore
k = Kore("mi_dominio")
k.ingest("mi_conocimiento.jsonl")
r = k.ask("¿cómo se calcula el IVA?")
if r and r.confident:
return r.answer # <1ms, 0 tokens, 0 coste
else:
return llamar_al_llm() # Solo cuando Kore no sabe
Por qué Kore
| Kore | RAG + VectorDB | LLM directo | |
|---|---|---|---|
| Instalación | pip install kore-engine |
Redis + Pinecone + embeddings + orquestador | API key |
| Dependencias | 0 | 4-6 servicios | 1 API |
| Latencia | <1ms | 50-200ms | 500-3000ms |
| Coste por query | 0 | ~$0.001 (embeddings) | $0.01-0.10 |
| Aprende solo | Si | No | No |
| Memoria conversacional | Si | No | Limitada |
Qué puede hacer
Responder sin LLM — Kore tiene múltiples niveles de comprensión. No es un simple cache de texto exacto. Entiende variaciones, sinónimos y contexto.
Recordar conversaciones — Si un usuario pregunta "tipos de IVA" y luego dice "y el repercutido?", Kore sabe que habla de IVA repercutido.
k.ask("tipos de IVA en España", session_id="user_1")
# → "General 21%, reducido 10%, superreducido 4%"
k.ask("y el repercutido?", session_id="user_1")
# → "El IVA repercutido es el que cobra la empresa al vender..."
Aprender de las interacciones — Cuando tu LLM da una buena respuesta y el usuario la valida, Kore la incorpora. La próxima vez no necesita LLM.
k.feedback("¿cómo se cierra el ejercicio?", respuesta_del_llm, positive=True)
# A partir de ahora, Kore responde esa pregunta solo
Cualquier dominio — Fiscal, legal, médico, soporte técnico, e-commerce, educación. Tú defines las categorías de tu dominio y Kore se adapta.
k = Kore("soporte_tecnico", config=DomainConfig(
name="soporte",
categories={
"hardware": ["pc", "monitor", "teclado", "ratón", "impresora"],
"software": ["windows", "office", "email", "vpn", "antivirus"],
"red": ["wifi", "ethernet", "dns", "proxy", "firewall"],
},
))
Ingestar de todo — JSONL, CSV, JSON, ChatML, conversations. Le metes tu conocimiento en el formato que tengas.
k.ingest("faq.jsonl")
k.ingest("soporte.csv")
k.ingest([{"query": "...", "answer": "..."}])
Estadísticas en tiempo real — Sabes exactamente cuánto te ahorras.
s = k.stats()
# → hit_rate: 78%, queries: 15420, hits: 12028, misses: 3392
Comprensión semántica (opcional)
El paquete base ya es potente. Pero si quieres comprensión por significado (no solo por palabras), activa el nivel semántico:
pip install kore-engine[semantic]
k = Kore("mi_dominio", semantic=True)
Añade ~35MB. Sin PyTorch (2GB+). Sin GPU. Corre en cualquier CPU.
Rendimiento real
Probado con un dataset de 7,888 pares pregunta-respuesta de contabilidad española:
| Métrica | Resultado |
|---|---|
| Ingesta | 7,888 entries en 1.1s |
| Hit rate en queries del dominio | 100% |
| Falsos positivos (queries fuera de dominio) | 0% |
| Latencia media | 0.9ms/query |
| Memoria conversacional | 16/16 queries contextuales resueltas |
| Sesiones paralelas | Aislamiento perfecto |
Persistencia
# En memoria (rápido, volátil)
k = Kore("dominio", db_path=":memory:")
# En disco (persiste entre reinicios)
k = Kore("dominio", db_path="mi_conocimiento.db")
API completa
from kore import Kore, DomainConfig
k = Kore("dominio", config=config)
# ── Conocimiento
k.ingest(source) # Carga masiva
k.add(query, answer) # Entrada individual
k.clear() # Limpiar todo
# ── Consulta
r = k.ask(query) # Sin sesión
r = k.ask(query, session_id="user_1") # Con memoria
# ── Resultado
r.answer # Respuesta
r.score # Confianza (0.0 - 1.0)
r.confident # True si score >= 0.7
r.level # Nivel de matching
r.category # Categoría detectada
# ── Memoria
k.context(session_id) # Estado de la sesión
k.history(session_id) # Últimos turnos
k.forget(session_id) # Olvidar sesión
# ── Aprendizaje
k.feedback(query, answer, positive=True) # Registrar feedback
k.learn() # Incorporar feedback acumulado
# ── Estadísticas
k.stats() # Hit rate, contadores, etc.
Requisitos
- Python 3.10+
- Nada más
Licencia
MIT — IAFiscal © 2026
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kore_engine-0.1.0.tar.gz.
File metadata
- Download URL: kore_engine-0.1.0.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9685b3ff8b99b897dd128695d365a1363b9d5918ebea1a9a221eefa8353877f3
|
|
| MD5 |
ead1aea98156deb8ca802b0c0b1eb640
|
|
| BLAKE2b-256 |
73eda27cd10db40d5f8ce2071d3b60ca016cc11c6b04c426fdf5b38dc32c5614
|
File details
Details for the file kore_engine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kore_engine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
692c99e71c68bd339e5e44094f5f6212f2d6247d0bf793e2be4246684e0271f5
|
|
| MD5 |
7206f68c8dacf006a015dcc0a1bce7ab
|
|
| BLAKE2b-256 |
33ed3f4b78037affdc902f8366973c3a5dbafbbf1456d082c1855b6950df1b36
|