LlamaIndex在https://github.com/jerryjliu/llama_index
文档在https://gpt-index.readthedocs.io/en/latest/guides/primer/usage_pattern.html
第一个坑,python3.7安装不了库
后来使用的是python3.8.7
关于LlamaIndex读取的原理
在python版的pdfchat中,可以看到调用了LlamaIndex的接口,通过llamahub的库里的PDR读取器来读取PDF文件
PDFReader = download_loader("PDFReader")
loader = PDFReader()
documents = loader.load_data(file=Path(file))
我一开始很疑惑,在https://llamahub.ai/上面我也没看到有PDFReader这个名字,怎么这里就能成功导入,后来通过跟踪代码,发现
代码会先检查文件夹里面有没有library.json,这个library.json我觉着相当于是llamahub上的读取器的列表,如果没有的话,会进行get请求获取,这里就是容易出现proxy代理问题的地方
https://raw.githubusercontent.com/emptycrown/loader-hub/main/loader_hub/library.json打开是这样
这里可以理解为什么是download_loader(“PDFReader”)了
PS:如果在download_loader()时候出现问题,那么断点一步步跟进去请求然后加上代理就好,这里加上代理就完事了其实,能成功用了
# 用clash的话
proxies = {"http": "http://127.0.0.1:7890","https": "http://127.0.0.1:7890",}
具体位置(如果要深究一下,llamahub下载的每个加载模块放在D:\Python387\Lib\site-packages\llama_index\readers\llamahub_modules或者D:\Python387\Lib\site-packages\llama_index\readers\llamahub_modules\file里,然而每个模块对应的文件夹里面,需要成功下载requirements.txt和base.py,缺一不可,下面就是代码里进行检查并下载的位置)