Загрузка текста PDF в память из GoogleCloudStorage с помощью Langchain NodeJS
Я пытаюсь загрузить PDF-файл из хранилища GCS и прочитать его содержимое в памяти.
При использовании Langchain с Python я могу просто использовать GCSDirectoryLoader для чтения всех файлов в корзине и текста в формате PDF.
Langchain для NodeJs не имеет GCSDirectoryLoader или веб-загрузчика для файлов PDF. При загрузке файла я получаю документ с двоичным представлением содержимого.
Как лучше всего загрузить PDF-контент из корзины GCS в память?
1 ответ
В итоге я сделал следующее для сегмента GCS:
documentBucket.getFiles()
...
const [buffer] = await file.download();
const options = { normalizeWhitespace: true };
// Using 3rd part lib => pdf.js-extract
await pdfExtract.extractBuffer(buffer, options)
.then((data) => {
...
}
И для Google Диска:
const drive = google.drive({
version: 'v3',
auth,
})
const resp = await drive.files.get({ fileId: file.id, alt: "media" }, {responseType: 'arraybuffer'});
const buffer = new Buffer.from(resp.data);
const options = { normalizeWhitespace: true };
// Using 3rd part lib => pdf.js-extract
await pdfExtract.extractBuffer(buffer, options)
.then((data) => {
...
}
Документация по API могла бы быть более понятной, в конечном итоге мне понадобилось установить для параметра responseType значение «arrayBuffer», чего я не смог найти в документации.
Я все еще собираюсь потратить некоторое время на определение того, действительно ли нужна сторонняя библиотека... но для меня это имеет более низкий приоритет.