创新S3存储桶检索:Langchain社区S3加载器搭载OpenAI API

在瞬息万变的数据存储和处理领域,将高效的云存储解决方案与先进的 AI 功能相结合,为处理大量数据提供了一种变革性的方法。本文演示了使用 MinIO、Langchain 和 OpenAI 的 GPT-3.5 模型的实际实现,重点总结了存储在 MinIO 存储桶中的文档。

MinIO的强大功能

MinIO 是开源的高性能对象存储,与 Amazon S3 API 完全兼容。MinIO 以其可扩展性而闻名,非常适合存储非结构化数据,例如照片、视频、日志文件、备份和容器映像。这不仅仅是关于存储;MinIO 还提供数据复制、生命周期管理和高可用性等功能,使其成为现代云原生应用程序的首选。

集成 Langchain 和 OpenAI

Langchain 是一种基于 Python 的工具,可促进文档加载器和 AI 模型之间的交互。在我们的用例中,我们将 Langchain 与 OpenAI 的 gpt-3.5-turbo-1106 模型相结合,以汇总来自 MinIO 存储桶的文档。这种设置举例说明了人工智能如何从大量数据中提取基本信息,从而简化数据分析和解释。有关本文相关的更多信息和支持材料,例如笔记本和加载的文档,请访问 langchain-s3-minio 目录下的 MinIO Github 存储库。

安装 Langchain

在深入研究实施之前,请确保您已安装 Langchain。通过 pip 安装它:

pip install --upgrade langchain

这将封装我们将用于 S3 加载器和 OpenAI 模型的所有必需库。

第 1 步:Langchain S3 目录和文件加载程序

最初,我们专注于使用 Langchain 的 S3DirectoryLoaderS3FileLoader .这些加载程序负责从 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 模型(包含在 ChatOpenAI Langchain 库中通过 )来生成摘要。此步骤说明了模型理解和压缩内容的能力,从而提供从大型文档中快速获得见解的能力。

要访问 OpenAI API,您可以通过访问 OpenAI 平台获取 API 密钥。获得密钥后,将其集成到下面的代码中,以利用 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_contentdocument_name = getattr(loaded_document, 'name', 'Unknown Document')  # Assuming each document has a 'name' attributechain = (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.io 服务器获取的简明摘要和关键点 MinIO_Quickstart.md 。使用 AI 来分析和压缩大量文档,使用户能够快速、全面地了解安装、服务器配置、SDK 和其他 MinIO 功能等基本方面。它展示了人工智能从综合数据源中提取和呈现关键信息的能力。

使用 Langchain 从 MinIO 存储桶加载文档

MinIO、Langchain 和 OpenAI 的集成为管理大量数据提供了引人注目的工具集。虽然 Langchain 的 S3 加载器 S3DirectoryLoader 和 S3FileLoader 在从 MinIO 存储桶检索文档方面发挥着重要作用,但它们仅用于将数据加载到 Langchain 中。这些加载程序不会执行与将数据上传到存储桶相关的操作。对于上传、修改或管理存储桶策略等任务,MinIO Python SDK 是合适的工具。此 SDK 提供了一套用于与 MinIO 存储交互的综合功能,包括文件上传、存储桶管理等。有关更多信息,请参阅快速入门指南 — 适用于 Linux 的 MinIO 对象存储、Python 客户端 API 参考 — 适用于 Linux 的 MinIO 对象存储。

虽然 Langchain 简化了使用 AI 模型获取和处理数据的过程,但 MinIO 存储桶中数据管理的繁重工作取决于 MinIO Python SDK。这是一个重要的区别,开发人员和数据工程师必须了解这一点,以构建高效的 AI 集成存储解决方案。要全面了解 MinIO 的功能以及如何利用其 Python SDK 进行各种存储操作,请参阅 MinIO 的官方文档。

通过使用 MinIO 对象存储作为 AI 和 ML 流程的主要数据存储库,您可以简化数据管理管道。MinIO 是存储、管理和检索大型数据集的一站式解决方案,这对于有效的 AI 和 ML 操作至关重要。这种简化的方法降低了复杂性和开销,通过确保快速访问数据,有可能加速获得见解。

祝您在开发过程中好运!我们希望 MinIO 继续在您的 AI/ML 之旅中发挥关键作用。请通过电话和邮件与我们联系,分享你的见解和发现!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2779565.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C语言之随心所欲打印三角形,金字塔,菱形(倒金字塔)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客 目录 三角形 金字塔 倒金字塔 菱形 三角形 题目:根据输入的行数打印对应的三角形。(用 * 号打印) #includ…

k8s报错记录(持续更新中....)

k8s报错记录(持续更新中…) 1. 部署k8s遇到kube-flannel已经构建,但是coredns一直处于ContainerCreating和pending状态 解决问题: 通过 kubectl describe pod -n kube-system coredns-7ff77c879f-9ls2b 查看pod的详细信息,报错说是cni 配置没…

spring 入门 一

文章目录 Spring简介Spring的优势Spring的体系结构 Spring快速入门Spring程序开发步骤导入Spring开发的基本包坐标编写Dao接口和实现创建Spring核心配置文件在Spring配置文件中配置UserDaoImpl使用Spring的API获得Bean实例 Spring配置文件Bean标签基本配置Bean标签范围配置Bean…

Windows10安装PCL1.14.0及点云配准

一、下载visual studio2022 下载网址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 安装的时候选择"使用C的桌面开发“,同时可以修改文件路径,可以放在D盘。修改文件路径的时候,共享组件、…

Stable Diffusion 模型下载:DreamShaper(梦想塑造者)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 DreamShaper 是一个分格多样的大模型,可以生成写实、原画、2.5D 等多种图片,能生成很棒的人像和风景图。 条目内容类型大模型基础模型SD 1…

《统计学简易速速上手小册》第7章:时间序列分析(2024 最新版)

文章目录 7.1 时间序列数据的特点7.1.1 基础知识7.1.2 主要案例:股票市场分析7.1.3 拓展案例 1:电商销售预测7.1.4 拓展案例 2:能源消耗趋势分析 7.2 时间序列模型7.2.1 基础知识7.2.2 主要案例:股价预测7.2.3 拓展案例 1&#xf…

Day39- 动态规划part07

一、爬楼梯 题目一&#xff1a;57. 爬楼梯 57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;…

SpringCloud-Nacos服务分级存储模型

Nacos 服务分级存储模型是 Nacos 存储服务注册信息和配置信息的核心模型之一。它通过将服务和配置信息按照不同级别进行存储&#xff0c;实现了信息的灵活管理和快速检索&#xff0c;为微服务架构下的服务发现和配置管理提供了高效、可靠的支持。本文将对 Nacos 服务分级存储模…

C++重新入门-C++运算符

目录 1. 算术运算符 2. 关系运算符 3.逻辑运算符 4.位运算符 5.赋值运算符 6.杂项运算符 7.C 中的运算符优先级 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符&#xff0c;并提供了以下类型的运算符&#xff1a; 算术运算符关系运算符逻…

高仿原神官网UI 纯html源码

高仿原神官网UI源码介绍 如果您希望打造一个与原神官方网站相似的外观和用户体验&#xff0c;但又不想使用复杂的框架或模板&#xff0c;那么我们的高仿原神官网UI源码将是一个完美的选择。它采用纯HTML5构建&#xff0c;无需任何额外的CSS或JavaScript库支持&#xff0c;即可…

C#,巴都万数列(Padonve Number)的算法与源代码

1 巴都万数列&#xff08;Padovan Sequence&#xff09; 巴都万数列&#xff08;Padovan Sequence&#xff09;是一个整数数列。 首数个值为1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37 ... 此数列以建筑师理察巴都万命名&#xff0c;他的论文Dom&#xff08;1994年&a…

3D高斯溅射:面向三维场景的实时渲染技术

1. 前言 高斯溅射技术【1】一经推出&#xff0c;立刻引起学术界和工业界的广泛关注。相比传统的隐式神经散射场渲染技术&#xff0c;高斯溅射依托椭球空间&#xff0c;显性地表示多目图像的三维空间关系&#xff0c;其计算效率和综合性能均有较大的提升&#xff0c;且更容易理…

反应式编程

反应式编程 前言1 反应式编程概览2 初识 Reactor2.1 绘制反应式流图2.2 添加 Reactor 依赖 3.使用常见的反应式操作3.1 创建反应式类型3.2 组合反应式类型3.3 转换和过滤反应式流3.4 在反应式类型上执行逻辑操作 总结 前言 你有过订阅报纸或者杂志的经历吗?互联网的确从传统的…

EasyExcel动态列导出

测试代码地址&#xff1a;https://gitee.com/wangtianwen1996/cento-practice/tree/master/src/test/java/com/xiaobai/easyexcel/dynamiccolumn 官方文档&#xff1a;https://easyexcel.opensource.alibaba.com/docs/2.x/quickstart/write 一、实现方式 1、根据需要导出的列…

C/C++模板初阶

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int&…

Github 2024-02-11 开源项目日报Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-11统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4非开发语言项目2C项目1C项目1Solidity项目1JavaScript项目1Rust项目1HTML项目1 免费服务列表 | f…

树状菜单(利用映射-bootstrap+jQuery实现折叠功能)

效果&#xff08;默认全部展开&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(3)神经网络

深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅草莓照片)可以使用 多种方式来表示&#xff0c;如每个像素强度值的向量&#xff0c;或者更抽象地表示成一系列边、特定形状的区域等。 深度学习的最主要特征是使用神经网络作为计算模型。神经网络模型 …

《Python 网络爬虫简易速速上手小册》第10章:未来展望与新兴技术(2024 最新版)

文章目录 10.1 机器学习在爬虫中的应用10.1.1 重点基础知识讲解10.1.2 重点案例&#xff1a;使用机器学习进行自动化内容抽取10.1.3 拓展案例 1&#xff1a;利用深度学习识别复杂的网页结构10.1.4 拓展案例 2&#xff1a;机器学习辅助的动态反反爬虫策略 10.2 处理 JavaScript …

Python操作MySQL基础

除了使用图形化工具以外&#xff0c;我们也可以使用编程语言来执行SQL从而操作数据库。在Python中&#xff0c;使用第三方库: pymysql来完成对MySQL数据库的操作。 安装第三方库pymysql 使用命令行,进入cmd&#xff0c;输入命令pip install pymysql. 创建到MySQL的数据库连接…