Back to flin
flin

Integración chunk-embedding

Cómo FLIN conecta el chunking de documentos con los embeddings vectoriales -- la capa de integración que convierte PDFs subidos en conocimiento buscable con una sola instrucción save.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min flin
EN/ FR/ ES
flinrust

Se puede dividir texto en piezas. Se pueden generar embeddings desde texto. Pero conectar estas dos operaciones -- de manera confiable, eficiente y con seguimiento adecuado de metadatos -- es donde la mayoría de las implementaciones RAG fallan. La Sesión 222 construyó la capa de integración que cierra esta brecha. Nueve nuevas funciones, 19 pruebas y un pipeline completo de extremo a extremo que toma bytes crudos de documentos y produce vectores indexados y buscables en una sola llamada a función.

El pipeline completo de documentos

rustpub fn ingest_document(
    store: &mut VectorStore,
    bytes: &[u8],
    document_id: u64,
    entity_type: &str,
    field_name: &str,
    mime_type: Option<&str>,
    extension: Option<&str>,
    chunk_options: Option<ChunkOptions>,
) -> Result<usize, ChunkEmbedError> {
    // Paso 1: Extraer texto del documento
    let text = extract_document(bytes, mime_type, extension)?;
    // Paso 2: Dividir el texto en chunks
    let chunks = chunk_text(&text, &opts);
    // Paso 3: Embeber cada chunk
    let embedded = embed_chunks(&chunks)?;
    // Paso 4: Almacenar en vector store
    store_document_embeddings(store, document_id, entity_type, field_name, &embedded)?;
    Ok(embedded.len())
}

Cinco etapas en una llamada a función: extraer, dividir, embeber, almacenar y retornar el conteo.

En código FLIN, el chunking es típicamente invisible:

flinentity LegalDocument {
    title: text
    content: semantic text
    jurisdiction: text
}

doc = LegalDocument.create({
    title: "Employment Contract Template",
    content: document_extract(body.file),
    jurisdiction: "OHADA"
})
save doc
// Automáticamente: chunk -> embeber -> almacenar vectores

Esta es la Parte 131 de la serie "Cómo construimos FLIN", que documenta cómo un CEO en Abidjan y un CTO de IA diseñaron y construyeron un lenguaje de programación desde cero.

Navegación de la serie: - [130] Estrategias de chunking de texto - [131] Integración chunk-embedding (estás aquí) - [132] Extracción de texto de CSV, XLSX, RTF y XML

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Funciona, y no está terminado

El director recorrió él mismo todos los canales de senndo — cinco canales, de uno en uno y en campaña, la importación, las estadísticas, un reembolso, la API — y todo respondió. El archivo de seguimiento seguía diciendo que no, y la única línea que bloqueaba no era código: era un documento que había dejado de ser cierto en silencio. Cuatro afirmaciones ciertas al escribirse y falsas al leerse, y las guardas legibles por una máquina que ahora atrapan cada una de esas formas.

12 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

El navegador en manos de Claude: manejar el propio Chrome del CEO

Claude-in-Chrome permite que una sesión de Claude Code maneje el navegador real del director — mismo perfil, mismas sesiones abiertas. Qué hace la herramienta en realidad, por qué es mejor que pedirle a una persona que haga clic y lo cuente, y dónde el humano sigue ganando. Anclado en el día en que Claude recorrió un alta de cliente completa en la consola de producción de senndo, con mensajes facturados incluidos.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

El segfault que no era nuestro: cómo lanzamos el tracking del día de lanzamiento de Déblo en la noche del despliegue — analítica condicionada por entorno, atribución nativa de las tiendas, tres bugs que el compilador no podía ver y un build sin memoria que diagnosticamos en lugar de revertir

El 1 de julio de 2026 — el día del lanzamiento — el riesgo nunca fue el texto. Era que las campañas de pago salieran a ciegas. Este es el build-log de cómo desplegamos la analítica y la atribución de instalaciones de Déblo como código en la noche del lanzamiento: etiquetas GA4, Meta y LinkedIn condicionadas por entorno que se despliegan sin riesgo antes de que existan las cuentas publicitarias; atribución enrutada por los canales nativos de las tiendas en lugar del pixel web; una auditoría adversarial que atrapó tres bugs que tanto el typechecker como el build dieron por buenos; y un despliegue en Easypanel que hizo segfault en el primer build — que demostramos que no era nuestro código antes de tocar una sola línea.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26