我正在尝试加载一个包含表格和图形的非常大的复杂 PDF。大约有 600 页。当我在 Langchain-JS 和 NextJS 中使用非结构化 API 的快速选项时,它似乎可以工作,但没有收集一些必要的数据。但是,当使用 hi_res 选项时,它会给我一个超时错误。我尝试将超时选项设置为各种设置但无济于事。我完全同意这个过程需要多少时间就花多少时间。任何帮助将非常感激。
错误:
error TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11576:11)
at UnstructuredLoader._partition (e:/Web-Development/Developing/Nextjs/projects/gpt4-pdf/node_modules/langchain/dist/document_loaders/fs/unstructured.js:139:26)
at UnstructuredLoader.load (e:/Web-Development/Developing/Nextjs/projects/gpt4-pdf/node_modules/langchain/dist/document_loaders/fs/unstructured.js:154:26)
at UnstructuredDirectoryLoader.load (e:/Web-Development/Developing/Nextjs/projects/gpt4-pdf/node_modules/langchain/dist/document_loaders/fs/directory.js:80:40)
at run (e:\Web-Development\Developing\Nextjs\projects\gpt4-pdf\scripts\ingest.ts:48:21)
at <anonymous> (e:\Web-Development\Developing\Nextjs\projects\gpt4-pdf\scripts\ingest.ts:78:3) {
cause: HeadersTimeoutError: Headers Timeout Error
at Timeout.onParserTimeout [as callback] (node:internal/deps/undici/undici:9748:32)
at Timeout.onTimeout [as _onTimeout] (node:internal/deps/undici/undici:8047:17)
at listOnTimeout (node:internal/timers:573:17)
at process.processTimers (node:internal/timers:514:7) {
code: 'UND_ERR_HEADERS_TIMEOUT'
}
}
我在发生错误的地方使用的代码:
const options = {
apiKey: process.env.UNSTRUCTURED_API_KEY,
strategy: "hi_res",
timeout: 10000, //Tried various from 10000-10000000
};
const unstructuredLoader = new UnstructuredDirectoryLoader(
filePath,
options
);
const rawDocs = await unstructuredLoader.load();
这是选项的类型:
export type UnstructuredLoaderOptions = {
apiKey?: string;
apiUrl?: string;
strategy?: StringWithAutocomplete<UnstructuredLoaderStrategy>;
encoding?: string;
ocrLanguages?: Array<string>;
coordinates?: boolean;
pdfInferTableStructure?: boolean;
xmlKeepTags?: boolean;
};
type UnstructuredDirectoryLoaderOptions = UnstructuredLoaderOptions & {
recursive?: boolean;
unknown?: UnknownHandling;
};
你应该选择一个策略:
strategy?: StringWithAutocomplete<UnstructuredLoaderStrategy>;
策略类型
type UnstructuredLoaderStrategy = "hi_res" | "fast" | "ocr_only" | "auto"
也许 600 页对于
UnstructuredDirectoryLoader
来说太多了。选择 fast
策略。 从这里开始
非结构化文档加载器允许用户传入策略 让非结构化文件知道如何对文档进行分区的参数。 当前支持的策略是“hi_res”(默认)和“fast”。 高分辨率分区策略更准确,但需要更长的时间 过程。快速策略可以更快地对文档进行分区,但是 权衡准确性。并非所有文档类型都有单独的高分辨率和 快速分区策略。对于这些文档类型,策略 kwarg 被忽略。在某些情况下,高分辨率策略会后退 如果缺少依赖项(即文档的模型),则要快速 分区)。
这在使用策略时对我有用:“hi_res”,