返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

Mistral OCR 结构化输出:结合OCR与LLM,实现高效数据提取与组织!

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 12:56 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">导语:

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">你是否需要一款工具,能够结合OCR的文本识别能力和大型语言模型(LLM)的理解能力,实现更准确、更有组织的数据提取?ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(14, 95, 71);">Mistral OCR来了!这款工具不仅支持从PDF和图像中提取文本,还能通过Pixtral-12B或Ministral-8B模型生成结构化JSON输出。无论是处理收据、合同,还是其他文档,Mistral OCR都能为你提供高效的数据提取解决方案。本文将为你全面解析Mistral OCR的功能、使用方法及技术亮点,带你轻松玩转结构化数据提取!


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">正文:

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(14, 95, 71);">1.ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(14, 95, 71);">Mistral OCR的核心功能

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">
    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(14, 95, 71);">OCR能力:支持从PDF和图像文件中提取文本内容。
  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">
    多模态集成:将OCR结果与Pixtral-12B或Ministral-8B模型结合,生成结构化数据。
  • 灵活输入格式:支持PDF文档和各种图像格式。
  • 自定义输出架构:基于Pydantic定义特定的输出格式,如StructuredOCR类。

2.技术亮点

  • 基于模型的结构化解析:利用LLM将OCR提取的文本转换为结构化数据。
  • 多模态支持:结合视觉模型和文本模型,提升数据提取的准确性和灵活性。
  • 自定义输出:支持根据需求定义输出格式,满足不同场景的需求。

3.应用场景

  • 收据信息提取:从收据中提取金额、日期、支付方式等关键信息。
  • 合同解析:从合同中提取条款、签署方、有效期等结构化数据。
  • 文档分析:从PDF或图像文档中提取标题、段落、表格等内容。

4.快速开始

1. 安装Mistral AI库
pipinstallmistralai
2. 下载示例文件
wget https://raw.githubusercontent.com/mistralai/cookbook/main/mistral/ocr/mistral7b.pdf
wget https://raw.githubusercontent.com/mistralai/cookbook/main/mistral/ocr/receipt.png
3. 初始化Mistral客户端
frommistralaiimportMistral

api_key ="API_KEY"# 替换为你的API密钥
client = Mistral(api_key=api_key)
4. 处理PDF文件
frompathlibimportPath
frommistralaiimportDocumentURLChunk, ImageURLChunk, TextChunk
importjson

# 验证PDF文件是否存在
pdf_file = Path("mistral7b.pdf")
assertpdf_file.is_file()

# 上传PDF文件到Mistral OCR服务
uploaded_file = client.files.upload(
file={
"file_name": pdf_file.stem,
"content": pdf_file.read_bytes(),
},
purpose="ocr",
)

# 获取上传文件的URL
signed_url = client.files.get_signed_url(file_id=uploaded_file.id, expiry=1)

# 使用OCR处理PDF文件
pdf_response = client.ocr.process(
document=DocumentURLChunk(document_url=signed_url.url),
model="mistral-ocr-latest",
include_image_base64=True
)

# 将响应转换为JSON格式
response_dict = json.loads(pdf_response.model_dump_json())
print(json.dumps(response_dict, indent=4)[0:1000]) # 打印前1000个字符
5. 处理图像文件
importbase64

# 验证图像文件是否存在
image_file = Path("receipt.png")
assertimage_file.is_file()

# 将图像编码为base64
encoded = base64.b64encode(image_file.read_bytes()).decode()
base64_data_url =f"data:image/jpeg;base64,{encoded}"

# 使用OCR处理图像
image_response = client.ocr.process(
document=ImageURLChunk(image_url=base64_data_url),
model="mistral-ocr-latest"
)

# 将响应转换为JSON格式
response_dict = json.loads(image_response.model_dump_json())
print(json.dumps(response_dict, indent=4))

5.结构化数据提取

# 获取OCR结果
image_ocr_markdown = image_response.pages[0].markdown

# 使用Pixtral-12B模型生成结构化JSON响应
chat_response = client.chat.complete(
model="pixtral-12b-latest",
messages=[
{
"role":"user",
"content": [
ImageURLChunk(image_url=base64_data_url),
TextChunk(
text=(
f"This is image's OCR in markdown:\n\n{image_ocr_markdown}\n.\n"
"Convert this into a sensible structured json response. "
"The output should be strictly be json with no extra commentary"
)
),
],
}
],
response_format={"type":"json_object"},
temperature=0,
)

# 解析并返回JSON响应
response_dict = json.loads(chat_response.choices[0].message.content)
print(json.dumps(response_dict, indent=4))

6.自定义结构化输出

fromenumimportEnum
frompathlibimportPath
frompydanticimportBaseModel
importbase64

classStructuredOCR(BaseModel):
file_name:str
topics:list[str]
languages:str
ocr_contents:dict

defstructured_ocr(image_path:str) -> StructuredOCR:
"""
处理图像并提取结构化数据。

参数:
image_path: 图像文件路径

返回:
StructuredOCR对象,包含提取的数据

异常:
AssertionError: 如果图像文件不存在
"""
# 验证输入文件
image_file = Path(image_path)
assertimage_file.is_file(),"提供的图像路径不存在。"

# 读取并编码图像文件
encoded_image = base64.b64encode(image_file.read_bytes()).decode()
base64_data_url =f"data:image/jpeg;base64,{encoded_image}"

# 使用OCR处理图像
image_response = client.ocr.process(
document=ImageURLChunk(image_url=base64_data_url),
model="mistral-ocr-latest"
)
image_ocr_markdown = image_response.pages[0].markdown

# 解析OCR结果为结构化JSON响应
chat_response = client.chat.parse(
model="pixtral-12b-latest",
messages=[
{
"role":"user",
"content": [
ImageURLChunk(image_url=base64_data_url),
TextChunk(text=(
f"This is the image's OCR in markdown:\n{image_ocr_markdown}\n.\n"
"Convert this into a structured JSON response "
"with the OCR contents in a sensible dictionnary."
)
)
]
}
],
response_format=StructuredOCR,
temperature=0
)

returnchat_response.choices[0].message.parsed

# 示例用法
image_path ="receipt.png"# 示例收据图像路径
structured_response = structured_ocr(image_path) # 处理图像并提取数据

# 解析并返回JSON响应
response_dict = json.loads(structured_response.model_dump_json())
print(json.dumps(response_dict, indent=4))

总结:

Mistral OCR不仅是一款强大的文本提取工具,更是结合LLM实现结构化数据提取的利器。无论你是开发者、数据分析师,还是企业用户,Mistral OCR都能为你提供高效的数据提取解决方案。赶快点击链接,体验这款工具的强大功能吧!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ