需搭建轻量node.js服务实现pdf到gemini解析:一、配置api密钥与sdk;二、用pdf-parse提取并清洗文本;三、用express+multer接收pdf;四、构造系统提示词引导json输出;五、分类返回400/401/403/429等错误码。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望利用 Google Gemini 模型从 PDF 文件中提取结构化文本、表格或语义信息,但缺乏现成的端到端服务支撑,则需搭建一个轻量、可直接接收 PDF 并返回 Gemini 解析结果的 Node.js 服务。以下是实现该服务的步骤:
一、配置 Gemini API 与环境依赖
Node.js 服务需通过 Google AI SDK 调用 Gemini 模odel,因此必须先获取有效 API 密钥并安装对应客户端库,确保运行时具备模型调用能力。
1、访问 https://aistudio.google.com/app/apikey 创建或复用有效的 Gemini API 密钥。
2、在项目根目录执行命令安装官方 SDK:npm install @google/generative-ai。
3、创建 .env 文件,写入 GEMINI_API_KEY=your_api_key_here,并使用 dotenv 加载。
二、集成 PDF 文本提取模块
Gemini 无法直接读取 PDF 二进制内容,必须先将 PDF 解析为纯文本或带布局信息的字符串,再作为上下文输入模型。需选用稳定、支持中文且不依赖外部服务的解析方案。
1、执行命令安装 pdf-parse:npm install pdf-parse。
2、在服务代码中引入并调用其 parse 方法,传入 Buffer 类型的 PDF 文件流。
3、对解析结果中的 text 字段进行清洗:移除连续空白符、过滤页眉页脚常见模式(如“第 X 页 共 Y 页”)、保留换行以维持段落结构。
三、构建 Express 接口接收并处理 PDF
服务需暴露一个 POST 接口,支持 multipart/form-data 格式上传文件,并完成解析、调用 Gemini、返回响应的完整链路。
1、安装 Express 和 multer:npm install express multer。
2、使用 multer 配置内存存储(memoryStorage()),避免临时文件写盘开销。
3、定义路由 /api/parse,限定仅接受字段名为 file 的单个 PDF 文件,限制大小不超过 8MB。
四、构造 Gemini 输入提示词(Prompt)
原始 PDF 文本常含冗余字符、错位换行与无意义分隔符,需通过系统级提示词引导 Gemini 忽略噪声、聚焦核心语义,并按指定格式输出。
1、构造 systemInstruction 字符串,明确要求:“你是一个专业文档解析助手,仅输出 JSON,包含字段 content(主文本摘要)、tables(识别出的表格数组,每项含 headers 和 rows)”。
2、将清洗后的 PDF 文本截断至 10000 字符以内,拼接至 user 提示中,格式为:“请基于以下文档内容提取关键信息:\n[PDF_TEXT]”。
3、调用 generateContent 方法时传入 systemInstruction 与 contents 数组,启用 stream: false 确保同步响应。
五、添加错误分类与 HTTP 状态码映射
服务需区分不同失败场景,避免将模型拒绝、解析异常、网络超时等统一返回 500,提升客户端调试效率。
1、PDF 解析失败(如损坏、加密)时,返回状态码 400,并附带 message: "invalid_pdf_format"。
2、Gemini 返回 blocked 或 SAFETY 错误时,捕获 safetyRatings 字段,返回 403 及 reason: "content_restricted_by_safety_policy"。
3、API 密钥无效或配额耗尽时,检查 response.error.status === 'UNAUTHENTICATED' 或 'RESOURCE_EXHAUSTED',返回 401 或 429。










