当前位置: 首页 > news >正文

Langchain 对pdf,word,txt等不同文件的加载解析

项目中遇到各种数据资源想要加载近langchain构建本地知识ai系统,怎么加载对应的文件格式呢,一起研究下

引入Langchain

from langchain.document_loaders import UnstructuredWordDocumentLoader,PyPDFium2Loader,DirectoryLoader,PyPDFLoader,TextLoader
import os

pdf文件加载

def load_pdf(directory_path):data = []for filename in os.listdir(directory_path):if filename.endswith(".pdf"):print(filename)# print the file nameloader = PyPDFium2Loader(f'{directory_path}/{filename}')print(loader)data.append(loader.load())return data

word文档加载如,doc或者docx格式

def load_word(directory_path):data = []for filename in os.listdir(directory_path):# check if the file is a doc or docx file# 检查所有doc以及docx后缀的文件if filename.endswith(".doc") or filename.endswith(".docx"):# langchain自带功能,加载word文档loader = UnstructuredWordDocumentLoader(f'{directory_path}/{filename}')data.append(loader.load())return data

txt加载

def load_txt(directory_path):data = []for filename in os.listdir(directory_path):if filename.endswith(".txt"):print(filename)loader = TextLoader(f'{directory_path}/{filename}')print(loader)data.append(loader.load())return data

上述中常见的文档格式基本上都可以加载进去了,主要就是不同格式对应不同的加载方式,如果想简单也可以直接加载目录

def load_docs(directory):loader = DirectoryLoader(directory)documents = loader.load()return documents

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言-栈和队列
  • springboot 配置 spring data redis
  • spring-boot 整合 redisson 实现延时队列(文末有彩蛋)
  • TiDB实践—索引加速+分布式执行框架创建索引提升70+倍
  • SpringBoot RestHighLevelClient 按版本更新
  • 自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo
  • vscode配置latex环境制作【文档、简历、resume】
  • Chapter16 渲染优化技术——Shader入门精要学习笔记
  • 企业培训 | CATIA数字样机培训
  • 为什么Spring不推荐@Autowired用于字段注入
  • Facebook Dating:社交平台的约会新体验
  • 专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。
  • docker部署Guacamole手册
  • SpringBoot应用从jar包部署改为war包部署要做哪些修改
  • SpringCloud---服务注册(Eureka)
  • python3.6+scrapy+mysql 爬虫实战
  • [译]CSS 居中(Center)方法大合集
  • mysql_config not found
  • node.js
  • SpriteKit 技巧之添加背景图片
  • sublime配置文件
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 对象引论
  • 前端
  • 前端_面试
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 原生Ajax
  • 原生js练习题---第五课
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #android不同版本废弃api,新api。
  • #if 1...#endif
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.proxy和$.extend
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (三)SvelteKit教程:layout 文件
  • (一)Dubbo快速入门、介绍、使用
  • (一)为什么要选择C++
  • (转)ORM
  • *Django中的Ajax 纯js的书写样式1
  • .chm格式文件如何阅读
  • .equals()到底是什么意思?
  • .NET : 在VS2008中计算代码度量值
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .net中应用SQL缓存(实例使用)
  • ::before和::after 常见的用法
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka