创新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://www.mzph.cn/news/678583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode:62.不同路径

动态规划 注意&#xff1a;用深搜或者广搜会超时 dp含义dp[i,j]&#xff1a;从&#xff08;0&#xff0c;0&#xff09;到&#xff08;i&#xff0c;j&#xff09;的路径个数 递推公式&#xff1a;dp[i][j] dp[i-1][j] dp[i][j-1] 初始化&#xff1a;for(i 0,i<m,i) …

[职场] 面试被问优点的回答参考 #知识分享#其他#学习方法

面试被问优点的回答参考 当面试官问你最大的优点是什么&#xff1f;回答1&#xff1a; 我擅长合理地安排时间&#xff0c; 作为助理&#xff0c; 我的杂事很多&#xff0c; 总是觉得手边有做不完的事情&#xff0c; 所以我特别注意时间管理&#xff0c; 这样才能高效地工作&am…

继承

1.继承的作用 有些类与类之间存在特殊关系&#xff0c;下级别的成员除了拥有上一级别的共性&#xff0c;还有自己的特性。 这个时候我们就可以考虑利用继承技术&#xff0c;减少重复代码。 总结&#xff1a; 继承的好处&#xff1a;可以减少重复的代码 class A : public B;…

猫头虎分享已解决Bug || KeyError: ‘The truth value of a Series is ambiguous‘

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

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、根据需要导出的列…

假期刷题打卡--Day26

1、MT1212乘法表 请编写一个简单程序&#xff0c;输出九九乘法表。输入n&#xff0c;就输出乘法表到n的地方。 格式 输入格式&#xff1a; 输入整型 输出格式&#xff1a; 输出整型。形式如&#xff1a;1*11 样例 1 输入&#xff1a; 5输出&#xff1a; 1*11 2*12 …

vue3项目中的404页面

vue3项目中的404页面 春节前的最后一篇技术博客了 写了不少vue项目&#xff0c;发现一直没有正确处理404页面。404页面的出现有这么几种可能&#xff1a; 错误输入了页面地址路由连接跳转时&#xff0c;某些路由已经不存在了&#xff0c;而程序员并没有正确处理 也就是说40…

CSS基础---新手入门级详解

CSS:层叠样式表 CSS&#xff08;Cascading Style Sheets,层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档添加样式&#xff08;字体、间距和颜色&#xff09;的计算机语言&#xff0c;css扩展名为.css。 实例: <!DOCTYPE html><html> <head><…

OpenAI---提示词工程的6大原则

OpenAI在官方的文档里上线了Prompt engineering&#xff0c;也就是提示词工程指南&#xff0c;其中OpenAI有提到写提示词的6条大的原则&#xff0c;它们分别是&#xff1a; &#xff08;1&#xff09;Write clear instructions&#xff08;写出清晰的指令&#xff09; &#xf…

STM32CubeMX,定时器之定时功能,入门学习,如何设置prescaler,以及timer计算PWM输入捕获方法(重要)

频率变小&#xff0c;周期变长 1&#xff0c;参考链接&#xff08;重要&#xff09; STM32CubeMX——定时器之定时功能&#xff08;学习使用timer定时器的设置&#xff09; STM32测量PWM信息&#xff08;学习使用设置pwm输入捕获&#xff09; 通用定时器中两个重要参数的设置心…

Pytorch+NCCL源码编译

目录 环境1. 安装cudnn2. 使用pytorch自带NCCL库进行编译3. 修改NCCL源代码并重新编译后测试&#xff0c;体现出源码更改 环境 Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic x86_64)cuda 11.8 cudnn 8python 3.10torch V2.0.1 nccl 2.14.3NVIDIA GeForce RTX 4090 *2 1.…

快速搭建 nfs 环境, 解决 nfs 搭建时的疑难杂症

博客原文 nfs 环境搭建 简介: NFS&#xff08;Network File System&#xff09;即网络文件系统&#xff0c;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计算机之间共享资源。 在NFS的应用中&#xff0c;本地NFS的客户端应用可以透明地读写位于远端NFS服务器上…

[ai笔记2] 团年饭ai制图大比拼

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第2篇分享&#xff01; 今天我们用国内七个大厂的ai制图工具做一下团年饭图片&#xff01; 1 团年饭ai制图大比拼 昨天期待了许久的ai春晚&#xff0c;并没有如期举行&#xff0c;换成了初一晚上&…

Vue源码系列讲解——模板编译篇【一】(综述)

目录 1. 前言 2. 什么是模板编译 3. 整体渲染流程 4. 模板编译内部流程 4.1 抽象语法树AST 4.2 具体流程 5. 总结 1. 前言 在前几篇文章中&#xff0c;我们介绍了Vue中的虚拟DOM以及虚拟DOM的patch(DOM-Diff)过程&#xff0c;而虚拟DOM存在的必要条件是得先有VNode&…

随机MM引流源码PHP开源版

引流源码最新随机MM开源版PHP源码&#xff0c;非常简洁好看的单页全解代码没任何加密 直接上传即可用无需数据库支持主机空间

vue3初识

目录 一、前言二、主观感受三、vue3初探 原文以及该系列教程文章后续可点击这里查看&#xff1a;vue初识 一、前言 Vue.js是一款流行的前端框架&#xff0c;最初由尤雨溪&#xff08;Evan You&#xff09;于2014年创建&#xff0c;非常的年轻。官网为vue3&#xff0c; 但要注…

OpenCV基础

OpenCV简介 OpenCV是一个功能强大的开源计算机视觉和机器学习软件库&#xff0c;它在图像处理和视频分析领域得到了广泛应用。OpenCV最初由英特尔公司于1999年发起并支持&#xff0c;后来由Willow Garage和Itseez&#xff08;现在是Intel的一部分&#xff09;维护。它是为了推…

题目练习(生死时速2.0版)

题目一&#xff08;Before an Exam&#xff09; 题意翻译 题目背景 明天皮特将要考生物。他并不很喜欢生物&#xff0c;但在 d 天前他得知他将不得不参加此次考试。皮特严厉的父母勒令他立即复习&#xff0c;因此他在第 i 天将需要学习不少于 minTimei​ 小时&#xff0c;不…

人工智能深度学习入门指南

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;深度学习作为其重要分支&#xff0c;已经成为许多领域的研究热点。深度学习通过模拟人脑神经网络的运作方式&#xff0c;使得机器能够处理和分析海量的数据&#xff0c;从而实现更高级别的智能。本文将为你提…

SPI NOR FLASH和SPI NAND FLASH

SPI NOR FLASH和SPI NAND FLASH是两种不同的存储设备&#xff0c;它们在硬件接口和软件应用上都有所不同。以下是关于这两种存储设备更详细的介绍&#xff1a; 1.SPI NOR FLASH SPI NOR FLASH是一种非易失性存储器&#xff0c;它通过串行接口进行数据传输&#xff0c;具有读写…