paint-brush
Gerenciando grandes volumes de dados com MinIO, Langchain e OpenAIpor@minio
8,573 leituras
8,573 leituras

Gerenciando grandes volumes de dados com MinIO, Langchain e OpenAI

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

Muito longo; Para ler

Este artigo demonstra uma implementação prática usando MinIO, Langchain e modelo GPT-3.5 da OpenAI, com foco no resumo de documentos armazenados em buckets MinIO.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Gerenciando grandes volumes de dados com MinIO, Langchain e OpenAI
MinIO HackerNoon profile picture
0-item


No mundo em rápida evolução do armazenamento e processamento de dados, a combinação de soluções eficientes de armazenamento em nuvem com recursos avançados de IA apresenta uma abordagem transformadora para lidar com grandes volumes de dados. Este artigo demonstra uma implementação prática usando MinIO, Langchain e modelo GPT-3.5 da OpenAI, com foco no resumo de documentos armazenados em buckets MinIO.

O poder do MinIO

MinIO é um armazenamento de objetos de código aberto e de alto desempenho totalmente compatível com a API do Amazon S3. Conhecido por sua escalabilidade, o MinIO é ideal para armazenar dados não estruturados, como fotos, vídeos, arquivos de log, backups e imagens de contêineres. Não se trata apenas de armazenamento; O MinIO também oferece recursos como replicação de dados, gerenciamento do ciclo de vida e alta disponibilidade, tornando-o a melhor escolha para aplicativos modernos nativos da nuvem.

Integrando Langchain e OpenAI

Langchain , uma ferramenta baseada em Python, facilita a interação entre carregadores de documentos e modelos de IA. Em nosso caso de uso, combinamos Langchain com OpenAI's gpt-3.5-turbo-1106 modelo para resumir documentos de buckets MinIO. Esta configuração exemplifica como a IA pode extrair informações essenciais de dados extensos, simplificando a análise e interpretação dos dados. Para obter informações adicionais e materiais de apoio relacionados a este artigo, como cadernos e documentos carregados, visite o Repositório MinIO Github no langchain-s3-minio diretório.

Instalando Langchain

Antes de mergulhar na implementação, certifique-se de ter o Langchain instalado. Instale-o via pip:


 pip install --upgrade langchain


Isso encapsulará todas as bibliotecas necessárias que usaremos para nossos carregadores S3 e modelo OpenAI.

Etapa 1: Diretório Langchain S3 e carregadores de arquivos

Inicialmente, nos concentramos em carregar documentos usando S3DirectoryLoader e S3FileLoader da Langchain. Esses carregadores são responsáveis por buscar documentos múltiplos e únicos de diretórios e arquivos especificados em buckets MinIO.

Configurações MinIO e carregador de arquivos 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()

Exemplo de Python Langchain - Carregador de arquivos S3

Carregador de diretório 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()

Exemplo de Python Langchain - Carregador de diretório S3

Passo 2: Resumindo com OpenAI

Após carregar os documentos, utilizamos o modelo GPT-3.5 da OpenAI (que está incluído na biblioteca Langchain via ChatOpenAI ) para gerar resumos. Esta etapa ilustra a capacidade do modelo de compreender e condensar o conteúdo, fornecendo insights rápidos de documentos grandes.

Para acessar a API OpenAI, você pode adquirir uma chave de API visitando o Plataforma OpenAI . Assim que tiver a chave, integre-a ao código abaixo, para aproveitar o poder do GPT-3.5 para resumo de documentos.

Exemplo de código para resumo 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)

Exemplo Python Langchain - Resumindo Documentos com API OpenAI


Abaixo está o resultado da execução desta demonstração e é o resultado da integração do LangChain com o armazenamento GPT-3.5 e MinIO S3 da OpenAI; a saída foi abreviada para fins demonstrativos:


 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.

Resposta da API OpenAI


Este método destaca uma maneira interessante de carregar documentos do armazenamento S3 em um LLM usando a estrutura Langchain para processá-los, enquanto o modelo GPT-3.5 da OpenAI gera um resumo conciso e pontos-chave do MinIO_Quickstart.md que é obtido no play.min.io servidor play.min.io . O uso de IA para analisar e condensar documentação extensa fornece aos usuários uma compreensão rápida e completa de aspectos essenciais como instalação, configuração de servidor, SDKs e outros recursos do MinIO. Ele mostra a capacidade da IA em extrair e apresentar informações críticas de fontes de dados abrangentes.

Carregando documentos de baldes MinIO com Langchain

A integração de MinIO, Langchain e OpenAI oferece um conjunto de ferramentas atraente para gerenciar grandes volumes de dados. Embora os carregadores S3 do Langchain, S3DirectoryLoader e S3FileLoader, desempenhem um papel importante na recuperação de documentos de buckets MinIO, eles servem exclusivamente para carregar dados no Langchain. Esses carregadores não executam ações relacionadas ao upload de dados em buckets. Para tarefas como upload, modificação ou gerenciamento de políticas de bucket, o MinIO Python SDK é a ferramenta apropriada. Este SDK fornece um conjunto abrangente de funcionalidades para interagir com o armazenamento MinIO, incluindo uploads de arquivos, gerenciamento de buckets e muito mais. Para obter informações adicionais, consulte Guia de início rápido — MinIO Object Storage para Linux , Referência da API do cliente Python – armazenamento de objetos MinIO para Linux .


Embora Langchain simplifique o processo de busca e processamento de dados usando modelos de IA, o trabalho pesado do gerenciamento de dados dentro dos buckets MinIO depende do MinIO Python SDK. Esta é uma distinção importante que deve ser compreendida por desenvolvedores e engenheiros de dados que criam soluções de armazenamento eficientes e integradas à IA. Para uma compreensão completa dos recursos do MinIO e como utilizar seu Python SDK para várias operações de armazenamento, consulte o documento oficial do MinIO documentação .


Ao usar o armazenamento de objetos MinIO como repositório de dados primário para processos de IA e ML, você pode simplificar seu pipeline de gerenciamento de dados. MinIO se destaca como uma solução completa para armazenar, gerenciar e recuperar grandes conjuntos de dados , o que é crucial para operações eficazes de IA e ML. Essa abordagem simplificada reduz a complexidade e a sobrecarga, acelerando potencialmente os insights ao garantir acesso rápido aos dados.


Para aqueles interessados em se aprofundar na integração do MinIO com Langchain para aprimorar o uso de ferramentas LLM, o artigo “ Desenvolvendo agentes Langchain com MinIO SDK para uso de ferramentas LLM ” oferece uma exploração abrangente do assunto.


Boa sorte em seus esforços de desenvolvimento! Esperamos MinIO continua a desempenhar um papel fundamental em sua jornada de IA/ML. Entre em contato conosco em Folga e compartilhe seus insights e descobertas!