# RapidVLM-OCR **Repository Path**: RapidAI/RapidVLM-OCR ## Basic Information - **Project Name**: RapidVLM-OCR - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-24 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > [!IMPORTANT] > 该项目暂时归档。原本设想的是复用 transformers 前后处理 + vllm 作为推理引擎来统一最近出现的 VLM OCR 大模型。 > > 随着逐渐了解源码,发现 vllm 架构已经实现了我的设想。 > > 它通过开放接口,让每个模型可以自定义自己的前后处理代码。vllm 启动时,只需按照规定去加载模型下的前后处理代码即可。

RapidVLM-OCR

基于 vLLM 加速的端到端 VLM-OCR 统一推理框架
 
SemVer2.0
## 📝 简介 RpaidVLM-OCR:基于 vLLM 加速的端到端 VLM-OCR 统一推理框架,多模型兼容、一套接口、开箱即用。 项目定位:只集成端到端 OCR 领域大模型,力争在效果和模型大小之间找到一个平衡。 与现有项目区别: - [RapidOCR](https://github.com/RapidAI/RapidOCRDocs): 仅集成单纯从图像中提取文字功能,目前仅包括两阶段传统方案。 - [RapidDoc](https://github.com/RapidAI/RapidDoc): 基于 MinerU,两阶段方案,集成多个小模型来做文档解析任务。 - RapidVLM-OCR: 专注端到端 VLM-OCR,解决综合性任务。 ## 安装 1. 安装 `vllm`,参见官方文档:[docs](https://docs.vllm.ai/en/stable/getting_started/installation/)。下面是测试 `vllm` 是否成功安装的最小脚本: ```python 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` ```bash pip install rapidvlm_ocr ``` 3. 快速检查安装是否成功 ```bash rapidvlm_ocr check ``` 预期输出类似: ```text rapidvlm_ocr check passed app: RapidVLMOCR ``` ## 下载模型 ```bash huggingface-cli download --resume-download baidu/Qianfan-OCR --local-dir Qianfan-OCR ``` ## 使用 ### 图像批处理 ```python 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 输入 ```python 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(...)`。