В быстро развивающемся мире хранения и обработки данных сочетание эффективных облачных решений хранения с расширенными возможностями искусственного интеллекта представляет собой преобразующий подход к обработке огромных объемов данных. В этой статье демонстрируется практическая реализация с использованием модели MinIO, Langchain и OpenAI GPT-3.5 с упором на обобщение документов, хранящихся в корзинах MinIO.
MinIO — это высокопроизводительное объектное хранилище с открытым исходным кодом, полностью совместимое с API Amazon S3. MinIO, известный своей масштабируемостью, идеально подходит для хранения неструктурированных данных, таких как фотографии, видео, файлы журналов, резервные копии и образы контейнеров. Речь идет не только о хранении; MinIO также предлагает такие функции, как репликация данных, управление жизненным циклом и высокая доступность, что делает его лучшим выбором для современных облачных приложений.
Прежде чем приступить к реализации, убедитесь, что у вас установлен Langchain. Установите его через pip:
pip install --upgrade langchain
Это инкапсулирует все необходимые библиотеки, которые мы будем использовать для наших загрузчиков S3 и модели OpenAI.
Первоначально мы сосредоточимся на загрузке документов с помощью S3DirectoryLoader
и S3FileLoader
от Langchain. Эти загрузчики отвечают за выборку нескольких и отдельных документов из указанных каталогов и файлов в сегментах MinIO.
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
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
После загрузки документов мы используем модель OpenAI GPT-3.5 (которая включена в библиотеку Langchain через ChatOpenAI
) для создания сводок. Этот шаг иллюстрирует способность модели понимать и сжимать контент, обеспечивая быстрое понимание больших документов.
Чтобы получить доступ к API OpenAI, вы можете получить ключ API, посетив
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 и OpenAI предлагает привлекательный набор инструментов для управления большими объемами данных. Хотя загрузчики S3 Langchain, S3DirectoryLoader и S3FileLoader, играют важную роль в извлечении документов из корзин MinIO, они предназначены исключительно для загрузки данных в Langchain. Эти загрузчики не выполняют действий, связанных с загрузкой данных в сегменты. Для таких задач, как загрузка, изменение или управление политиками корзины, MinIO Python SDK является подходящим инструментом. Этот SDK предоставляет полный набор функций для взаимодействия с хранилищем MinIO, включая загрузку файлов, управление сегментами и многое другое. Дополнительную информацию см.
В то время как Langchain оптимизирует процесс получения и обработки данных с помощью моделей искусственного интеллекта, тяжелая работа по управлению данными в сегментах MinIO зависит от MinIO Python SDK. Это важное различие, которое должны понимать разработчики и инженеры по обработке данных, создающие эффективные решения для хранения данных, интегрированные с искусственным интеллектом. Для полного понимания возможностей MinIO и того, как использовать его Python SDK для различных операций хранения, обратитесь к официальному документу MinIO.
Используя объектное хранилище MinIO в качестве основного хранилища данных для процессов искусственного интеллекта и машинного обучения, вы можете упростить конвейер управления данными. MinIO превосходен как универсальное решение для
Для тех, кто заинтересован в более глубоком изучении интеграции MinIO с Langchain для улучшения использования инструментов LLM, статья « Разработка агентов Langchain с помощью MinIO SDK для использования инструментов LLM » предлагает всестороннее исследование предмета.
Удачи в вашем развитии! Мы надеемся