解析PDF文档用于RAG应用
本笔记展示如何利用GPT-4V将丰富的PDF文档(如幻灯片演示或从网页导出的文档)转换为可用于RAG应用的内容。
如果您有大量包含有价值信息的非结构化数据,并希望能够在RAG流程的一部分中检索这些信息,那么可以使用这种技术。
例如,您可以构建一个知识助手,根据PDF文档中包含的信息回答用户关于您公司或产品的查询。
本笔记中使用的示例文档位于data/example_pdfs。它们与OpenAI的API以及作为LLM项目一部分可以使用的各种技术相关。
数据准备
在本部分中,我们将处理我们的输入数据,以便为检索做准备。
我们将通过两种方式进行此操作:
- 使用pdfminer提取文本
- 将PDF页面转换为图像,以便用GPT-4V分析
如果您只想使用从图像分析中推断出的内容,可以跳过第一种方法。
设置
我们需要安装一些库来将PDF转换为图像并提取文本(可选)。
注意:您需要在计算机上安装poppler
才能使pdf2image
库正常工作。您可以按照这里的说明进行安装。
%pip install pdf2image
%pip install pdfminer
%pip install openai
%pip install scikit-learn
%pip install rich
%pip install tqdm
%pip install concurrent
# 进口
from pdf2image import convert_from_path
from pdf2image.exceptions import (
PDFInfoNotInstalledError,
PDFPageCountError,
PDFSyntaxError
)
from pdfminer.high_level import extract_text
import base64
from io import BytesIO
import os
import concurrent
from tqdm import tqdm
from openai import OpenAI
import re
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
import json
import numpy as np
from rich import print
from ast import literal_eval
文件处理
def convert_doc_to_images(path):
images = convert_from_path(path)
return images
def extract_text_from_doc(path):
text = extract_text(path)
page_text = []
return text