Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG Simple Project

Este proyecto implementa un sistema de Recuperación Aumentada de Generación (RAG) que utiliza Google BigQuery para almacenar embeddings de documentos PDF y OpenAI para generar respuestas basadas en el contenido de estos documentos.

Requisitos Previos

  • Python 3.8 o superior
  • Cuenta de Google Cloud Platform con BigQuery habilitado
  • Cuenta de OpenAI con acceso a la API
  • Tesseract OCR instalado en el sistema (Tener configurado en el PATH)

Instalación

  1. Clona este repositorio o descarga los archivos

  2. Instala las dependencias:

    pip install -r requirements.txt
  3. Instala Tesseract OCR:

  4. Crea un archivo .env en la raíz del proyecto con las siguientes variables:

    OPENAI_API_KEY=tu_clave_api_de_openai
    

Configuración de Google Cloud y BigQuery

1. Crear un Proyecto en Google Cloud

  1. Ve a Google Cloud Console
  2. Haz clic en "Seleccionar un proyecto" en la parte superior de la página
  3. Haz clic en "Nuevo proyecto"
  4. Asigna un nombre al proyecto y haz clic en "Crear"
  5. Anota el ID del proyecto, lo necesitarás más adelante

2. Habilitar la API de BigQuery

  1. En la consola de Google Cloud, ve a "APIs y servicios" > "Biblioteca"
  2. Busca "BigQuery API" y selecciónala
  3. Haz clic en "Habilitar"

3. Crear Dataset y Tabla en BigQuery

  1. Ve a BigQuery Console
  2. Haz clic en el ID de tu proyecto en el panel izquierdo
  3. Haz clic en "Crear dataset"
  4. Configura el dataset:
    • ID del dataset: archivos
    • Ubicación de los datos: selecciona la región más cercana a ti
    • Haz clic en "Crear dataset"
  5. Una vez creado el dataset, haz clic en él y luego en "Crear tabla"
  6. Configura la tabla:
    • Nombre de la tabla: embeddings
    • Esquema: Haz clic en "Editar como texto" y pega lo siguiente:
      id:INTEGER,
      text:STRING,
      embedding:FLOAT64
      
    • Haz clic en "Crear tabla"

Uso del Proyecto

1. Preparar los Documentos

Coloca tus archivos PDF en la carpeta data/ del proyecto.

2. Procesar los PDFs y Generar Embeddings

Ejecuta el script de ingesta para procesar los PDFs y guardar los embeddings en BigQuery:

python ingest_pdf.py --folder data --limit 5 --chuck_size 1000 --overlap 200

Parámetros:

  • --folder: Ruta a la carpeta con los PDFs (por defecto: "data")
  • --limit: Número máximo de PDFs a procesar (por defecto: 1)
  • --chuck_size: Tamaño de cada fragmento de texto en caracteres (por defecto: 1000)
  • --overlap: Número de caracteres de solapamiento entre fragmentos (por defecto: 200)

3. Consultar los Documentos

Ejecuta el script principal para hacer preguntas sobre el contenido de los documentos:

python main.py

El script te pedirá que ingreses una pregunta y generará una respuesta basada en el contenido de los documentos procesados.

Estructura del Proyecto

  • main.py: Script principal para consultar documentos usando RAG
  • ingest_pdf.py: Script para procesar PDFs y guardar embeddings en BigQuery
  • data/: Carpeta para almacenar los archivos PDF
  • requirements.txt: Lista de dependencias del proyecto
  • .env: Archivo de configuración con claves API y credenciales

Notas Adicionales

  • El sistema utiliza el modelo text-embedding-ada-002 de OpenAI para generar embeddings
  • Para responder preguntas, se utiliza GPT-4 (o GPT-3.5-Turbo como alternativa)
  • El sistema incluye OCR (Reconocimiento Óptico de Caracteres) para extraer texto de imágenes dentro de los PDFs

Solución de Problemas

  • Error de autenticación de Google Cloud: Verifica tener el CLI de gcloud instalado y a ver iniciado sesión y tener el proyecto recien creado como default.
  • Error de OCR: Asegúrate de que Tesseract OCR esté correctamente instalado y accesible en tu PATH
  • Límites de API: Ten en cuenta los límites de uso de las APIs de OpenAI y BigQuery

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages