Загрузка текста 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», чего я не смог найти в документации.

Я все еще собираюсь потратить некоторое время на определение того, действительно ли нужна сторонняя библиотека... но для меня это имеет более низкий приоритет.

Другие вопросы по тегам