Trong thế giới lưu trữ và xử lý dữ liệu đang phát triển nhanh chóng, việc kết hợp các giải pháp lưu trữ đám mây hiệu quả với khả năng AI tiên tiến mang đến một cách tiếp cận mang tính biến đổi để xử lý khối lượng dữ liệu khổng lồ. Bài viết này trình bày cách triển khai thực tế bằng cách sử dụng mô hình GPT-3.5 của MinIO, Langchain và OpenAI, tập trung vào việc tóm tắt các tài liệu được lưu trữ trong nhóm MinIO.
MinIO là bộ lưu trữ đối tượng mã nguồn mở, hiệu suất cao, hoàn toàn tương thích với API Amazon S3. Được biết đến với khả năng mở rộng, MinIO lý tưởng để lưu trữ dữ liệu phi cấu trúc như ảnh, video, tệp nhật ký, bản sao lưu và hình ảnh vùng chứa. Nó không chỉ là về việc lưu trữ; MinIO cũng cung cấp các tính năng như sao chép dữ liệu, quản lý vòng đời và tính sẵn sàng cao, khiến nó trở thành lựa chọn hàng đầu cho các ứng dụng gốc đám mây hiện đại.
Trước khi đi sâu vào triển khai, hãy đảm bảo bạn đã cài đặt Langchain. Cài đặt nó qua pip:
pip install --upgrade langchain
Điều này sẽ gói gọn tất cả các thư viện cần thiết mà chúng tôi sẽ sử dụng cho trình tải S3 và mô hình OpenAI của chúng tôi.
Ban đầu, chúng tôi tập trung vào việc tải tài liệu bằng S3DirectoryLoader
và S3FileLoader
của Langchain. Các trình tải này chịu trách nhiệm tìm nạp nhiều tài liệu đơn lẻ từ các thư mục và tệp được chỉ định trong nhóm 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()
Ví dụ về Python Langchain - Trình tải tệp 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()
Ví dụ về Python Langchain - Trình tải thư mục S3
Sau khi tải tài liệu, chúng tôi sử dụng mô hình GPT-3.5 của OpenAI (được bao gồm trong thư viện Langchain thông qua ChatOpenAI
) để tạo bản tóm tắt. Bước này minh họa khả năng hiểu và cô đọng nội dung của mô hình, cung cấp thông tin chuyên sâu nhanh chóng từ các tài liệu lớn.
Để truy cập API OpenAI, bạn có thể lấy khóa API bằng cách truy cập
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)
Ví dụ về Python Langchain - Tóm tắt tài liệu với API OpenAI
Dưới đây là kết quả khi chạy bản demo này và là kết quả của việc tích hợp LangChain với bộ lưu trữ GPT-3.5 và MinIO S3 của OpenAI; đầu ra đã được rút ngắn cho mục đích trình diễn:
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.
Phản hồi từ API OpenAI
Phương pháp này nêu bật một cách thú vị để tải tài liệu từ bộ lưu trữ S3 vào LLM bằng cách sử dụng khung Langchain để xử lý chúng, trong khi mô hình GPT-3.5 của OpenAI tạo ra bản tóm tắt ngắn gọn và các điểm chính của MinIO_Quickstart.md
được tìm nạp từ play.min.io
máy chủ play.min.io
. Việc sử dụng AI để phân tích và tổng hợp tài liệu phong phú, cung cấp cho người dùng sự hiểu biết nhanh chóng và kỹ lưỡng về các khía cạnh thiết yếu như cài đặt, cấu hình máy chủ, SDK và các tính năng MinIO khác. Nó thể hiện khả năng của AI trong việc trích xuất và trình bày thông tin quan trọng từ các nguồn dữ liệu toàn diện.
Sự tích hợp của MinIO, Langchain và OpenAI cung cấp bộ công cụ hấp dẫn để quản lý khối lượng dữ liệu lớn. Mặc dù các trình tải S3 của Langchain, S3DirectoryLoader và S3FileLoader, đóng vai trò quan trọng trong việc truy xuất tài liệu từ nhóm MinIO, nhưng chúng chỉ dùng để tải dữ liệu vào Langchain. Những trình tải này không thực hiện các hành động liên quan đến tải dữ liệu lên nhóm. Đối với các tác vụ như tải lên, sửa đổi hoặc quản lý chính sách nhóm, MinIO Python SDK là công cụ thích hợp. SDK này cung cấp một bộ chức năng toàn diện để tương tác với bộ lưu trữ MinIO, bao gồm tải tệp lên, quản lý bộ chứa, v.v. Để biết thêm thông tin, vui lòng xem
Trong khi Langchain hợp lý hóa quy trình tìm nạp và xử lý dữ liệu bằng mô hình AI, thì việc quản lý dữ liệu nặng nề trong nhóm MinIO phụ thuộc vào MinIO Python SDK. Đây là điểm khác biệt quan trọng mà các nhà phát triển và kỹ sư dữ liệu phải hiểu khi xây dựng các giải pháp lưu trữ tích hợp AI hiệu quả. Để hiểu rõ hơn về các khả năng của MinIO và cách sử dụng SDK Python của nó cho các hoạt động lưu trữ khác nhau, hãy tham khảo tài liệu chính thức của MinIO
Bằng cách sử dụng bộ lưu trữ đối tượng MinIO làm kho lưu trữ dữ liệu chính cho các quy trình AI và ML, bạn có thể đơn giản hóa quy trình quản lý dữ liệu của mình. MinIO vượt trội như một giải pháp toàn diện cho
Đối với những người quan tâm đến việc tìm hiểu sâu hơn về việc tích hợp MinIO với Langchain để nâng cao việc sử dụng công cụ LLM, bài viết “ Phát triển Đại lý Langchain với MinIO SDK để sử dụng Công cụ LLM ” cung cấp một khám phá toàn diện về chủ đề này.
Chúc may mắn trong nỗ lực phát triển của bạn! Chung ta hy vọng