🥰大家知道嗎,之前在給AI大模型"喂數據"的時候,我們往往需要把非結構化數據(比如PDF、PPT、Excel等)自己手動轉成結構化的格式,這可真是太累人兒了。🥵
幸好現在有了Unstructured這個神級庫,它內置的數據提取函數可以幫我們快速高效地完成這個轉換過程。而且支持常見的多種文件格式!🐶
比如說,如果我們要從一個PPT文件里提取數據,可以用partition_pptx
函數:
from unstructured.partition.pptx import partition_pptxfilename = "example_files/msft_openai.pptx"
elements = partition_pptx(filename=filename)
這個函數會把PPT文件的內容解析成一個elements
列表,每個元素都是一個Element
對象,分別代表PPT里的標題、文字、圖片等內容。
但是我們想要的是結構化數據而不是對象呀,所以還需要再轉換一下:
element_dict = [el.to_dict() for el in elements]
print(json.dumps(element_dict, indent=2))
這兩行代碼的作用是:
- 遍歷
elements
列表,把每個Element
對象都轉換成字典(調用它們的to_dict
方法) - 把這些字典組成一個新列表
element_dict
- 使用
json.dumps
把element_dict
轉成Json格式的字符串,并指定indent=2
讓結果更加美觀
是不是很酷?現在我們就擁有了結構化的數據啦!
如果是PDF文件的話,流程也差不多:
from unstructured.shared import Files, PartitionParameters
from unstructured.openai_api import SDKfilename = "example_files/CoT.pdf"
with open(filename, "rb") as f:files = Files(content=f.read(), file_name=filename)req = PartitionParameters(files=files, strategy='hi_res', pdf_infer_table_structure=True)s = SDK.get_instance()
resp = s.general.partition(req)
print(json.dumps(resp.elements, indent=2))
這里主要新的地方是用Files
對象來存PDF文件的內容,然后定義一個PartitionParameters
來設置處理策略(比如識別表格等)。
最后就是創建SDK實例,調用partition
方法,傳入之前定義的參數,就能獲取PDF里的結構化數據啦!
對于Excel文件,官方文檔里也有介紹,應該也是類似的操作。
有了這些技能,我們就能把海量的非結構化數據高效地轉換成結構化格式,喂給大模型"吃"啦!以后制作AI應用的時候,效率和開發體驗都會更上一層樓~🚀