---
title: "La conversación es con la IA, el archivo es tocado por el motor: lo que sale es una especificación ejecutada."
seo_title: "Conversación con IA, archivo tocado por el motor | SazAI"
description: "La capa que habla y la que altera el documento están separadas: el modelo entiende, el motor ejecuta."
tags: [marketing]
---

> Casi todo producto de IA para documentos pone el modelo en el camino del archivo: lee el material, decide qué cambiar y devuelve un documento nuevo. Funciona en la demostración y falla en el caso que importa, porque un modelo de lenguaje es excelente interpretando y pésimo garantizando. SazAI Corpus parte de una división diferente, y de ahí es que todo lo que las otras páginas prometen viene.

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="sparkles" size="36"></sz-icon></div>

<h2 id="two-layers">Las dos capas</h2>

<h3 class="sub">Una entiende qué quieres; la otra abre el archivo por las reglas del formato</h3>

La capa que habla entiende la solicitud, elige la operación, explica el resultado y
responde tus preguntas. Está hecha de un modelo de lenguaje, y es ahí donde trabaja la IA. La
capa que toca el archivo es un motor determinístico: abre el documento por las reglas de
su propio formato, encuentra los elementos que existen, cambia exactamente los autorizados y escribe
el archivo de vuelta. Ese motor no interpreta intención y no improvisa.

<figure class="viz duo" role="group" aria-label="La solicitud en lenguaje natural se convierte en una operación elegida, y es el motor lo que escribe el archivo">
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><rect x="4" y="10" width="82" height="40" rx="10" fill="none" stroke="var(--verb-talk)" stroke-width="1.5"/><line x1="16" y1="24" x2="64" y2="24" stroke="var(--gray)" stroke-width="2"/><line x1="16" y1="34" x2="48" y2="34" stroke="var(--gray)" stroke-width="1.5"/></svg><b>tu solicitud</b><span>en tu propio idioma, como hablas</span></div>
<div class="mid"><svg viewBox="0 0 120 72" aria-hidden="true"><line x1="8" y1="36" x2="52" y2="36" stroke="var(--verb-talk)" stroke-width="1.5"/><path d="M46 30l6 6-6 6" fill="none" stroke="var(--verb-talk)" stroke-width="1.5"/><rect x="52" y="24" width="24" height="24" rx="4" fill="none" stroke="var(--verb-talk)" stroke-width="1.5"/><line x1="76" y1="36" x2="112" y2="36" stroke="var(--gray)" stroke-width="1.5"/><path d="M106 30l6 6-6 6" fill="none" stroke="var(--gray)" stroke-width="1.5"/></svg><b>una operación elegida</b><span>nombrada, registrada, con recibo</span></div>
<div class="side"><svg viewBox="0 0 90 60" aria-hidden="true"><rect x="12" y="6" width="66" height="48" rx="4" fill="none" stroke="var(--gray)" stroke-width="1.5"/><rect x="22" y="18" width="28" height="16" rx="2" fill="none" stroke="var(--gray)" stroke-width="1.5"/><line x1="22" y1="42" x2="68" y2="42" stroke="var(--lightgray)" stroke-width="1.5"/></svg><b>el archivo escrito</b><span>por el motor, nunca por el modelo</span></div>
<figcaption>El modelo elige la operación; el motor es lo que abre y escribe el archivo.</figcaption>
</figure>

La consecuencia práctica de esta división es la que decide una compra: el peor error posible de la capa de IA sigue siendo un error de conversación. Si el modelo malinterpreta tu solicitud, la operación incorrecta se ejecuta y eso aparece en el recibo, con el nombre de qué se ejecutó y contra cuál versión. Lo que no sucede es el archivo volviendo silenciosamente dañado por una improvisación.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="settings" size="36"></sz-icon></div>

<h2 id="spec">El documento sale de una especificación</h2>

<h3 class="sub">Tú dices qué quieres; lo que se ejecuta es una operación sobre una estructura conocida</h3>

Antes de cualquier transformación, el documento se lee completo y se descompone en los elementos que lo
componen: textos, formas, tablas, celdas, páginas, relaciones entre las partes, propiedades y
metadatos. Ese mapa se registra, y es lo que sostiene todo lo demás. Un cambio no es una
reescritura del archivo: es una <dfn tabindex="0" data-hint="La descripción explícita de qué debe cambiar, en cuáles elementos, contra cuál versión. El motor ejecuta la especificación; no adivina qué quisiste decir.">especificación</dfn> ejecutada contra ese mapa, que altera los
elementos autorizados, deja el resto intacto y verifica el resultado contra la estructura
de origen.

Por eso una pregunta sobre el documento se responde sin reprocesar nada, y por eso
una comparación entre dos versiones apunta a divergencia por unidad en lugar de mostrar dos textos
lado a lado. Todo de esa lectura, con lo que se preserva de cada formato, está en
[tus documentos](documents).

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="check" size="36"></sz-icon></div>

<h2 id="checked-boundary">Dónde el texto del modelo realmente entra</h2>

<h3 class="sub">En la traducción el límite es verificado, y cuando no coincide el paso falla</h3>

Vale la pena ser específico sobre el único caso donde el texto del modelo realmente llega al
archivo, que es la traducción. Ahí el texto traducido vuelve y tiene que ser inyectado en los
elementos correctos, y el límite entre qué produjo el modelo y qué entra en el
documento es verificado, no presumido. El material enviado lleva marcadores que delimitan cada
pasaje, y el número de marcadores que vuelve se compara con el número que salió.
Si no coinciden, porque el modelo dejó caer uno, inventó otro o escribió algo que se ve como uno, el paso falla.

<figure class="viz" role="group" aria-label="Conteo de elementos de entrada y de salida en una prueba de traducción de 45 diapositivas">
<div class="ev proof"><span class="n">633</span><span class="t"><b>Entró con 633, salió con 633</b>En una prueba de traducción de 45 diapositivas el archivo entró con 633 elementos y salió con 633, entró con 971 formas y salió con 971, y el motor tocó exactamente las 11 diapositivas que tenían texto. Las otras 34 no fueron alteradas porque no había nada en ellas para alterar.</span></div>
<figcaption>Un conteo es la forma honesta de decir esto; un adjetivo no lo es.</figcaption>
</figure>

La diferencia que eso hace es la de siempre en esta casa: un modelo que se comporta mal aquí no
produce un documento dañado en silencio, produce una operación que no se completó.
Te enteras, en lugar de descubrirlo en la reunión. El alcance de esa garantía varía con lo que cada formato permite, y la página [traducir](translate) dice dónde se sostiene y dónde termina.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-talk)" name="rotate" size="36"></sz-icon></div>

<h2 id="model-is-a-choice">El modelo de lenguaje es una opción, no una dependencia</h2>

<h3 class="sub">Lo que permanece igual cuando el modelo cambia es la capa determinística</h3>

El modelo que habla y el modelo que traduce son papeles diferentes, elegidos por separado
por el mérito medido en cada función, y ambos son reemplazables por configuración. Un cliente
instalado apunta al modelo que contrató.

Esto importa por una razón más allá del precio: una herramienta atada a un único proveedor de IA envejece junto con él. La capa determinística es la que no se mueve cuando el modelo cambia, y es
sobre ella que la [soberanía](privacy) del arreglo descansa. También es por eso que el agente no inventa
un hecho sobre tu documento: responde a partir de lo que el motor registró, y el registro o
contiene la información o no la contiene.

</div>

Esta es la división; lo que habilita son los canales por los que hablas con el producto, en
[interfaces](interfaces), y el conjunto de operaciones que el agente puede ejecutar, en
[capacidades](capabilities).
