-
Dynamic Markdown Reconstruction
Converts complex documents to structured Markdown or HTML-Markdown while preserving layout hierarchy, formatting consistency, semantic ordering, and section alignment.
-
Inline Code and Language Embedding
Direct adaptation of Python, JavaScript, LaTeX, and shell syntax into reconstructed documents for technical and research documentation.
-
High Fidelity OCR and Visual Parsing
Accurate recognition of text across structured and unstructured scanned documents, including multi page layout reasoning.
-
Complex Layout Interpretation
Interprets tables, grids, equations, graphs, multi column layouts, and forms without structural distortion.
-
Document Retrieval and Semantic Linking
Efficient multi page chunking with cross reference recognition and content traceability.
-
Multimodal Long Reasoning
Supports advanced document question answering and reasoning across long input streams such as slides and manuscripts.
1from transformers import Qwen3VLForConditionalGeneration, AutoProcessor
2from qwen_vl_utils import process_vision_info
3
4model = Qwen3VLForConditionalGeneration.from_pretrained(
5 "prithivMLmods/proxima-ocr-d.markdown-post3.0.l", torch_dtype="auto", device_map="auto"
6)
7
8processor = AutoProcessor.from_pretrained("prithivMLmods/proxima-ocr-d.markdown-post3.0.l")
9
10messages = [
11 {
12 "role": "user",
13 "content": [
14 {
15 "type": "image",
16 "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
17 },
18 {"type": "text", "text": "Convert to Markdown."},
19 ],
20 }
21]
22
23text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
24image_inputs, video_inputs = process_vision_info(messages)
25inputs = processor(
26 text=[text],
27 images=image_inputs,
28 videos=video_inputs,
29 padding=True,
30 return_tensors="pt",
31)
32inputs = inputs.to("cuda")
33
34generated_ids = model.generate(**inputs, max_new_tokens=2048)
35generated_ids_trimmed = [
36 out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
37]
38output_text = processor.batch_decode(
39 generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
40)
41print(output_text)