RAG es tan bueno como los datos que recupera. Si su base de conocimientos es una colección de archivos PDF, documentos Word y hojas de cálculo CSV, necesita extraer el texto antes de poder embebarlo y buscarlo. En un stack RAG típico, esto requiere bibliotecas de análisis separadas: pdfjs-dist para PDFs, mammoth para DOCX, csv-parse para CSV, cada una con su propia API y sus propios casos límite.
FLIN proporciona una sola función parse_document() que maneja todos los formatos de documento comunes. Dele un archivo, obtenga texto estructurado. Sin selección de biblioteca. Sin detección de formato. Sin adivinanza de codificación.
La función parse_document()
flin// Analizar cualquier formato soportado
result = parse_document("path/to/document.pdf")
// Estructura del resultado
result.text // Texto completo extraído
result.metadata // Metadatos del documento (título, autor, páginas, etc.)
result.format // Formato detectado ("pdf", "docx", "csv", etc.)
result.pages // Arreglo de textos de página (para PDF)
result.sections // Arreglo de secciones con encabezados (para DOCX)
result.rows // Arreglo de objetos de fila (para CSV)Formatos soportados
| Formato | Extensiones | Analizador | Notas |
|---|---|---|---|
.pdf | Rust personalizado | Texto, tablas, metadatos | |
| DOCX | .docx | ZIP + XML | Encabezados, párrafos, tablas |
| CSV | .csv, .tsv | Personalizado | Auto-detección de delimitador |
| JSON | .json | serde_json | Aplanado a texto |
| YAML | .yaml, .yml | serde_yaml | Aplanado a texto |
| Texto plano | .txt, .md | Directo | Sin análisis necesario |
| HTML | .html, .htm | Eliminación de etiquetas | Contenido de texto extraído |
El análisis de documentos es la base no glamurosa de cualquier sistema RAG. Sin extracción de texto limpia y estructurada, los embeddings son pobres y los resultados de búsqueda son irrelevantes. Los analizadores integrados de FLIN aseguran que el texto que entra al pipeline de embedding sea limpio, estructurado y fiel al documento original.
Esta es la Parte 121 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: - [120] RAG: recuperación, reranking y atribución de fuentes - [121] Análisis de documentos: PDF, DOCX, CSV, JSON, YAML (estás aquí) - [122] Chunking consciente del código para RAG - [123] Búsqueda híbrida de documentos: BM25 + semántica