llama_index 使用SimpleDirectoryReader读取图像为什么会导致返回结果为空?我看到.png格式是支持的,

tcomlyy6  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(63)

问题验证

  • 我已在文档和Discord中寻找答案。

问题

为什么使用SimpleDirectoryReader读取图像会导致返回空?我看到.png已经包含在支持的格式中。

ktca8awb

ktca8awb1#

嘿,@penpen0427!👋 我来帮助你解决任何bug、问题或你脑海中的建议。让我们一起消灭这些bug吧!
使用 SimpleDirectoryReader 读取图像会导致返回空值,因为该阅读器的设计是根据文件扩展名从目录中加载文件并自动选择最佳的文件阅读器。然而,它并不本质上支持从图像中读取文本。这种功能需要额外的处理,例如 OCR(光学字符识别),这不在默认的文件阅读器中包含。
为了避免这个问题,你可以在使用 SimpleDirectoryReader 时排除图像文件。例如:

SimpleDirectoryReader("./data", exclude=["*png", "*jpg", "*jpeg"])

这将阻止阅读器尝试处理图像文件。exclude 参数允许你指定要排除的文件路径模式,确保只读取支持的文件类型 1(https://github.com/run-llama/llama_index/blob/main/docs/docs/examples/discover_llamaindex/document_management/discord_dumps/help_channel_dump_06_02_23.json)2(https://github.com/run-llama/llama_index/blob/main/docs/docs/examples/discover_llamaindex/document_management/discord_dumps/help_channel_dump_05_25_23.json)。

  • 要继续与 Dosu 对话,请提及 @dosu。*
bjp0bcyl

bjp0bcyl2#

我认为它不是空的,只是默认情况下它不会假设你有解析文本所需的库。它会返回一个带有图像路径的ImageDocument,以及使用pytesseract捕获到的任何文本。
你可以使用一些额外的选项示例化阅读器来使用模型提取文本。

0lvr5msh

0lvr5msh3#

我认为它不是空的,只是默认情况下,它不会假设你有解析文本所需的库。它会返回一个带有图像路径的ImageDocument,以及使用pytesseract捕获到的任何文本。
你可以使用一些额外的选项示例化阅读器,以便使用模型提取文本。

from llama_index.readers.file import ImageReader

file_extractor = {".png": ImageReader(parse_text=True)}

documents = SimpleDirectoryReader("./data", file_extractor= file_extractor).load_data()

所以,包含图像的PDF文件也可以像这样工作,对吗?

相关问题