Files
FastGPT/plugins/model/pdf-mistral/README.md
2025-03-24 10:32:06 +08:00

2.9 KiB
Raw Blame History

PDF-Mistral 插件

此插件使用 Mistral 的 OCR API 将 PDF 文件转换为 Markdown 文本。它可以从 PDF 文档中提取文本内容和图像,并将它们作为带有嵌入式 base64 图像的 Markdown 返回。

功能特点

  • 使用 Mistral OCR API 提取 PDF 文本
  • Markdown 中的 base64 图像嵌入
  • 完善的错误处理
  • 支持多页 PDF

设置

前提条件

安装

  1. 安装所需的软件包:
pip install -r requirements.txt
  1. 通过创建/编辑 .env 文件设置环境变量:
# 在 .env 文件中
MISTRAL_API_KEY=你的-mistral-api-密钥

使用方法

启动服务器

使用以下命令运行服务器:

python api_mp.py

或者直接使用 uvicorn

uvicorn api_mp:app --host 0.0.0.0 --port 7231

然后配置到FastGPT配置文件即可

{
  xxx
  "systemEnv": {
    xxx
    "customPdfParse": {
      "url": "http://localhost:7231/v1/parse/file", // 自定义 PDF 解析服务地址
    }
  }
}

API 端点

解析 PDF 文件

端点POST /v1/parse/file

请求

  • 包含文件字段的多部分表单数据

响应

{
  "pages": 5,                // PDF 中的页数
  "markdown": "...",         // 带有嵌入式 base64 图像的 Markdown 内容
  "duration": 10.5           // 处理时间(秒)
}

错误响应

{
  "pages": 0,
  "markdown": "",
  "error": "错误信息"
}

使用示例

使用 curl

curl -X POST -F "file=@path/to/your/document.pdf" http://localhost:7231/v1/parse/file

使用 JavaScript/Axios

const formData = new FormData();
formData.append('file', pdfFile);

const response = await axios.post('http://localhost:7231/v1/parse/file', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
});

if (response.data.error) {
  console.error('错误:', response.data.error);
} else {
  console.log('页数:', response.data.pages);
  console.log('Markdown:', response.data.markdown);
}

限制

  • PDF 文件必须可读且没有密码保护
  • 最大文件大小取决于 Mistral API 限制目前最大52.4M
  • Mistral API 有页面限制最多最大1000页

故障排除

常见错误

  1. "MISTRAL_API_KEY environment variable not set"(未设置 MISTRAL_API_KEY 环境变量)

    • 确保您已将 Mistral API 密钥添加到 .env 文件中
    • 确保 .env 文件与脚本在同一目录中
  2. "Failed to process PDF file"(无法处理 PDF 文件)

    • PDF 可能已损坏或受密码保护
    • 尝试使用其他 PDF 文件
  3. Mistral API 错误

    • 检查您的 Mistral API 密钥是否有效
    • 确保您在 Mistral API 速率限制范围内
    • 验证 PDF 是否在大小/页数限制范围内

许可证

MIT 许可证