Mistral OCR
综合介绍
Mistral OCR 是一款由 Mistral AI 公司开发的光学字符识别(OCR)API,旨在为用户提供文档理解服务。 它不仅仅是传统的OCR工具,它能理解文档中的多种元素,包括媒体、文本、表格、甚至是数学公式,并以高精度进行识别。 该工具能够接收图像和PDF文件作为输入,然后提取出其中包含文本和图像的内容,并按照它们在原始文件中的顺序进行排列。 这种特性使得 Mistral OCR 非常适合与检索增强生成(RAG)系统结合使用,特别是处理那些包含多种信息格式的复杂文档,例如幻灯片或者内容丰富的PDF文件。 Mistral OCR 的一个显著优势是它的处理速度快,并且支持多种语言,能够识别和转录数千种脚本、字体和语言。
功能列表
- 高精度文档元素理解: 能够准确识别和提取文档中的文本、图像、表格、数学公式和复杂的排版(如 LaTeX 格式)。
- 多模态输入与输出: 支持将图像和PDF文件作为输入,并能将提取的文本和图像内容以markdown格式进行有序输出。
- 强大的多语言能力: 支持识别和转录全球范围内的数千种语言和文字。
- 文档即提示 (Doc-as-prompt): 允许用户直接将文档作为提示,从而能够更精确地提取特定信息并以JSON等结构化格式输出。
- 高速处理: 得益于其轻量化模型,处理速度非常快,单个节点每分钟可处理高达2000页文档。
- 支持本地化部署: 对于有严格数据隐私要求的组织,提供自托管选项,以确保敏感信息的安全。
- 与AI系统集成: 提取的内容格式非常适合直接用于AI系统和检索增强生成(RAG)应用,以构建更智能的工作流。
使用帮助
Mistral OCR 提供了一个强大的API,能够帮助你从各种文档中提取信息。下面将详细介绍如何使用这项工具。
API接入
要开始使用 Mistral OCR,你首先需要获取一个API密钥。这通常需要在 Mistral AI 的官方平台 "la Plateforme" 上注册并创建一个账户。获得API密钥后,你就可以在你的代码中调用 Mistral OCR 的服务了。
安装客户端库
为了方便地与API进行交互,Mistral AI 提供了官方的Python和JavaScript客户端库。你可以使用以下命令进行安装:
Python:
pip install mistralai
JavaScript (Node.js):
npm install @mistralai/mistralai
功能操作流程
Mistral OCR 的核心功能是通过 ocr.process
方法来实现的。这个方法可以接受不同格式的文档输入,并返回结构化的数据。
1. 从URL处理PDF文档
你可以直接提供一个指向PDF文档的URL,Mistral OCR 会自动下载并处理它。
Python 示例:
import os
from mistralai import Mistral
# 确保你已经设置了环境变量 MISTRAL_API_KEY
api_key = os.environ.get("MISTRAL_API_KEY")
client = Mistral(api_key=api_key)
ocr_response = client.ocr.process(
model="mistral-ocr-latest",
document={
"type": "document_url",
"document_url": "https://arxiv.org/pdf/2201.04234"
},
include_image_base64=True # 如果需要提取图像,请设置为 True
)
# 打印提取的内容
for page in ocr_response.pages:
for block in page.blocks:
print(block.text)
JavaScript 示例:
import Mistral from '@mistralai/mistralai';
const apiKey = process.env.MISTRAL_API_KEY;
const client = new Mistral({ apiKey: apiKey });
async function processDocument() {
const ocrResponse = await client.ocr.process({
model: "mistral-ocr-latest",
document: {
type: "document_url",
documentUrl: "https://arxiv.org/pdf/2201.04234"
},
includeImageBase64: true
});
ocrResponse.pages.forEach(page => {
page.blocks.forEach(block => {
console.log(block.text);
});
});
}
processDocument();
2. 从本地文件处理文档
你也可以上传本地的图片或PDF文件进行处理。
Python 示例:
import os
from mistralai import Mistral
api_key = os.environ.get("MISTRAL_API_KEY")
client = Mistral(api_key=api_key)
with open("path/to/your/document.pdf", "rb") as f:
ocr_response = client.ocr.process(
model="mistral-ocr-latest",
document={
"type": "document",
"document": f
},
include_image_base64=True
)
for page in ocr_response.pages:
for block in page.blocks:
print(block.text)
理解输出结果
ocr.process
方法的返回结果是一个包含多个页面的对象。每个页面都由多个“块”(blocks)组成,这些块可以是文本或图像。这种结构化的输出方式可以帮助你准确地重建原始文档的布局和内容。
特色功能操作:文档即提示 (Doc-as-prompt)
这是 Mistral OCR 的一个非常强大的功能,它允许你不仅仅是提取整个文档的内容,而是可以像与大语言模型对话一样,向文档“提问”并获取结构化的答案。
示例:从发票中提取特定信息
假设你有一张发票的PDF文件,并且你想要提取发票号码、总金额和截止日期。你可以通过构建一个特定的提示来实现这一点。
import os
import json
from mistralai import Mistral
api_key = os.environ.get("MISTRAL_API_KEY")
client = Mistral(api_key=api_key)
# 定义你想要提取的信息结构
extraction_schema = {
"type": "object",
"properties": {
"invoice_number": {"type": "string"},
"total_amount": {"type": "number"},
"due_date": {"type": "string"}
}
}
prompt = f"""
从以下文档中提取信息,并以JSON格式返回。
JSON schema:
{json.dumps(extraction_schema)}
"""
with open("invoice.pdf", "rb") as f:
response = client.chat(
model="mistral-large-latest", # 使用支持工具调用的模型
messages=[
{"role": "user", "content": prompt},
{"role": "user", "content": [{"type": "document", "document": f}]}
],
tool_choice="any"
)
print(response.choices[0].message.content)
通过这种方式,你可以将复杂的文档处理任务自动化,例如从合同中提取关键条款,或从研究论文中总结实验结果。
应用场景
- 科研数字化研究机构可以利用 Mistral OCR 将大量的科学论文、期刊和历史文献转换成AI可用的格式。这大大加快了研究人员查阅和分析资料的速度,促进了学术合作和科学发现。
- 文化遗产保护图书馆、博物馆和档案馆可以使用 Mistral OCR 对珍贵的历史文献、手稿和古代书籍进行数字化。这不仅可以永久保存这些文化遗产,还能让全世界的公众更容易地访问和研究这些资料。
- 提升客户服务效率企业可以将产品手册、技术文档和常见问题解答(FAQ)通过 Mistral OCR 进行处理,并建立一个智能知识库。客服团队和客户可以快速地在这个知识库中找到问题的答案,从而缩短响应时间,提升客户满意度。
- 多领域文档智能化在法律、教育、工程等多个领域,Mistral OCR 都能发挥作用。例如,它可以帮助律师事务所处理大量的法律文件,帮助教育机构将教科书和讲义数字化,或者帮助工程师从复杂的设计图纸和技术报告中提取关键信息。
QA
- Mistral OCR 和其他OCR工具有什么不同?Mistral OCR 的主要区别在于它不仅仅是提取文本。 它能够理解并保留文档的原始结构和格式,包括标题、段落、表格甚至是嵌入的图像。 它输出的Markdown格式可以直接被AI系统使用,特别适合用于构建检索增强生成(RAG)应用。
- Mistral OCR 支持哪些语言?Mistral OCR 支持数千种语言和文字,使其成为一个真正的全球化工具。无论你的文档是英文、中文、印地语还是阿拉伯语,它都能够准确地识别和转录。
- 处理敏感数据时,Mistral OCR 是否安全?对于处理高度敏感或机密信息的组织,Mistral OCR 提供了自托管的部署选项。这意味着你可以将整个服务部署在自己的服务器上,确保所有数据都保留在你的内部网络中,从而满足严格的安全和合规要求。
- Mistral OCR 的定价如何?Mistral OCR 目前可以免费使用。未来可能会推出付费选项,例如按处理页数计费的模式,同时也会为有特殊需求的企业提供自托管等企业级方案。