빠르게 진화하는 데이터 저장 및 처리 세계에서 효율적인 클라우드 스토리지 솔루션과 고급 AI 기능을 결합하면 방대한 양의 데이터를 처리하는 혁신적인 접근 방식을 제시합니다. 이 기사에서는 MinIO 버킷에 저장된 문서 요약에 중점을 두고 MinIO, Langchain 및 OpenAI의 GPT-3.5 모델을 사용한 실제 구현을 보여줍니다.
MinIO는 Amazon S3 API와 완벽하게 호환되는 오픈 소스 고성능 객체 스토리지입니다. 확장성으로 잘 알려진 MinIO는 사진, 비디오, 로그 파일, 백업 및 컨테이너 이미지와 같은 구조화되지 않은 데이터를 저장하는 데 이상적입니다. 이는 단지 스토리지에 관한 것이 아닙니다. MinIO는 또한 데이터 복제, 수명 주기 관리, 고가용성과 같은 기능을 제공하므로 최신 클라우드 네이티브 애플리케이션을 위한 최고의 선택입니다.
구현을 시작하기 전에 Langchain이 설치되어 있는지 확인하십시오. pip를 통해 설치하십시오.
pip install --upgrade langchain
이는 S3 로더 및 OpenAI 모델에 사용할 모든 필수 라이브러리를 캡슐화합니다.
처음에는 Langchain의 S3DirectoryLoader
및 S3FileLoader
사용하여 문서를 로드하는 데 중점을 둡니다. 이러한 로더는 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 모델( ChatOpenAI
통해 Langchain 라이브러리에 포함됨)을 사용하여 요약을 생성합니다. 이 단계에서는 콘텐츠를 이해하고 압축하여 대용량 문서에서 빠른 통찰력을 제공하는 모델의 기능을 보여줍니다.
OpenAI API에 액세스하려면 다음을 방문하여 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의 응답
이 방법은 Langchain 프레임워크를 사용하여 문서를 S3 저장소에서 LLM으로 로드하여 처리하는 흥미로운 방법을 강조하는 반면, OpenAI의 GPT-3.5 모델은 play.min에서 가져온 MinIO_Quickstart.md
의 간결한 요약과 핵심 사항을 생성합니다 play.min.io
서버. AI를 사용하여 광범위한 문서를 분석하고 압축함으로써 사용자는 설치, 서버 구성, SDK 및 기타 MinIO 기능과 같은 필수 측면을 빠르고 철저하게 이해할 수 있습니다. 이는 포괄적인 데이터 소스에서 중요한 정보를 추출하고 표시하는 AI의 기능을 보여줍니다.
MinIO, Langchain 및 OpenAI의 통합은 대규모 데이터 볼륨을 관리하기 위한 강력한 도구 세트를 제공합니다. Langchain의 S3 로더인 S3DirectoryLoader 및 S3FileLoader는 MinIO 버킷에서 문서를 검색하는 데 중요한 역할을 하지만 이는 Langchain에 데이터를 로드하는 용도로만 사용됩니다. 이러한 로더는 버킷에 데이터 업로드와 관련된 작업을 수행하지 않습니다. 버킷 정책 업로드, 수정 또는 관리와 같은 작업에는 MinIO Python SDK가 적합한 도구입니다. 이 SDK는 파일 업로드, 버킷 관리 등을 포함하여 MinIO 스토리지와 상호 작용하기 위한 포괄적인 기능 세트를 제공합니다. 추가 정보는 다음을 참조하세요.
Langchain은 AI 모델을 사용하여 데이터를 가져오고 처리하는 프로세스를 간소화하지만 MinIO 버킷 내 데이터 관리의 부담은 MinIO Python SDK에 따라 달라집니다. 이는 효율적인 AI 통합 스토리지 솔루션을 구축하는 개발자와 데이터 엔지니어가 이해해야 하는 중요한 차이점입니다. MinIO의 기능과 Python SDK를 다양한 스토리지 작업에 활용하는 방법에 대한 철저한 이해는 MinIO 공식을 참조하세요.
MinIO 객체 스토리지를 AI 및 ML 프로세스의 기본 데이터 저장소로 사용하면 데이터 관리 파이프라인을 단순화할 수 있습니다. MinIO는 원스톱 솔루션으로 탁월합니다.
LLM 도구 사용을 향상시키기 위해 MinIO와 Langchain의 통합에 대해 더 깊이 탐구하는 데 관심이 있는 사람들을 위해 " LLM 도구 사용을 위해 MinIO SDK를 사용하여 Langchain 에이전트 개발 " 기사에서 주제에 대한 포괄적인 탐색을 제공합니다.
귀하의 개발 노력에 행운이 있기를 바랍니다! 우리는 바랍니다