微信扫码
添加专属顾问
我要投稿
探索Mistral AI OCR的革命性功能,性价比超越Mathpix,成为文档转换的新选择。 核心内容: 1. Mistral AI OCR的背景和价格优势 2. 使用示例和网页版效果展示 3. 进阶配置和API调用方法介绍
在过去,最好用的识别数学公式并进行代码转换的网站/软件莫过于Mathpix了:支持各种格式转换,比如pdf,png到tex,md,当然也包括docx等等,无论是pdf文档转换还是截图识别,从移动端的Snip App再到桌面客户端以及网页版、浏览器插件全生态的覆盖让使用体验无比丝滑。
但免费版的使用额度相当有限,而付费订阅又太贵(一年50美刀);此外,网页版还偶尔会出现网络连接不稳定的情形。
不过现在,号称地表最强的OCR工具Mistral出现了。这是一家法国的初创AI公司,可以理解为欧洲版的DeepSeek,它的价格也十分便宜(OCR功能大概1美刀可以转换上千页pdf)。
直接访问官网聊天界面(可能需要用手机号注册账号):
https://chat.mistral.ai/chat
像其他大语言模型一样对话框内上传文件,输入“转换成markdown”即可;比如这里我上传了一篇和DeepSeek-R1相关的论文:等待几秒钟,即可得到转换后的markdown代码。 进一步地,利用Typora或Obsidian等markdown编辑器,即可查看或转换成pdf、docx等格式(可能需要额外安装pandoc)。
更多效果展示请参阅官网介绍:
https://mistral.ai/news/mistral-ocr
这是原来的pdf文件:这是转化后并在Typora中显示的效果(主题:Newsprint):
可以看到,除了图片外的效果非常不错,但如果要把图片也提取出来并在相应位置保留,就需要用到下面的方法了。
除了在官网的对话界面处理文件外,也可以通过API调用进行批量处理。 感谢@nicekate 提供的Python代码,可以实现在本地调用Mistral API进行文件处理,并且在B站上还有相应的演示视频。
配置方法也非常简单,只需要申请一个自己的API key,然后再把上面的仓库clone下来,填入相应的API key即可。
在控制台左侧菜单栏点击"API Keys",然后点击右上角的“Create new key”,复制即可。
https://console.mistral.ai/home
先将上述仓库clone到本地:
git clone https://github.com/nicekate/mistral-ocr.git
再安装依赖项:
pip install mistralai
在pdf_ocr.py
中修改 API 密钥和 PDF 文件路径即可(72~73行):
API_KEY = "填入你自己的api key""
PDF_PATH = "xxx.pdf"
运行文件,即可在同目录下找到转换后的文件夹ocr_results_xxx
,其中包含了转换后的markdown文件和图片文件。
主题:Typora GitHub
有时需要同时进行多个PDF文件的转换,于是在此基础上我自己动手增加了批处理功能,可以将同一目录下的所有PDF文件进行转换。
具体修改如下:
get_pdf_files_in_directory
函数,用于扫描指定文件夹并返回所有 PDF 文件的完整路径。__main__
中,替换手动指定 PDF 文件路径的方式,改为从文件夹中自动获取 PDF 文件。def process_pdfs(pdf_paths: list, api_key: str) -> None:
for pdf_path in pdf_paths:
try:
output_dir = process_pdf(pdf_path, api_key)
print(f"文件 {pdf_path} 处理完成,结果保存在: {output_dir}")
except Exception as e:
print(f"处理文件 {pdf_path} 时出错: {e}")
def get_pdf_files_in_directory(directory: str) -> list:
"""获取指定目录中的所有PDF文件路径"""
pdf_files = []
for file in os.listdir(directory):
if file.endswith(".pdf"):
pdf_files.append(os.path.join(directory, file))
return pdf_files
if __name__ == "__main__":
# 使用示例
API_KEY = "your_mistral_api_key"
DIRECTORY = "your_pdf_file"# 指定包含PDF文件的文件夹名称
# 获取文件夹中的所有PDF文件
PDF_PATHS = get_pdf_files_in_directory(DIRECTORY)
ifnot PDF_PATHS:
print(f"目录 {DIRECTORY} 中没有找到PDF文件。")
else:
process_pdfs(PDF_PATHS, API_KEY)
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-04
面向六个月后的 AI Code,也许影响的不只是前端
2025-04-04
2025风口指南:万字长文带你吃透大模型Agent,涵盖应用、场景与发展
2025-04-03
大模型不再是黑盒子:Anthropic解剖了Claude大脑
2025-04-03
OpenAI 发布新型音频模型,听起来比以往任何时候都更像人类
2025-04-03
工作流(Workflow)VS 智能体(Agent)
2025-04-03
中国AI应用们,正在苦等一个国产Claude
2025-04-03
MCP:AI世界的万能连接器,专家都在关注的下一代标准
2025-04-03
Open R1 项目进展第三期
2024-08-13
2024-06-13
2024-08-21
2024-09-23
2024-07-31
2024-05-28
2024-08-04
2024-04-26
2024-07-09
2024-09-17
2025-04-02
2025-04-02
2025-04-01
2025-04-01
2025-04-01
2025-03-30
2025-03-30
2025-03-28