Skip to content

RapidAI/RapidVLM-OCR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RapidVLM-OCR

基于 vLLM 加速的端到端 VLM-OCR 统一推理框架
 

SemVer2.0

📝 简介

RpaidVLM-OCR:基于 vLLM 加速的端到端 VLM-OCR 统一推理框架,多模型兼容、一套接口、开箱即用。

项目定位:只集成端到端 OCR 领域大模型,力争在效果和模型大小之间找到一个平衡。

与现有项目区别:

  • RapidOCR: 仅集成单纯从图像中提取文字功能,目前仅包括两阶段传统方案。
  • RapidDoc: 基于 MinerU,两阶段方案,集成多个小模型来做文档解析任务。
  • RapidVLM-OCR: 专注端到端 VLM-OCR,解决综合性任务。

安装

  1. 安装 vllm,参见官方文档:docs。下面是测试 vllm 是否成功安装的最小脚本:

    from vllm import LLM, SamplingParams
    
    # 极小测试模型(会自动从 Hugging Face 下载)
    llm = LLM(model="facebook/opt-125m", tensor_parallel_size=1)
    
    sampling_params = SamplingParams(
        max_tokens=32,
        temperature=0.7,
    )
    
    outputs = llm.generate("Hello, vLLM is working!", sampling_params)
    
    for output in outputs:
        prompt = output.prompt
        generated_text = output.outputs[0].text
        print(f"Prompt: {prompt!r}")
        print(f"Generated: {generated_text!r}")
        print("✅ vLLM 推理成功")
  2. 安装 rapidvlm_ocr

    pip install rapidvlm_ocr
  3. 快速检查安装是否成功

    rapidvlm_ocr check

    预期输出类似:

    rapidvlm_ocr check passed
    app: RapidVLMOCR
    

下载模型

huggingface-cli download --resume-download baidu/Qianfan-OCR --local-dir Qianfan-OCR

使用

图像批处理

from rapidvlm_ocr import EngineType, ModelName, RapidVLMOCR, TaskType

model_path = "models/Qianfan-OCR"
app = RapidVLMOCR(
    model_name=ModelName.QIANFAN_OCR,
    model_path=model_path,
    engine=EngineType.VLLM,
)

input_paths = [
    "tests/test_files/QianFan_OCR/general_1.jpeg",
    "tests/test_files/QianFan_OCR/general.jpg",
    "tests/test_files/QianFan_OCR/document.png",
]
result = app(task_type=TaskType.DOCUMENT_PARSING, input_path=input_paths, batch_size=2)

print(result)

PDF 输入

from rapidvlm_ocr import EngineType, ModelName, RapidVLMOCR, TaskType

model_path = "models/Qianfan-OCR"
app = RapidVLMOCR(
    model_name=ModelName.QIANFAN_OCR,
    model_path=model_path,
    engine=EngineType.VLLM,
)

result = app(
    task_type=TaskType.DOCUMENT_PARSING,
    input_path="tests/test_files/test.pdf",
    batch_size=4,
)

print(result)

说明:

  • 公开接口参数已统一为 input_path / input_paths
  • app(input_path="xxx.pdf") 会使用 pypdfium2 将 PDF 按页渲染为图像,并默认走批处理。
  • run() 只用于单个图像输入;PDF 请使用 app(...)run_batch(...)

About

基于 vLLM 加速的端到端 VLM-OCR 统一推理框架,多模型兼容、一套接口、开箱即用。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages