Hızla gelişen veri depolama ve işleme dünyasında, verimli bulut depolama çözümlerini gelişmiş yapay zeka yetenekleriyle birleştirmek, büyük hacimli verilerin işlenmesinde dönüştürücü bir yaklaşım sunar. Bu makale, MinIO, Langchain ve OpenAI'nin GPT-3.5 modelini kullanan, MinIO klasörlerinde saklanan belgelerin özetlenmesine odaklanan pratik bir uygulamayı göstermektedir.
MinIO, Amazon S3 API ile tamamen uyumlu, açık kaynaklı, yüksek performanslı bir nesne depolama alanıdır. Ölçeklenebilirliğiyle bilinen MinIO, fotoğraf, video, günlük dosyaları, yedeklemeler ve konteyner görüntüleri gibi yapılandırılmamış verileri depolamak için idealdir. Bu sadece depolamayla ilgili değil; MinIO ayrıca veri çoğaltma, yaşam döngüsü yönetimi ve yüksek kullanılabilirlik gibi özellikler sunarak onu modern bulut tabanlı uygulamalar için en iyi seçim haline getiriyor.
Uygulamaya geçmeden önce Langchain'in kurulu olduğundan emin olun. Pip aracılığıyla yükleyin:
pip install --upgrade langchain
Bu, S3 yükleyicilerimiz ve OpenAI modelimiz için kullanacağımız tüm gerekli kitaplıkları kapsayacaktır.
Başlangıçta, Langchain'in S3DirectoryLoader
ve S3FileLoader
kullanarak belgeleri yüklemeye odaklanıyoruz. Bu yükleyiciler, MinIO klasörlerindeki belirtilen dizinlerden ve dosyalardan birden fazla ve tek belgenin getirilmesinden sorumludur.
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 Örneği - S3 Dosya Yükleyici
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 Örneği - S3 Dizin Yükleyici
Belgeleri yükledikten sonra özetler oluşturmak için OpenAI'nin GPT-3.5 modelini ( ChatOpenAI
aracılığıyla Langchain kütüphanesine dahil edilen) kullanıyoruz. Bu adım, modelin içeriği anlama ve yoğunlaştırma yeteneğini göstererek büyük belgelerden hızlı içgörüler sağlar.
OpenAI API'sine erişmek için şu adresi ziyaret ederek bir API anahtarı alabilirsiniz:
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 Örneği - OpenAI API ile Belgeleri Özetleme
Aşağıda bu demoyu çalıştırmanın çıktısı yer almaktadır ve LangChain'in OpenAI'nin GPT-3.5 ve MinIO S3 depolama alanıyla entegre edilmesinin bir sonucudur; çıktı tanıtım amacıyla kısaltılmıştır:
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'sinden yanıt
Bu yöntem, belgeleri işlemek için Langchain çerçevesini kullanarak S3 deposundan bir LLM'ye yüklemenin ilginç bir yolunu vurgularken, OpenAI'nin GPT-3.5 modeli play.min'den alınan MinIO_Quickstart.md
kısa bir özetini ve önemli noktalarını oluşturur play.min.io
sunucusu. Kapsamlı belgeleri analiz etmek ve özetlemek için yapay zekanın kullanılması, kullanıcılara kurulum, sunucu yapılandırması, SDK'lar ve diğer MinIO özellikleri gibi temel hususların hızlı ve kapsamlı bir şekilde anlaşılmasını sağlar. Yapay zekanın kapsamlı veri kaynaklarından kritik bilgileri çıkarma ve sunma yeteneğini sergiliyor.
MinIO, Langchain ve OpenAI'nin entegrasyonu, büyük veri hacimlerini yönetmek için ilgi çekici bir araç seti sunar. Langchain'in S3 yükleyicileri S3DirectoryLoader ve S3FileLoader, MinIO klasörlerinden belgelerin alınmasında önemli bir rol oynasa da, bunlar yalnızca Langchain'e veri yüklemek içindir. Bu yükleyiciler, verilerin paketlere yüklenmesiyle ilgili eylemleri gerçekleştirmez. Paket ilkelerini yükleme, değiştirme veya yönetme gibi görevler için MinIO Python SDK uygun araçtır. Bu SDK, MinIO depolama alanıyla etkileşime geçmek için dosya yüklemeleri, paket yönetimi ve daha fazlasını içeren kapsamlı bir dizi işlevsellik sağlar. Ek bilgi için lütfen bkz.
Langchain, yapay zeka modellerini kullanarak veri alma ve işleme sürecini kolaylaştırırken, MinIO paketleri içindeki veri yönetiminin ağır yükü MinIO Python SDK'ya bağlıdır. Bu, verimli, yapay zeka ile entegre depolama çözümleri geliştiren geliştiriciler ve veri mühendisleri tarafından anlaşılması gereken önemli bir ayrımdır. MinIO'nun yeteneklerinin ve Python SDK'sının çeşitli depolama işlemleri için nasıl kullanılacağının kapsamlı bir şekilde anlaşılması için MinIO'nun resmi kılavuzuna bakın.
MinIO nesne depolamasını AI ve ML süreçleri için birincil veri deposu olarak kullanarak veri yönetimi işlem hattınızı basitleştirebilirsiniz. MinIO, tek noktadan çözüm olarak öne çıkıyor
LLM araç kullanımını geliştirmek için MinIO'nun Langchain ile entegrasyonunu daha derinlemesine incelemek isteyenler için " LLM Araç Kullanımı için MinIO SDK ile Langchain Aracılarının Geliştirilmesi " makalesi konunun kapsamlı bir incelemesini sunuyor.
Geliştirme çabalarınızda iyi şanslar! Umut ediyoruz