def 函数会自动解析PDF文件并从中提取文本。这对于从PDF文件生成提示非常有用。
def("DOCS", env.files) // contains some pdfsdef("PDFS", env.files, { endsWith: ".pdf" }) // only pdfs解析器
parsers.PDF 函数读取 PDF 文件并尝试将其清晰地转换为适合 LLM 处理的文本格式。
const { file, pages } = await parsers.PDF(env.files[0])解析完成后,您可以使用file和pages来生成提示。如果解析失败,file将为undefined。
const { file, pages } = await parsers.PDF(env.files[0])
// inline the entire filedef("FILE", file)
// or analyze page per page, filter pagespages.slice(0, 2).forEach((page, i) => { def(`PAGE_${i}`, page)})图片与图表
GenAIScript 会自动从PDF中提取位图图像并存储在数据数组中。您可以使用这些图像生成提示。图像以PNG格式编码,可能会比较大。
const { data } = await parsers.PDF(env.files[0])将页面渲染为图像
添加renderAsImage选项还可以将每个页面转换为PNG图像(作为缓冲区)。该缓冲区可与视觉模型一起使用来执行OCR操作。
const { images } = await parsers.PDF(env.files[0], { renderAsImage: true })您可以使用scale参数控制渲染图像的质量(默认值为3)。
PDF文件很混乱
PDF格式最初并非为便于文本提取而设计。parsers.PDF函数使用pdf-parse包来从PDF中提取文本。该包并不完美,可能无法从某些PDF中提取文本。如果您能获取原始文档,建议使用更便于文本处理的格式,如markdown或纯文本。