paint-brush
Управление большими объемами данных с помощью MinIO, Langchain и OpenAIк@minio
8,583 чтения
8,583 чтения

Управление большими объемами данных с помощью MinIO, Langchain и OpenAI

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

Слишком долго; Читать

В этой статье демонстрируется практическая реализация с использованием модели MinIO, Langchain и OpenAI GPT-3.5 с упором на обобщение документов, хранящихся в корзинах MinIO.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Управление большими объемами данных с помощью MinIO, Langchain и OpenAI
MinIO HackerNoon profile picture
0-item


В быстро развивающемся мире хранения и обработки данных сочетание эффективных облачных решений хранения с расширенными возможностями искусственного интеллекта представляет собой преобразующий подход к обработке огромных объемов данных. В этой статье демонстрируется практическая реализация с использованием модели MinIO, Langchain и OpenAI GPT-3.5 с упором на обобщение документов, хранящихся в корзинах MinIO.

Сила MinIO

MinIO — это высокопроизводительное объектное хранилище с открытым исходным кодом, полностью совместимое с API Amazon S3. MinIO, известный своей масштабируемостью, идеально подходит для хранения неструктурированных данных, таких как фотографии, видео, файлы журналов, резервные копии и образы контейнеров. Речь идет не только о хранении; MinIO также предлагает такие функции, как репликация данных, управление жизненным циклом и высокая доступность, что делает его лучшим выбором для современных облачных приложений.

Интеграция Langchain и OpenAI

Лангчейн , инструмент на основе Python, облегчает взаимодействие между загрузчиками документов и моделями искусственного интеллекта. В нашем случае мы объединяем Langchain с OpenAI. gpt-3.5-турбо-1106 модель для суммирования документов из корзин MinIO. Эта установка демонстрирует, как ИИ может извлекать важную информацию из обширных данных, упрощая анализ и интерпретацию данных. Для получения дополнительной информации и вспомогательных материалов, связанных с этой статьей, таких как блокноты и загруженные документы, посетите сайт Репозиторий MinIO на Github в langchain-s3-минио каталог.

Установка Лангчейна

Прежде чем приступить к реализации, убедитесь, что у вас установлен Langchain. Установите его через pip:


 pip install --upgrade langchain


Это инкапсулирует все необходимые библиотеки, которые мы будем использовать для наших загрузчиков S3 и модели OpenAI.

Шаг 1. Каталог Langchain S3 и загрузчики файлов

Первоначально мы сосредоточимся на загрузке документов с помощью S3DirectoryLoader и S3FileLoader от Langchain. Эти загрузчики отвечают за выборку нескольких и отдельных документов из указанных каталогов и файлов в сегментах MinIO.

Конфигурации MinIO и загрузчик файлов 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()

Пример Python Langchain — загрузчик файлов S3

Загрузчик каталогов 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()

Пример Python Langchain — загрузчик каталогов S3

Шаг 2: Подведение итогов с помощью OpenAI

После загрузки документов мы используем модель OpenAI GPT-3.5 (которая включена в библиотеку Langchain через ChatOpenAI ) для создания сводок. Этот шаг иллюстрирует способность модели понимать и сжимать контент, обеспечивая быстрое понимание больших документов.

Чтобы получить доступ к API OpenAI, вы можете получить ключ API, посетив Платформа OpenAI . Получив ключ, интегрируйте его в приведенный ниже код, чтобы использовать возможности GPT-3.5 для обобщения документов.

Пример кода для обобщения документа:


 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)

Пример Python Langchain — суммирование документов с помощью OpenAI API


Ниже приведены результаты запуска этой демонстрации, которые являются результатом интеграции LangChain с хранилищем OpenAI GPT-3.5 и MinIO S3; вывод был сокращен в демонстрационных целях:


 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.

Ответ от OpenAI API


Этот метод демонстрирует интересный способ загрузки документов из хранилища S3 в LLM с использованием инфраструктуры Langchain для их обработки, а модель OpenAI GPT-3.5 генерирует краткое описание и ключевые моменты файла MinIO_Quickstart.md , который извлекается из play.min.io сервер. Использование искусственного интеллекта для анализа и сжатия обширной документации дает пользователям быстрое и полное понимание важных аспектов, таких как установка, настройка сервера, SDK и другие функции MinIO. Он демонстрирует возможности ИИ в извлечении и представлении важной информации из комплексных источников данных.

Загрузка документов из корзин MinIO с помощью Langchain

Интеграция MinIO, Langchain и OpenAI предлагает привлекательный набор инструментов для управления большими объемами данных. Хотя загрузчики S3 Langchain, S3DirectoryLoader и S3FileLoader, играют важную роль в извлечении документов из корзин MinIO, они предназначены исключительно для загрузки данных в Langchain. Эти загрузчики не выполняют действий, связанных с загрузкой данных в сегменты. Для таких задач, как загрузка, изменение или управление политиками корзины, MinIO Python SDK является подходящим инструментом. Этот SDK предоставляет полный набор функций для взаимодействия с хранилищем MinIO, включая загрузку файлов, управление сегментами и многое другое. Дополнительную информацию см. Краткое руководство — Объектное хранилище MinIO для Linux , Справочник по клиентскому API Python — объектное хранилище MinIO для Linux .


В то время как Langchain оптимизирует процесс получения и обработки данных с помощью моделей искусственного интеллекта, тяжелая работа по управлению данными в сегментах MinIO зависит от MinIO Python SDK. Это важное различие, которое должны понимать разработчики и инженеры по обработке данных, создающие эффективные решения для хранения данных, интегрированные с искусственным интеллектом. Для полного понимания возможностей MinIO и того, как использовать его Python SDK для различных операций хранения, обратитесь к официальному документу MinIO. документация .


Используя объектное хранилище MinIO в качестве основного хранилища данных для процессов искусственного интеллекта и машинного обучения, вы можете упростить конвейер управления данными. MinIO превосходен как универсальное решение для хранение, управление и извлечение больших наборов данных , что имеет решающее значение для эффективных операций искусственного интеллекта и машинного обучения. Этот оптимизированный подход снижает сложность и накладные расходы, потенциально ускоряя понимание за счет обеспечения быстрого доступа к данным.


Для тех, кто заинтересован в более глубоком изучении интеграции MinIO с Langchain для улучшения использования инструментов LLM, статья « Разработка агентов Langchain с помощью MinIO SDK для использования инструментов LLM » предлагает всестороннее исследование предмета.


Удачи в вашем развитии! Мы надеемся МинИО продолжает играть ключевую роль в вашем путешествии по искусственному интеллекту и машинному обучению. Свяжитесь с нами по Слабый и поделитесь своими идеями и открытиями!