AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)

文章目录

  • AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)
  • 学习内容:
    • 1.load documents(csv)
      • 1.1 学习`url`
      • 1.2 `load csv`文件
        • 1.2.1 默认`load`
        • 1.2.2 `csv`文件内容
        • 1.2.2 执行`csv`文件的`load`
      • 1.3 Customizing the CSV parsing and loading(自定义`loader`)
      • 1.3.1 实现代码
      • 1.3.2 代码执行
      • 1.4 Specify a column to identify the document source(执行列来标明`source`)
        • 1.4.1 实现`source`指定的代码
        • 1.4.2 执行`source`指定的代码
      • 1.3 使用`python`的`tempfile`
        • 1.3.1 `tempfile`使用的代码
        • 1.3.2 代码执行
    • 2.load documents(from directory)
      • 2.1 准备数据文件夹
      • 2.2 文件夹`load`的代码
      • 2.3 `trouble shooting`
        • 2.3.1 出现的问题
        • 2.3.2 使用`git bash`进行安装
      • 2.4 执行文件夹`load`的代码

AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)

  • 使用langchain如何解析csv文件

学习内容:

  • csvload文件
  • 从文件夹中loader文件

1.load documents(csv)

1.1 学习url

  • langchain的load documents(csv)文档
  • csv文件示例

1.2 load csv文件

1.2.1 默认load
from langchain_community.document_loaders.csv_loader import CSVLoader
import asynciofile_path = r'D:\00_study\07_python\PythonProject\src' \r'\document_loaders\examples\mlb_teams_2012.csv'async def load_csv():loader = CSVLoader(file_path=file_path)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_csv())
1.2.2 csv文件内容

这里的示例csv文件

"Team", "Payroll (millions)", "Wins"
"Nationals",     81.34, 98
"Reds",          82.20, 97
"Yankees",      197.96, 95
"Giants",       117.62, 94
"Braves",        83.31, 94
"Athletics",     55.37, 94
"Rangers",      120.51, 93
"Orioles",       81.43, 93
"Rays",          64.17, 90
"Angels",       154.49, 89
"Tigers",       132.30, 88
"Cardinals",    110.30, 88
"Dodgers",       95.14, 86
"White Sox",     96.92, 85
"Brewers",       97.65, 83
"Phillies",     174.54, 81
"Diamondbacks",  74.28, 81
"Pirates",       63.43, 79
"Padres",        55.24, 76
"Mariners",      81.97, 75
"Mets",          93.35, 74
"Blue Jays",     75.48, 73
"Royals",        60.91, 72
"Marlins",      118.07, 69
"Red Sox",      173.18, 69
"Indians",       78.43, 68
"Twins",         94.08, 66
"Rockies",       78.06, 64
"Cubs",          88.19, 61
"Astros",        60.65, 55
1.2.2 执行csv文件的load

对解析出来的data的前两行的输出。
在这里插入图片描述

1.3 Customizing the CSV parsing and loading(自定义loader

1.3.1 实现代码

async def load_customized_csv():loader = CSVLoader(file_path=file_path,csv_args={"delimiter": ",","quotechar": '"',"fieldnames": ["MLB Team", "Payroll in millions", "Wins"],},)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_customized_csv())

1.3.2 代码执行

在这里插入图片描述

1.4 Specify a column to identify the document source(执行列来标明source

上面的例子看出,metadata中的source都是这个csv的所在文件的绝对路径,那么如果想使用某一个column作为source也是可以的。

1.4.1 实现source指定的代码
async def load_specify_source():loader = CSVLoader(file_path=file_path,source_column="Team")data = loader.load()for record in data[:2]:print(record)asyncio.run(load_specify_source())
1.4.2 执行source指定的代码

在这里插入图片描述

1.3 使用pythontempfile

如果没有文件,临时使用内存变量进行模拟csv文件,进行load

1.3.1 tempfile使用的代码
async def load_with_tempfile():string_data = """"Team", "Payroll (millions)", "Wins""Nationals",     81.34, 98"Reds",          82.20, 97"Yankees",      197.96, 95"Giants",       117.62, 94""".strip()with tempfile.NamedTemporaryFile(delete=False, mode="w+") as temp_file:temp_file.write(string_data)temp_file_path = temp_file.nameloader = CSVLoader(file_path=temp_file_path,)data = loader.load()for record in data[:2]:print(record)asyncio.run(load_specify_source())
1.3.2 代码执行

在这里插入图片描述

2.load documents(from directory)

2.1 准备数据文件夹

在这里插入图片描述

虽然这个文件夹就两个文件,但是使用这个作为练习的目标文件夹。

2.2 文件夹load的代码

from langchain_community.document_loaders import DirectoryLoaderdirectory_path = r'D:\00_study\07_python\PythonProject\src' \r'\document_loaders\examples'
loader = DirectoryLoader(directory_path,glob="**/*.md")
docs = loader.load()
print(len(docs))

2.3 trouble shooting

2.3.1 出现的问题

这里,执行的时候发现出现错误,让执行pip install "unstructured[md]",这时候通过pycharm的包管理的界面已经搜索不到了。
在这里插入图片描述

2.3.2 使用git bash进行安装

没有办法,只能进行命令行的pip install "unstructured"注意,这里的双引号不能省略

  • 进入git bash
  • 激活venv
    cd /d/00_study/07_python/PythonProject
    source ./venv/Scripts/activate
    
  • 检查是pip还是pip3
    环境不同,有时候需要执行pip install,有时候需要执行pip3,所以需要检查一下。
    $ where pip
    C:\Users\Dell\AppData\Local\Microsoft\WindowsApps\pip.exe
    (.venv)
    Dell@finlay-pc MINGW64 /d/00_study/07_python/PythonProject$ where pip3
    D:\00_study\07_python\PythonProject\.venv\Scripts\pip3.exe
    C:\Users\Dell\AppData\Local\Microsoft\WindowsApps\pip3.exe
    (.venv)
    
    这里很清楚,如果为虚拟python环境venv安装需要的包,那么执行pip3 install
  • 执行pip3 install
    pip3 install "unstructured[md]"
    
    注意,安装完毕之后,切换到pycharm的画面,可以看到pycharm也在加载,自动进行更新
    在这里插入图片描述

2.4 执行文件夹load的代码

debug模式执行代码,可以看到md文件已经被成功load
在这里插入图片描述

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

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

相关文章

企业运维实战:Jenkins 依赖 JDK21 与应用需 JDK1.8 共存方案(含流水线配置)

前言:在企业运维中,“工具升级”与“业务兼容”的平衡始终是核心挑战。近期我们遇到一个典型场景:Jenkins 升级到 2.450 版本后,强制要求 JDK21 运行环境;但开发团队的应用程序因框架依赖,必须使用 JDK1.8 …

爬虫小知识三:selenium库

前言 selenium 库是一种用于 Web 应用程序测试的工具,它可以驱动浏览器执行特定操作,自动按照脚本代码做出单击、输入、打开、验证等操作,支持的浏览器包括 IE、Firefox、Safari、Chrome、Opera 等。 与 requests 库不同的是,se…

Jmeter使用 -1

1 接口测试1.1 为什么要进行接口测试接口测试能够绕过前端校验,对后端的接口处理逻辑进行测试(数据的边界/格式/类型)在一些需要重复测试的需求中,接口自动化的效率比手工执行效率高1.2 接口测试流程熟悉API接口文档(接…

GitHub 趋势日报 (2025年07月16日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音频格式转换器

我们将使用Python的Tkinter库来构建一个音频格式转换器界面。由于音频转换需要实际的处理,我们将使用pydub库(需要安装)来进行音频格式转换。同时,我们会使用ffmpeg作为后端,因此请确保系统中已安装ffmpeg并添加到环境…

Haproxy算法精简化理解及企业级高功能实战

文章目录4. Haproxy的算法4.1 静态算法4.1.1 static-rr:基于权重的轮询调度1. 示例:4.1.2 first1. 示例2. 测试效果:4.2 动态算法4.2.1 roundrobin1. 示例2. 动态调整权重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 测试4.3.2…

git fork的项目远端标准协作流程 仓库设置[设置成upstream]

这是一个在开源协作中非常常见的配置。 简单来说,upstream 在这里指的是你 Fork 来的那个原始的、官方的仓库。 下面我们来详细解释一下这个 git remote -v 输出的含义: 1. 两条“遥控器” (Remotes) 你的 git 配置了两个远程仓库的地址,就像…

[FFmpeg] 输入输出访问 | 管道系统 | AVIOContext 与 URLProtocol | 门面模式

链接:https://trac.ffmpeg.org/ docs:FFmpeg FFmpeg 是一个强大的多媒体框架,旨在处理媒体处理的各个阶段。 它就像一个数字媒体工厂,包含以下部门:打包/解包(容器处理)、 转译/压缩&#xff…

微服务的编程测评系统2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言工程创建创建ck-oj创建oj-modules创建具体微服务oj-system推送码云管理员登录逻辑分析docker安装mysqldocker客户端docker desktop安装安装mysqlmysql-plus和数据…

AR智能巡检:电力运维的数字化变革

在电力行业快速发展的当下,传统运维方式已难以满足现代电网对高效、安全的需求。近年来,增强现实(AR www.teamhelper.cn )技术的兴起为电力巡检带来了全新的解决方案。通过实时数据可视化、远程协作和智能分析,AR技术…

NeRF和3DGS原理详细

NeRF和3DGS一、传统三维表征方法1.1 显示表征1.2 隐式表征二、NeRF(Nerual Radiance Field)2.1 NeRF场景表示2.2 NeRF训练流程2.3 NeRF体渲染2.4 NeRF位置编码2.5 NeRF体素分层采样(Volume Hierarchical Sampling)2.6 NeRF网络结构…

035_ClaudeCode_MCP_介绍

035_ClaudeCode_MCP_介绍 摘要 Model Context Protocol(MCP)是一个开放的标准化协议,专为大型语言模型提供上下文数据而设计。作为Claude Code生态系统的重要组成部分,MCP如同"AI应用程序的USB-C端口",提供…

Python 程序无法找到 Oracle 的 64 位客户端库 (libclntsh.so)

数据库错误: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help 这个错误表明 Python 程序无法找到…

Kubernetes常用命令总结

文章目录Kubernetes常用命令总结1. 集群管理命令kubectl cluster-infokubectl get nodeskubectl describe node <node-name>kubectl top nodes2. Pod相关命令kubectl get podskubectl get pods -o widekubectl describe pod <pod-name>kubectl logs <pod-name&g…

roboflow使用教程

如何利用roboflow标注自己的训练集、调用开源数据集 官网&#xff1a;Roboflow: Computer vision tools for developers and enterprises&#xff08;国内代理进不去&#xff09; 先注册登陆进去 训练自己的数据集 点击“New Project”,名字按照自己的需求来 我不想写了&am…

IDEA中使用Tomcat两种方式

Catalogue1 集成本地Tomcat2 Tomcat Maven插件&#xff08;推荐&#xff09;1 集成本地Tomcat 将本地Tomcat集成到Idea中&#xff0c;然后进行项目部署即可 点击编辑配置 点击加号 添加local的Tomcat 配置Application Server 可以修改一下Name 至此&#xff0c;配置完成 …

服务器上的文件复制到本地 Windows 系统

在 Windows 上通过 SSH 连接到 Linux 服务器后&#xff0c;如果需要将服务器上的文件复制到本地 Windows 系统&#xff0c;可以使用以下几种方法&#xff1a;方法 1&#xff1a;使用 scp&#xff08;Secure Copy&#xff09;命令 scp&#xff08;基于 SSH 的安全复制&#xff0…

大语言模型置信度增强实战指南

LLM怎么简单增强置信度 在大语言模型(LLM)的应用中,“置信度增强”核心目标是提升模型输出的可靠性(减少错误/幻觉) 并让模型更清晰地表达自身的不确定性(避免“一本正经地胡说”)。常用方式可分为“输出优化”“知识补充”“校准调整”三大类, 一、基于“推理过程优…

NLP:人名分类器案例分享

本文目录&#xff1a;一、案例介绍&#xff08;一&#xff09;关于人名分类&#xff08;二&#xff09;人名分类数据预览二、案例步骤&#xff08;一&#xff09;导入工具包&#xff08;二&#xff09;数据预处理1. 获取常用的字符数量2. 国家名种类数和个数3.读数据到内存4.构…

3分钟实战!用DeepSeek+墨刀AI生成智能对话APP原型图

如今&#xff0c;AI生成原型图已经逐渐成为产品经理的一项常用辅助技能&#xff0c;不仅能加快设计进程&#xff0c;还能显著提升前期沟通效率。最近我尝试将大语言模型工具与AI原型工具结合测试&#xff0c;目标是看看是否能生成更高质量的原型页面。直到我使用DeepSeek墨刀AI…