En pocas palabras
Biblioteca para extraer información de texto con LLM y vincularla a pasajes del documento original.
Qué problema resuelve
Datos extraídos sin evidencia que permita comprobar de dónde provienen.
Cuándo utilizarlo
Documentos extensos especializados. Ejemplo: extraer fechas y obligaciones de contratos.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
El usuario proporciona instrucciones y ejemplos de entidades. La extracción conserva referencias a ubicaciones del texto y puede exportarse o visualizarse para revisión.
Ejemplo de uso
Extraer una obligación, su responsable y fecha; mostrar cada resultado junto al fragmento que lo respalda. Marcar ausencias y ambigüedades para revisión en lugar de completarlas por inferencia.
Ejemplo completo
import langextract as lx
prompt = """Extrae obligaciones del contrato: quién debe hacer qué y en qué plazo.
Usa el texto exacto del documento. No parafrasees ni infieras datos ausentes."""
ejemplos = [
lx.data.ExampleData(
text="El Deudor pagará la cuota mensual dentro de los primeros cinco días de cada mes.",
extractions=[
lx.data.Extraction(
extraction_class="obligacion",
extraction_text="pagará la cuota mensual dentro de los primeros cinco días de cada mes",
attributes={"responsable": "Deudor", "plazo": "primeros cinco días de cada mes"},
)
],
)
]
resultado = lx.extract(
text_or_documents=texto_contrato,
prompt_description=prompt,
examples=ejemplos,
model_id="gemini-2.5-flash",
extraction_passes=2, # pasadas adicionales para mejorar la exhaustividad
max_workers=8, # procesar fragmentos en paralelo
max_char_buffer=1500, # tamaño de fragmento
)
lx.io.save_annotated_documents([resultado], output_name="obligaciones.jsonl", output_dir=".")
html = lx.visualize("obligaciones.jsonl") # resalta cada extracción sobre el texto original
Qué la diferencia
| Característica | Beneficio |
|---|---|
| Anclaje en la fuente | Cada extracción guarda su posición exacta en el texto: verificable |
| Pocos ejemplos | Se adapta al dominio con ejemplos, sin entrenar un modelo |
| Documentos largos | Divide en fragmentos, procesa en paralelo y hace varias pasadas |
| Visualización | HTML interactivo para revisión humana |
| Proveedores | Gemini, OpenAI y modelos locales mediante Ollama |
Casos de uso
- Contratos y pagarés: partes, montos, tasas, plazos, cláusulas de penalización.
- Documentos regulatorios: obligaciones y fechas de cumplimiento.
- Historias clínicas o informes: entidades y relaciones con su evidencia.
- Correos y tickets: intención, producto, datos de contacto.
Evaluar la extracción
Construye un conjunto de documentos anotados a mano y mide precisión (extracciones correctas) y exhaustividad (obligaciones encontradas sobre las existentes). En documentos legales la exhaustividad suele importar más: una obligación omitida es más grave que una extracción de más que un revisor descarta.
Para convertir PDF a texto antes de extraer, usa Docling o MarkItDown. Para salida con esquema estricto sin anclaje, ver structured output.
Criterios de implementación
Preparar ejemplos del dominio, evaluar documentos largos y medir omisiones. Proteger fuentes sensibles y separar extracción de validación de reglas y formato.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.