multi-ocr-sdk:支持多种ocr引擎的pip包

项目介绍

MULTI-OCR-SDK 是一个简单高效的 Python SDK,用于调用各类OCR API(现已支持deepseek-OCR、视觉模型VLM、paddleocr),可以高精度、高性能地将文档(PDF、图片)转换为 Markdown 文本。

使用

安装

# 通过pip安装
pip install multi-ocr-sdk
# 或者通过uv安装
uv add multi-ocr-sdk 

VLM的基础用法

import os
from multi_ocr_sdk import VLMClient


API_KEY = "your_api_key_here"
BASE_URL = "http://your_url/v1/chat/completions"
file_path = "./examples/example_files/DeepSeek_OCR_paper_mini.pdf" 

client = VLMClient(api_key=API_KEY, base_url=BASE_URL)

result = client.parse(
    file_path=file_path,
    prompt="你是一个ocr机器人,识别输入的文件内容,输出为markdown格式,尽可能保留图表等格式信息,你不需要评论概括文件内容,只需要输出就行",
    model="Qwen3-VL-8B",
    # timeout=100, # 可选参数,默认60s,如果文件很大,VLM需要处理很久,timeout需要设置长一些
    # dpi=60  # 可选参数,默认72,DPI越低,图片越糊,消耗的输入token越少,识别效果越差,自行调整至合适比例
    # pages=[1,2] # 可选参数,如果是处理单张图片或者单页pdf不需要这个参数,如果是处理多页pdf默认处理所有页,可以通过这个参数处理指定页

)
print(result)

deepseek-ocr的基础用法

from multi_ocr_sdk import DeepSeekOCR

client = DeepSeekOCR(
    api_key="your_api_key",
    base_url="https://api.siliconflow.cn/v1/chat/completions"  # 或您的提供商端点
)

# 简单文档
text = client.parse("invoice.pdf", mode="free_ocr")

# 复杂表格
text = client.parse("statement.pdf", mode="grounding")

# 自定义 DPI
text = client.parse("document.pdf", dpi=300)

背景故事

前一段时间deepseek发布了ocr模型,尝试了一下,非常好使
后来发现github上有人开发了deepseek-ocr-sdk,调用起来很方便,在此基础上提了一些需求,和原作者一起改吧改吧,加了些新功能

使用过程中发现硅基流动免费的ds-ocr很容易触发限制,而我又不打算氪金升级,如果换到其他第三方效果不太行(试了几个L站的第三方,体验不佳),于是想着能不能支持一些其他的ocr模型,比如qwen-ocr?

经过一番折腾,最终在原本的deepseek-ocr-sdk基础上进行了代码重构,现在支持了VLM,经过实测qwen3-vl-8b就能有很棒的效果

接下来会支持更多常用的ocr引擎,欢迎大家捉bug,提pr​:heart: