mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 13:03:50 +00:00
2.9 KiB
2.9 KiB
PDF-Mistral 插件
此插件使用 Mistral 的 OCR API 将 PDF 文件转换为 Markdown 文本。它可以从 PDF 文档中提取文本内容和图像,并将它们作为带有嵌入式 base64 图像的 Markdown 返回。
功能特点
- 使用 Mistral OCR API 提取 PDF 文本
- Markdown 中的 base64 图像嵌入
- 完善的错误处理
- 支持多页 PDF
设置
前提条件
- Python 3.8+
- Mistral API 密钥(在此获取)
安装
- 安装所需的软件包:
pip install -r requirements.txt
- 通过创建/编辑
.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页)
故障排除
常见错误
-
"MISTRAL_API_KEY environment variable not set"(未设置 MISTRAL_API_KEY 环境变量)
- 确保您已将 Mistral API 密钥添加到
.env
文件中 - 确保
.env
文件与脚本在同一目录中
- 确保您已将 Mistral API 密钥添加到
-
"Failed to process PDF file"(无法处理 PDF 文件)
- PDF 可能已损坏或受密码保护
- 尝试使用其他 PDF 文件
-
Mistral API 错误
- 检查您的 Mistral API 密钥是否有效
- 确保您在 Mistral API 速率限制范围内
- 验证 PDF 是否在大小/页数限制范围内
许可证
MIT 许可证