3.langchain 入门到放弃(二) Document loaders-CSV

171 阅读3分钟

3.langchain 入门到放弃(二) Document loaders-CSV

  langchain 入门到放弃(二) Document loaders-CSV

  使用文档加载器从文档源加载数据。文档是一段文本和关联的元数据。例如,有一些文档加载器可以加载简单的 .txt 文件、加载任何网页的文本内容,甚至加载 YouTube 视频的脚本。

  文档加载器提供了一种“加载”方法,用于从配置的源将数据加载为文档。它们还可以选择实现“延迟加载”,以便将数据延迟加载到内存中。

  CSVLoader

  error.csv格式如下

  1. 加载 CSV 数据,每个文档只有一行。

from langchain_community.document_loaders.csv_loader import CSVLoader

loader = CSVLoader(file_path='./source/error.csv')
data = loader.load()

  CSVLoader

  2. 自定义 CSV 解析和加载

from langchain_community.document_loaders import CSVLoader

'''
1、通过csvLoader加载本地csv文件,
2、loader.load获取文档对象,
'''
loader = CSVLoader(file_path="../source/error.csv",csv_args={
    'delimiter': ',',
    'fieldnames': ['故障&问题现象','当前状态','发生时间','客户是否感知','故障&问题影响范围(从影响时长,严重性,故障级别等方面描述)','故障&问题所属模块','模块版本','故障&问题类型','排查原因','解决措施']
})
documents = loader.load()
print(documents)
[Document(page_content='故障&问题现象: 故障&问题现象\n当前状态: 当前状态\n发生时间: 发生时间\n客户是否感知: 客户是否感知\n故障&问题影响范围(从影响时长,严重性,故障级别等方面描述): 故障&问题影响范围(从影响时长,严重性,故障级别等方面描述)\n故障&问题所属模块: 故障&问题所属模块\n模块版本: 模块版本\n故障&问题类型: 故障&问题类型\n排查原因: 排查原因\n解决措施: 解决措施', metadata={'source': '../source/error.csv', 'row': 0}), Document(page_content='故障&问题现象: 高速缓存偶发出现down\n当前状态: 已解决\n发生时间: 2022/1/15\n客户是否感知: 否\n故障&问题影响范围(从影响时长,严重性,故障级别等方面描述): 客户无感知/严重性一般\n故障&问题所属模块: 缓存\n模块版本: dns-4.x\n故障&问题类型: 产品问题\n排查原因: 接口域名大小写频繁操作引起\n解决措施: 给出最新版本解决', metadata={'source': '../source/error.csv', 'row': 1}), Document(page_content='故障&问题现象: mysql挂了\n当前状态: 已解决\n发生时间: 2022/1/15\n客户是否感知: 否\n故障&问题影响范围(从影响时长,严重性,故障级别等方面描述): 客户无感知/严重性一般\n故障&问题所属模块: ump\n模块版本: mysql 5.7.x\n故障&问题类型: 产品问题\n排查原因: mysql异常\n解决措施: None', metadata={'source': '../source/error.csv', 'row': 2})]

  3. 指定一列来标识文档来源

loader = CSVLoader(file_path='./example_data/mlb_teams_2012.csv', source_column="Team")

data = loader.load()
[Document(page_content='故障&问题现象: 高速缓存偶发出现down\n当前状态: 已解决\n发生时间: 2022/1/15\n客户是否感知: 否\n故障&问题影响范围(从影响时长,严重性,故障级别等方面描述): 客户无感知/严重性一般\n故障&问题所属模块: 缓存\n模块版本: dns-4.x\n故障&问题类型: 产品问题\n排查原因: 接口域名大小写频繁操作引起\n解决措施: 给出最新版本解决', metadata={'source': '高速缓存偶发出现down', 'row': 0}), Document(page_content='故障&问题现象: mysql挂了\n当前状态: 已解决\n发生时间: 2022/1/15\n客户是否感知: 否\n故障&问题影响范围(从影响时长,严重性,故障级别等方面描述): 客户无感知/严重性一般\n故障&问题所属模块: ump\n模块版本: mysql 5.7.x\n故障&问题类型: 产品问题\n排查原因: mysql异常\n解决措施: None', metadata={'source': 'mysql挂了', 'row': 1})]