You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Langchain NodeJS从GCS将PDF内容读取至内存?

Node.js Langchain 从GCS读取PDF并转换为文本Document的最佳实现

步骤1:安装必要依赖

需要安装GCS SDK、PDF文本解析库和Langchain核心包:

npm install @google-cloud/storage pdf-parse langchain

步骤2:从GCS下载PDF到内存Buffer

使用Google Cloud Storage SDK直接将PDF文件下载为内存Buffer,无需写入本地文件:

const { Storage } = require('@google-cloud/storage');

// 初始化Storage实例,需提前配置GCS认证(环境变量或密钥文件)
const storage = new Storage();

async function downloadGcsPdfToBuffer(bucketName, fileName) {
  const bucket = storage.bucket(bucketName);
  const file = bucket.file(fileName);
  const [buffer] = await file.download();
  return buffer;
}

步骤3:解析Buffer为纯文本

用pdf-parse库处理PDF Buffer,提取其中的文本内容:

const pdfParse = require('pdf-parse');

async function parsePdfBufferToText(buffer) {
  const parseResult = await pdfParse(buffer);
  return parseResult.text;
}

步骤4:封装为Langchain Document格式

将提取的文本转换为Langchain标准的Document对象,方便后续的文本分割、嵌入等操作:

const { Document } = require('langchain/document');

async function createLangchainDocumentFromGcsPdf(bucketName, fileName) {
  const buffer = await downloadGcsPdfToBuffer(bucketName, fileName);
  const text = await parsePdfBufferToText(buffer);
  
  return new Document({
    pageContent: text,
    metadata: {
      source: `gcs://${bucketName}/${fileName}`,
      // 可按需添加文件大小、修改时间等元数据
    }
  });
}

批量处理存储桶内所有PDF

如果需要读取GCS桶内全部PDF文件,可扩展为批量处理逻辑:

async function loadAllPdfsFromGcsBucket(bucketName) {
  const bucket = storage.bucket(bucketName);
  const [files] = await bucket.getFiles();
  
  // 筛选出PDF格式文件
  const pdfFiles = files.filter(file => file.name.endsWith('.pdf'));
  const documents = [];
  
  for (const file of pdfFiles) {
    const doc = await createLangchainDocumentFromGcsPdf(bucketName, file.name);
    documents.push(doc);
  }
  
  return documents;
}

关键注意事项

  • GCS认证:确保已通过GOOGLE_APPLICATION_CREDENTIALS环境变量或密钥文件路径完成认证配置
  • 大文件处理:若PDF文件过大,内存解析压力较高,可改用pdf-parse的流式输入结合GCS流式下载
  • 扫描版PDF:pdf-parse无法提取图片转PDF的文本,这类文件需配合OCR工具(如tesseract.js)处理

内容的提问来源于stack exchange,提问作者Makaku00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:36:56