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
文件
学习内容:
- 从
csv
中load
文件 - 从文件夹中
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 使用python
的tempfile
如果没有文件,临时使用内存变量进行模拟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
。