Fragmenta fácilmente documentos complejos de la misma manera que lo haría un humano.
Fragmentar documentos es una tarea desafiante que sustenta cualquier sistema RAG. Los resultados de alta calidad son fundamentales para una aplicación de IA exitosa, pero la mayoría de las bibliotecas de código abierto tienen una capacidad limitada para manejar documentos complejos.
Open Parse está diseñado para llenar este vacío al proporcionar una biblioteca flexible y fácil de usar capaz de discernir visualmente los diseños de los documentos y fragmentarlos de manera efectiva.
La división de texto convierte un archivo en texto sin formato y lo divide.
Hay algunas bibliotecas fantásticas como layout-parser.
? Impulsado visualmente: Open-Parse analiza visualmente documentos para obtener una entrada LLM superior, yendo más allá de la ingenua división de texto.
✍️ Compatibilidad con Markdown: compatibilidad básica con Markdown para analizar títulos, negrita y cursiva.
Compatibilidad con tablas de alta precisión: extraiga tablas en formatos Markdown limpios con una precisión que supera a las herramientas tradicionales.
Extensible: implemente fácilmente sus propios pasos de posprocesamiento.
Intuitivo: excelente compatibilidad con el editor. Finalización por todas partes. Menos tiempo de depuración.
Fácil: Diseñado para ser fácil de usar y aprender. Menos tiempo leyendo documentos.
import openparse
basic_doc_path = "./sample-docs/mobile-home-manual.pdf"
parser = openparse . DocumentParser ()
parsed_basic_doc = parser . parse ( basic_doc_path )
for node in parsed_basic_doc . nodes :
print ( node )
? Pruebe el cuaderno de muestra aquí
La fragmentación de documentos consiste fundamentalmente en agrupar nodos semánticos similares. Al incrustar el texto de cada nodo, podemos agruparlos según su similitud.
from openparse import processing , DocumentParser
semantic_pipeline = processing . SemanticIngestionPipeline (
openai_api_key = OPEN_AI_KEY ,
model = "text-embedding-3-large" ,
min_tokens = 64 ,
max_tokens = 1024 ,
)
parser = DocumentParser (
processing_pipeline = semantic_pipeline ,
)
parsed_content = parser . parse ( basic_doc_path )
? Cuaderno de muestra aquí
Utiliza pydantic bajo el capó para que puedas serializar los resultados con
parsed_content . dict ()
# or to convert to a valid json dict
parsed_content . json ()
Pitón 3.8+
Manejo de archivos PDF:
Extracción de tablas:
pip install openparse
Habilitar la compatibilidad con OCR :
PyMuPDF ya contendrá toda la lógica para admitir funciones de OCR. Pero además necesita los datos de soporte de idiomas de Tesseract, por lo que aún se requiere la instalación de Tesseract-OCR.
La ubicación de la carpeta de soporte de idioma debe comunicarse almacenándola en la variable de entorno "TESSDATA_PREFIX" o como un parámetro en las funciones aplicables.
Entonces, para que la funcionalidad OCR funcione, asegúrese de completar esta lista de verificación:
Instalar Tesseract.
Localice la carpeta de soporte de idiomas de Tesseract. Normalmente lo encontrarás aquí:
Windows: C:/Program Files/Tesseract-OCR/tessdata
Sistemas Unix: /usr/share/tesseract-ocr/5/tessdata
macOS (instalado a través de Homebrew):
/opt/homebrew/share/tessdata
/opt/homebrew/Cellar/tesseract/<version>/share/tessdata/
Establecer la variable de entorno TESSDATA_PREFIX
Windows: setx TESSDATA_PREFIX "C:/Program Files/Tesseract-OCR/tessdata"
Sistemas Unix: declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
macOS (instalado a través de Homebrew): export TESSDATA_PREFIX=$(brew --prefix tesseract)/share/tessdata
Nota: En los sistemas Windows, esto debe ocurrir fuera de Python, antes de iniciar el script. ¡Simplemente manipular os.environ no funcionará!
Este repositorio proporciona una función opcional para analizar contenido de tablas utilizando una variedad de modelos de aprendizaje profundo.
pip install "openparse[ml]"
Luego descargue los pesos del modelo con
openparse-download
Puede ejecutar el análisis con lo siguiente.
parser = openparse . DocumentParser (
table_args = {
"parsing_algorithm" : "unitable" ,
"min_table_confidence" : 0.8 ,
},
)
parsed_nodes = parser . parse ( pdf_path )
Tenga en cuenta que actualmente utilizamos transformadores de tabla para toda la detección de tablas y consideramos que su rendimiento es deficiente. Esto afecta negativamente a los resultados posteriores de Unitable. Si conoce un modelo mejor, abra un problema; el equipo de Unitable mencionó que es posible que también lo agreguen pronto.
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
¿Su caso de uso necesita algo especial? Extiende la mano.