PageIndex: un sistema open-source de indexación de PDF para una recuperación más precisa y lógica 53

小编 ·

PageIndex: un sistema open-source de indexación de PDF para una recuperación más precisa y lógica

PageIndex es un sistema open-source de indexación de documentos PDF diseñado para mejorar la precisión de recuperación en documentos profesionales extensos y reforzar el razonamiento de los LLM. Convierte los PDF en una estructura jerárquica en árbol, reemplazando la búsqueda tradicional por similitud semántica vectorial RAG, y logra una recuperación más precisa y lógica.

PageIndex: un sistema open-source de indexación de PDF para una recuperación más precisa y lógica

¿Qué es PageIndex?

PageIndex es un sistema de indexación de documentos PDF de código abierto que mejora la precisión en la recuperación de documentos profesionales extensos y la capacidad de razonamiento de los LLM. Convierte los documentos PDF en una estructura de árbol jerárquica, reemplazando la búsqueda tradicional por similitud semántica de RAG vectorial, logrando así una recuperación más precisa y lógica.

Las funciones principales de PageIndex incluyen la conversión de documentos en una estructura de árbol similar a un índice inteligente, proporcionando localización precisa de páginas, evitando el particionamiento arbitrario y adaptándose a documentos muy extensos, manejando fácilmente contenidos de cientos o incluso miles de páginas.

Su principio de funcionamiento consiste en convertir documentos PDF en una estructura de árbol semántica, combinando análisis de consultas, selección de documentos, selección de nodos y generación de contenido, para finalmente proporcionar respuestas precisas. A diferencia de los sistemas que dependen de bases de datos vectoriales o métodos de particionamiento tradicionales, PageIndex es completamente gratuito y de código abierto. Es especialmente adecuado para procesar informes financieros, documentos regulatorios, libros de texto académicos, manuales legales o técnicos, y cualquier documento que exceda los límites de contexto del LLM.

PageIndex:一个开源PDF文档索引系统.webp

Funciones principales de PageIndex

  • Procesamiento de documentos: Capaz de manejar documentos extensos, especialmente documentos profesionales, mediante la construcción de una estructura de árbol de búsqueda para preparar la generación aumentada por recuperación (RAG) basada en razonamiento.

  • Extracción y procesamiento del índice

  • Puede extraer el contenido del índice del documento, manejando diferentes situaciones en las que hay o no números de página en el índice.

  • Transforma el índice a un formato JSON específico para facilitar el procesamiento posterior.

  • Procesamiento de números de página: Añade índices físicos a las entradas del índice, maneja situaciones en las que faltan números de página o son incorrectos, y repara entradas incorrectas del índice mediante múltiples intentos.

  • Procesamiento de nodos: Procesa recursivamente los nodos grandes dividiéndolos en nodos más pequeños para cumplir con los límites de cantidad de tokens y páginas.

  • Verificación y reparación: Verifica la precisión del índice, calcula la tasa de exactitud y repara los resultados inexactos.

Características de PageIndex

  • Estructura de árbol jerárquica: Permite a los LLM recorrer el documento de forma lógica, como un índice inteligente optimizado para LLM.

  • Referencias precisas de página: Cada nodo contiene su resumen y los índices físicos de las páginas de inicio y fin, logrando una localización precisa.

  • Sin particionamiento arbitrario: No utiliza particionamiento arbitrario; los nodos siguen la estructura natural del documento.

  • Soporte para documentos a gran escala: Diseñado para manejar fácilmente documentos de cientos o incluso miles de páginas.

Casos de uso de PageIndex

Ámbito financiero

  • Análisis de informes financieros: Localización rápida de datos e indicadores financieros clave.

  • Interpretación de documentos regulatorios: Búsqueda precisa de cláusulas regulatorias para garantizar el cumplimiento.

Ámbito legal

  • Búsqueda de documentos legales: Localización eficiente de cláusulas legales y casos.

  • Revisión de contratos: Localización rápida de cláusulas clave en los contratos.

Investigación académica

  • Búsqueda de artículos académicos: Localización rápida de resultados de investigación y soporte teórico.

  • Estudio con libros de texto: Localización conveniente de capítulos específicos y puntos de conocimiento.

Documentación técnica

  • Manuales técnicos: Búsqueda rápida de pasos de operación y parámetros técnicos.

  • Documentación de proyectos: Recuperación eficiente de información clave en proyectos.

Interno de empresas

  • Informes internos: Localización rápida de contenido clave en informes extensos.

  • Gestión de bases de conocimiento: Mejora de la eficiencia en el intercambio y recuperación de conocimiento.

Ámbito médico

  • Búsqueda de literatura médica: Localización rápida de resultados de investigación y métodos de tratamiento.

  • Guías clínicas: Localización precisa de guías de procedimientos clínicos.

Ámbito educativo

  • Materiales de cursos en línea: Búsqueda rápida de contenidos clave del curso.

  • Materiales de repaso para exámenes: Localización eficiente de puntos clave para la revisión.

Organismos gubernamentales

  • Interpretación de documentos políticos: Búsqueda rápida de cláusulas políticas.

  • Búsqueda de información pública: Mejora de la eficiencia de los servicios públicos.

Cómo usar PageIndex

1. Instalar dependencias

pip3 install -r requirements.txt

2. Configurar la clave de API de Openai

Crea un archivo .env en el directorio raíz y añade tu clave de API:

CHATGPT_API_KEY=your_openai_key_here

3. Ejecutar PageIndex sobre un PDF

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

También puedes personalizar el proceso con parámetros opcionales adicionales, por ejemplo:

--model                 OpenAI model to use (default: gpt-4o-2024-11-20)
--toc-check-pages       Pages to check for table of contents (default: 20)
--max-pages-per-node    Max pages per node (default: 10)
--max-tokens-per-node   Max tokens per node (default: 20000)
--if-add-node-id        Add node ID (yes/no, default: yes)
--if-add-node-summary   Add node summary (yes/no, default: no)
--if-add-doc-description Add doc description (yes/no, default: yes)

Github:https://github.com/VectifyAI/PageIndex

Sitio web oficial del proyecto:https://vectify.ai/pageindex