? Trapo de procesamiento de documentos multimodal con langchain?
Este proyecto es una aplicación optimista para procesar documentos multimodales y consultar una base de datos de Milvus . Aprovecha herramientas de vanguardia como Langchain , Transformers , Easyocr y otros para procesar, almacenar y consultar el texto extraído de varios tipos de archivos.
Características
Procesamiento de archivos de carga :
- Admite múltiples tipos de archivos:
audio , video , image , text , csv , yaml , json , docx y pdf . - Extrae contenido de texto usando:
- ? Audio :
speech_recognition y pydub . - ? Video : Lógica de extracción personalizada.
- ? ️ Imagen :
EasyOCR . - ? Texto/registros/documentos : cargadores langchain.
Integración de Milvus :
- ? ️ Almacenamiento de incrustaciones de documentos procesados para consultas basadas en similitud.
- ? Utiliza
HuggingFaceEmbeddings para generar representaciones vectoriales.
? Interfaz de consulta :
- Interfaz de consulta de lenguaje natural.
- Implementa una tubería de generación acuática (RAG) de recuperación para respuestas impulsadas por la IA.
Instalación
? Requisitos previos
- Python 3.8+
- Administrador de paquetes
pip o conda - GPU compatible con CUDA (opcional, para un procesamiento más rápido)
? Bifurcado y clono el repositorio
Bifurca el repositorio : navegue al repositorio de Github de Rag-Architecture y haga clic en la bifurcación .
Clon el repositorio bifurcado :
git clone https://github.com/ < your-username > /RAG-Architecture.git
cd RAG-Architecture
? Instalar dependencias
pip install -r requirements.txt
Uso
Iniciar la aplicación
Ejecute la aplicación Streamlit:
Modos de aplicación
? Subir archivos:
- Cargue un archivo para procesar y almacenar su contenido en Milvus.
- Muestra contenido extraído y almacena incrustaciones en la base de datos.
❓ Consulta:
- Ingrese una pregunta para buscar y recuperar información relevante de la base de datos de Milvus.
- Devuelve respuestas generadas por IA utilizando la tubería RAG de Langchain.
? Estructura de archivo
# # ? **File Structure**
` ` ` bash
project/
│
├── app.py # Main Streamlit application
├── requirements.txt # ? Python dependencies
├── utils/ # Utility modules
│ ├── audio_utils.py # ? Audio file processing
│ ├── video_utils.py # ? Video file processing
│ ├── image_utils.py # ?️ Image file processing
│ ├── document_loaders.py # Document processing loaders
│ ├── milvus_client.py # ?️ Initializes Milvus database
│
├── milvus_database.db # ?️ Milvus database file (auto-created)
├── Dataset # Folder to store datasets
├── Images # ? Folder for storing images
? Módulos clave
app.py
? Lógica de la aplicación principal
- Maneja cargas de archivos, procesamiento de documentos y consultas.
utils/
- ? Audio : divide el audio en trozos y transcribe texto.
- ? Video : procesa archivos de video para extraer y analizar contenido.
- ? ️ Imagen : usa easyocr para extraer texto.
- Logs/Documentos : procesos CSV, YAML, JSON y archivos PDF en documentos de Langchain estructurados.
Ejemplo de flujo de trabajo
? Cargar un archivo
- Seleccione el modo "Cargar archivos" .
- Cargue un archivo (por ejemplo,
example.pdf ). - Procesar y almacenar el archivo en la base de datos.
❓ Consultar la base de datos
- Seleccione el modo "Consulta" .
- Ingrese una pregunta del lenguaje natural.
- Reciba una respuesta concisa basada en hechos.

? Mejoras futuras
- ? Agregue capacidades de consulta más avanzadas.
- Mejore el soporte para tipos de archivos e incrustaciones adicionales.
- ⚡ Mejorar la escalabilidad para conjuntos de datos más grandes.
Licencia Este proyecto tiene licencia bajo la licencia MIT .
? Expresiones de gratitud
- Playlit para la interactiva interfaz de usuario.
- Langchain y Milvus para procesamiento de documentos, recuperación y vector DB.
- ? Transformadores para incrustar la generación.
- ? ️ Easyocr para la extracción de texto de imagen.
- ? Película para el procesamiento de videos.