El error más común cuando montas un sistema RAG en producción es asumir que “un solo endpoint de modelos” lo resuelve todo.
En cuanto metes ingesta real (bases de datos, miles/millones de chunks), embeddings se comen la cola y la generación se degrada.
Separar para proteger la experiencia
En Ka0s lo resolvemos con dos servicios:
ollama-gen: generación (GPU, online)ollama-embed: embeddings (CPU, offline)
Rationale documentado: core/docs/ka0s_agent_knowledge_pipeline/01_concept.md.
Qué cambia en la práctica
Online (Query):
- el agente usa
ollama-genpara/api/generate.
Offline (Ingesta):
- los jobs de ingesta llaman a
ollama-embedpara/api/embeddings.
Resultado
- Latencia estable para el usuario.
- Throughput alto para ingesta.
- Menos riesgo de “todo va lento” cuando el batch corre de madrugada.
Mañana: cómo hacemos incrementalidad sin depender de “magia”: estado persistente, watermarks y control de volumen.