LangChain 入门6 magic不同格式文件的读取

概述:

除了原始文本数据,可能还希望从其他文件类型(如PowerPoint演示文稿或PDF)中提取信息。
可以使用LangChain文档加载程序将文件解析为可以输入LLM的文本格式。

基于MIME类型的解析

数据加载

import requestsresponse = requests.get("https://en.wikipedia.org/wiki/Car")
data = response.content
data[:20]

返回:

b'<!DOCTYPE html>\n<htm'

配置解析器

加载依赖

import magic #导入 magic 库,这是一个在 Python 中用于文件类型检测的库,可以根据文件内容判断其 MIME 类型

pip install python-magic-bin

from langchain.document_loaders.parsers import BS4HTMLParser, PDFMinerParser #BS4HTMLParser 用于解析 HTML 文件,PDFMinerParser 用于解析 PDF 文件
from langchain.document_loaders.parsers.generic import MimeTypeBasedParser # MimeTypeBasedParser 是一个基于 MIME 类型的通用解析器,
from langchain.document_loaders.parsers.txt import TextParser#TextParser 用于解析纯文本文件
from langchain_community.document_loaders import Blob #Blob 用于表示二进制数据。

数据加载

#定义一个字典用于存储不同的解释器
HANDLERS = {"application/pdf": PDFMinerParser(),"text/plain": TextParser(),"text/html": BS4HTMLParser(),
}# 使用给定的解析器实例化基于mimetype的解析器
MIMETYPE_BASED_PARSER = MimeTypeBasedParser(handlers=HANDLERS,fallback_parser=None,#参数指定了当文档的 MIME 类型在 HANDLERS 字典中没有匹配到相应的解析器时,将使用哪个解析器作为备选。
)

数据解析

mime = magic.Magic(mime=True) # mime=True 时,magic.Magic 对象会尝试根据文件内容来确定其 MIME 类型,并以字符串的形式返回。
data[0:300]

b’\n<html class="client-nojs
vector-feature-language-in-header-enabled
vector-feature-language-in-main-page-header-disabled
vector-feature-sticky-header-disabled
vector-feature-page-tools-pinned-disabled
vector-feature-toc-pinned-clientpref-1
vector-feature-main-menu-pinned-disabled vect’

数据类型检测

# 使用该对象检测一段数据的 MIME 类型
mime_type = mime.from_buffer(data)
print(mime_type)

返回

text/html

数据二进制转换

blob = Blob.from_data(data=data,mime_type=mime_type,
)

数据获取

#根据检测到的 MIME 类型从 HANDLERS 字典中获取相应的解析器对象。
parser = HANDLERS[mime_type]
#调用解析器对象的 parse 方法,并将 blob 对象作为参数传递给它。这个方法负责解析 blob 中的数据,并返回一个或多个文档对象,这些文档对象通常是 Document 类的实例,它们包含了解析后的文本内容以及可能的元数据。
documents = parser.parse(blob=blob)
#解析后的数据打印
print(documents[0].page_content[:30].strip())

Car - Wikipedia

以上是本文的全部内容感谢阅读。

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

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

相关文章

如何理解和实现二分查找:一篇完整的解析

二分查找的基本思想 二分查找的核心思想是比较数组的中间元素与目标值。根据比较结果&#xff0c;可以排除一半的搜索空间。具体步骤如下&#xff1a; 初始化指针&#xff1a;设置两个指针&#xff0c;left 指向数组的开始位置&#xff0c;right 指向数组的结束位置。 循环搜索…

手写线程池|C语言版(二)|定义线程池的结构、创建线程池实例

文章目录 定义线程池结构任务结构体定义线程池结构体 组织头文件创建线程池实例函数原型定义线程池创建函数实现初始化线程池结构体指针初始化线程池结构体的各类参数 定义线程池的结构C代码创建线程池总体C代码 本文中&#xff0c;我们将创建线程池的结构体&#xff0c;该结构…

TCP/IP和HTTP协议

TCP/IP OSI 七层模型在提出时的出发点是基于标准化的考虑&#xff0c;而没有考虑到具体的市场需求&#xff0c;使得该模型结构复杂&#xff0c;部分功能冗余&#xff0c;因而完全实现 OSI 参考模型的系统不多。而 TCP/IP 参考模型直接面向市场需求&#xff0c;实现起来也比较…

一文掌握:Clipboard API ,让前端顺畅操作剪贴板,无论怎么复制,都显示你网站信息。

一、Clipboard API是什么 Clipboard API 是一个 Web API&#xff0c;它提供了一种在网页上读取和写入剪贴板内容的方式。通过 Clipboard API&#xff0c;网页可以访问用户的剪贴板&#xff0c;从中读取文本、图像或其他数据&#xff0c;并且可以将数据写入剪贴板&#xff0c;以…

FFmpeg基础知识详解:音频视频处理的强大工具

FFmpeg&#xff0c;这个强大的开源多媒体框架&#xff0c;已经成为全球范围内音频、视频处理和流媒体传输领域的基石。它集合了音频解码、编码、转码、混合、抓取、流化等多种功能于一身&#xff0c;几乎能满足任何与音视频处理相关的技术需求。本文将带你走进FFmpeg&#xff0…

2024五一杯C题思路代码文章成品分享:煤矿深部开采冲击地压危险预测

提供的数据分为五类&#xff1a; A:正常工作数据 B:前兆特征数据 C:干扰信号数据 D:传感器断线数据 E:工作面休息数据 任务细节&#xff1a; 任务1&#xff1a; 分析含干扰的电磁辐射和声发射信号&#xff0c;识别干扰信号的特征&#xff0c;并利用这些特征在特定时间段…

安装Kuboard管理k8s

一、Kuboard 介绍 Kuboard 是一款免费的 Kubernetes 管理工具,提供了丰富的功能,结合已有或新建的代码仓库、镜像仓库、CI/CD工具等,可以便捷的搭建一个生产可用的 Kubernetes 容器云平台,轻松管理和运行云原生应用。您也可以直接将 Kuboard 安装到现有的 Kubernetes 集群…

计算机毕业设计python_django宠物领养系统z6rfy

本宠物领养系统主要包括两大功能模块&#xff0c;即管理员模块、用户模块。下面将对这两个大功能进行具体功能需求分析。 &#xff08;1&#xff09;管理员&#xff1a;管理员登录后主要功能包括个人中心、用户管理、送养宠物管理、地区类型管理、失信黑名单管理、申请领养管理…

深入解析Jackson的ObjectMapper:核心功能与方法指南

com.fasterxml.jackson.databind.ObjectMapper 是Jackson库的核心类&#xff0c;负责JSON序列化与反序列化的重任。本文旨在详细介绍其成员属性和方法&#xff0c;帮助开发者更好地利用Jackson进行Java对象与JSON数据之间的转换操作。 初始化与配置 构造与复制 默认构造函数…

封装umi-request时通过 AbortController 配置取消请求

一、关键部分 一、在封装的request.ts中 声明一个 abortControllers 对象用于存储要取消的请求&#xff08;我用了-s表示复数&#xff0c;多个abortcontroller对象&#xff0c;与下面&#x1f447;的单个abortController区分&#xff09;封装取消请求的函数cancelRequest, 传入…

038——基于STM32和I.MX6uLL实现uart控制GPS(失败者总结)

目录 1、GPS模块简介 2、GPS数据格式 3、方案梳理 1、GPS模块简介 全球定位系统(Global Positioning System&#xff0c; GPS)是一种以空中卫星为基础的高精度无线电导航的定位系统&#xff0c;它在全球任何地方以及近地空间都能够提供准确的地理位置、车行速度及精确的时间…

邦注科技 温控箱对企业的重要性

注塑加工是将加热的熔融塑料注入模具中形成所需产品的工艺过程。良好的注塑加工工艺需要控制好许多参数&#xff0c;其中最重要的因素之一就是模具的温度。模具温度的不稳定会导致产品尺寸大小、表面缺陷等方面的问题&#xff0c;甚至会导致生产不良品&#xff0c;加大生产成本…

【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例

peerconn的信令是通过post 消息到自己的信令线程消息来处理的PeerConnectionMessageHandler 是具体的处理器G:\CDN\rtcCli\m98\src\pc\peer_connection_message_handler.hMachinery for handling messages posted to oneself PeerConnectionMessageHandler 明确服务于 signalin…

2021江苏省赛 H-Reverse the String

来源 题目 There is a string of lowercase letters, and you want to minimize its lexicographical order. What you can do is reverse an interval or do nothing. For example, for the string abcdefg, if we reverse the interval abcdefg, it will become abfedcg. A …

017、Python+fastapi,第一个Python项目走向第17步:ubuntu24.04 无界面服务器版下安装nvidia显卡驱动

一、说明 新的ubuntu24.04正式版发布了&#xff0c;前段时间玩了下桌面版&#xff0c;感觉还行&#xff0c;先安装一个服务器无界面版本吧 安装时有一个openssh选择安装&#xff0c;要不然就不能ssh远程&#xff0c;我就是没选&#xff0c;后来重新安装ssh。 另外一个就是安…

数据仓库和数据仓库分层

一、数据仓库概念 数据仓库(Data Warehouse)&#xff0c;可简写为DW或DWH。数据仓库&#xff0c;是为企业所有级别的决策制定过程&#xff0c;提供所有类型数据支持的战略集合。它是单个数据存储&#xff0c;出于分析性报告和决策支持目的而创建。 为需要业务智能的企业&#…

CGAL 点云数据生成DSM、DTM、等高线和数据分类

原文链接 CGAL 点云数据生成DSM、DTM、等高线和数据分类 - 知乎 在GIS应用软件中使用的许多传感器(如激光雷达)都会产生密集的点云。这类应用软件通常利用更高级的数据结构&#xff1a;如&#xff1a;不规则三角格网 (TIN)是生成数字高程模型 (DEM) 的基础&#xff0c;也可以利…

2024深圳杯数学建模竞赛A题(东三省数学建模竞赛A题):建立火箭残骸音爆多源定位模型

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓&#xff08;浏览器打开&#xff09; https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 2024深圳杯数学建模竞赛A题&#xff08;东三省数学建模竞赛A题&#xff0…

PyVista 3D数据可视化 Python 库 简介 含源码

Pyvista是一个用于科学可视化和分析的Python库 &#xff1b;我认为它适合做一些网格数据的处理&#xff1b; 它封装了VTK&#xff08;Visualization Toolkit&#xff09;之上&#xff0c;提供了一些高级接口&#xff0c; 3D数据可视化变得更加简单和易用。 1.安装 pyvista&…

开发一个语音聊天社交app小程序H5需要多少钱?

社交&#xff0c;即时通讯APP系统。如何开发一个社交App||开发一个即时通信应用是一项复杂而充满挑战的任务&#xff0c;需要考虑多个技术、开发时间和功能方面的因素。以下是一个概要&#xff0c;描述了从技术、开发时间和功能角度如何开发这样的应用&#xff1a; 1. 技术要点…