paint-brush
Gestión de grandes volúmenes de datos con MinIO, Langchain y OpenAIby@minio
8,516
8,516

Gestión de grandes volúmenes de datos con MinIO, Langchain y OpenAI

MinIO5m2024/04/23
Read on Terminal Reader
Read this story w/o Javascript

Este artículo demuestra una implementación práctica utilizando MinIO, Langchain y el modelo GPT-3.5 de OpenAI, centrándose en resumir documentos almacenados en depósitos MinIO.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Gestión de grandes volúmenes de datos con MinIO, Langchain y OpenAI
MinIO HackerNoon profile picture
0-item


En el mundo del almacenamiento y procesamiento de datos en rápida evolución, combinar soluciones eficientes de almacenamiento en la nube con capacidades avanzadas de IA presenta un enfoque transformador para manejar grandes volúmenes de datos. Este artículo demuestra una implementación práctica utilizando MinIO, Langchain y el modelo GPT-3.5 de OpenAI, centrándose en resumir documentos almacenados en depósitos MinIO.

El poder de MinIO

MinIO es un almacenamiento de objetos de código abierto y alto rendimiento que es totalmente compatible con la API de Amazon S3. Conocido por su escalabilidad, MinIO es ideal para almacenar datos no estructurados como fotos, vídeos, archivos de registro, copias de seguridad e imágenes de contenedores. No se trata sólo de almacenamiento; MinIO también ofrece funciones como replicación de datos, gestión del ciclo de vida y alta disponibilidad, lo que lo convierte en la mejor opción para las aplicaciones modernas nativas de la nube.

Integrando Langchain y OpenAI

Cadena Lang , una herramienta basada en Python, facilita la interacción entre los cargadores de documentos y los modelos de IA. En nuestro caso de uso, combinamos Langchain con OpenAI gpt-3.5-turbo-1106 modelo para resumir documentos de depósitos MinIO. Esta configuración ejemplifica cómo la IA puede extraer información esencial de una gran cantidad de datos, simplificando el análisis y la interpretación de los datos. Para obtener información adicional y materiales de apoyo relacionados con este artículo, como cuadernos y documentos cargados, visite el Repositorio MinIO Github en el langchain-s3-minio directorio.

Instalación de Langchain

Antes de sumergirse en la implementación, asegúrese de tener Langchain instalado. Instálalo mediante pip:


 pip install --upgrade langchain


Esto encapsulará todas las bibliotecas necesarias que usaremos para nuestros cargadores S3 y el modelo OpenAI.

Paso 1: Directorios y cargadores de archivos de Langchain S3

Inicialmente, nos centramos en cargar documentos utilizando S3DirectoryLoader y S3FileLoader de Langchain. Estos cargadores son responsables de recuperar documentos únicos y múltiples de directorios y archivos específicos en depósitos de MinIO.

Configuraciones de MinIO y cargador de archivos Langchain S3


 from langchain_community.document_loaders.s3_file import S3FileLoader # MinIO Configuration for the public testing server endpoint = 'play.min.io:9000' access_key = 'minioadmin' secret_key = 'minioadmin' use_ssl = True # Initialize and load a single document file_loader = S3FileLoader( bucket='web-documentation', key='MinIO_Quickstart.md', endpoint_url=f'http{"s" if use_ssl else ""}://{endpoint}', aws_access_key_id=access_key, aws_secret_access_key=secret_key, use_ssl=use_ssl ) document = file_loader.load()

Ejemplo de Python Langchain: cargador de archivos S3

Cargador de directorio Langchain S3:


 from langchain_community.document_loaders.s3_directory import S3DirectoryLoader # Initialize and load documents directory_loader = S3DirectoryLoader( bucket='web-documentation', prefix='', endpoint_url=f'http{"s" if use_ssl else ""}://{endpoint}', aws_access_key_id=access_key, aws_secret_access_key=secret_key, use_ssl=use_ssl ) documents = directory_loader.load()

Ejemplo de Python Langchain: cargador de directorios S3

Paso 2: Resumiendo con OpenAI

Después de cargar los documentos, utilizamos el modelo GPT-3.5 de OpenAI (que se incluye en la biblioteca Langchain a través de ChatOpenAI ) para generar resúmenes. Este paso ilustra la capacidad del modelo para comprender y condensar el contenido, proporcionando información rápida a partir de documentos grandes.

Para acceder a la API de OpenAI, puede adquirir una clave API visitando el Plataforma abierta AI . Una vez que tenga la clave, intégrela en el código siguiente para aprovechar el poder de GPT-3.5 para el resumen de documentos.

Ejemplo de código para resumen de documentos:


 from langchain_openai import ChatOpenAI from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import RunnableLambda import os # Set your OpenAI API key os.environ['OPENAI_API_KEY'] = 'your-openai-api-key' model = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-1106") prompt = ChatPromptTemplate.from_template( "Summarize the following document '{document_name}':{context}Please provide the summary and key points." ) loaded_documents = [documents, document] # From S3 Loaders flattened_documents = [doc for sublist in loaded_documents for doc in sublist] for loaded_document in flattened_documents: document_text = loaded_document.page_content document_name = getattr(loaded_document, 'name', 'Unknown Document') # Assuming each document has a 'name' attribute chain = ( RunnableLambda(lambda x: {"context": document_text, "document_name": document_name}) | prompt | model | StrOutputParser() ) summary = chain.invoke(None) print("Summary:", summary)

Ejemplo de Python Langchain: resumen de documentos con la API OpenAI


A continuación se muestra el resultado de la ejecución de esta demostración y es el resultado de la integración de LangChain con el almacenamiento GPT-3.5 y MinIO S3 de OpenAI; la salida se ha acortado con fines demostrativos:


 Summary: The document is a quickstart guide for MinIO, a high-performance object storage system that is compatible with Amazon S3. It explains how to run MinIO on bare metal hardware or in containers. For Kubernetes environments, it recommends using the MinIO Kubernetes Operator. The key points are: - MinIO is a high-performance object storage system. - It is released under the GNU Affero General Public License v3.0. - MinIO is API compatible with Amazon S3. - It can be used to build high-performance infrastructure for machine learning, analytics, and application data workloads. - The guide provides quickstart instructions for running MinIO on bare metal hardware or in containers. - For Kubernetes environments, the MinIO Kubernetes Operator is recommended.

Respuesta de la API OpenAI


Este método destaca una forma interesante de cargar documentos desde el almacenamiento S3 en un LLM utilizando el marco Langchain para procesarlos, mientras que el modelo GPT-3.5 de OpenAI genera un resumen conciso y puntos clave de MinIO_Quickstart.md que se obtiene de play.min.io servidor play.min.io . El uso de IA para analizar y condensar documentación extensa proporciona a los usuarios una comprensión rápida y completa de aspectos esenciales como la instalación, la configuración del servidor, los SDK y otras funciones de MinIO. Muestra la capacidad de la IA para extraer y presentar información crítica de fuentes de datos integrales.

Carga de documentos desde depósitos MinIO con Langchain

La integración de MinIO, Langchain y OpenAI ofrece un conjunto de herramientas convincente para gestionar grandes volúmenes de datos. Si bien los cargadores S3 de Langchain, S3DirectoryLoader y S3FileLoader, desempeñan un papel importante en la recuperación de documentos de depósitos MinIO, sirven únicamente para cargar datos en Langchain. Estos cargadores no realizan acciones relacionadas con la carga de datos en depósitos. Para tareas como cargar, modificar o administrar políticas de depósitos, el SDK de MinIO Python es la herramienta adecuada. Este SDK proporciona un conjunto completo de funcionalidades para interactuar con el almacenamiento MinIO, incluida la carga de archivos, la administración de depósitos y más. Para obtener información adicional, consulte Guía de inicio rápido: Almacenamiento de objetos MinIO para Linux , Referencia de la API del cliente Python: almacenamiento de objetos MinIO para Linux .


Si bien Langchain agiliza el proceso de obtención y procesamiento de datos utilizando modelos de IA, el trabajo pesado de la gestión de datos dentro de los depósitos de MinIO depende del SDK de MinIO Python. Esta es una distinción importante que deben comprender los desarrolladores e ingenieros de datos que crean soluciones de almacenamiento eficientes integradas en IA. Para obtener una comprensión profunda de las capacidades de MinIO y cómo utilizar su SDK de Python para diversas operaciones de almacenamiento, consulte el sitio web oficial de MinIO. documentación .


Al utilizar el almacenamiento de objetos MinIO como depósito de datos principal para los procesos de IA y ML, puede simplificar su proceso de gestión de datos. MinIO se destaca como una solución integral para almacenar, gestionar y recuperar grandes conjuntos de datos , que es crucial para operaciones efectivas de IA y ML. Este enfoque simplificado reduce la complejidad y los gastos generales, lo que potencialmente acelera la información al garantizar un acceso rápido a los datos.


Para aquellos interesados en profundizar en la integración de MinIO con Langchain para mejorar el uso de herramientas LLM, el artículo " Desarrollo de agentes Langchain con MinIO SDK para el uso de herramientas LLM " ofrece una exploración completa del tema.


¡Buena suerte en tus esfuerzos de desarrollo! Esperamos MiniIO continúa desempeñando un papel clave en su viaje AI/ML. Comuníquese con nosotros en Flojo ¡Y comparte tus ideas y descubrimientos!