Views
No views yet
1vllm serve buddhist-nlp/bdrc-mitra-ocr-qwen35-0.8b \
2 --served-model-name ocr --trust-remote-code \
3 --max-model-len 16384 --gpu-memory-utilization 0.41import base64
2from openai import OpenAI
3
4client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
5
6with open("page.jpg", "rb") as f:
7 b64 = base64.b64encode(f.read()).decode()
8
9resp = client.chat.completions.create(
10 model="ocr",
11 messages=[{
12 "role": "user",
13 "content": [
14 {"type": "image_url",
15 "image_url": {"url": f"data:image/jpeg;base64,{b64}"}},
16 {"type": "text", "text": "Extract all text from this image"},
17 ],
18 }],
19 temperature=0.0,
20 max_tokens=2048,
21)
22print(resp.choices[0].message.content)1import torch
2from transformers import AutoModelForImageTextToText, AutoProcessor
3from PIL import Image
4
5model_id = "buddhist-nlp/bdrc-mitra-ocr-qwen35-0.8b"
6model = AutoModelForImageTextToText.from_pretrained(
7 model_id, dtype=torch.bfloat16, device_map="cuda", trust_remote_code=True
8)
9processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
10
11image = Image.open("page.jpg").convert("RGB")
12messages = [{
13 "role": "user",
14 "content": [
15 {"type": "image", "image": image},
16 {"type": "text", "text": "Extract all text from this image"},
17 ],
18}]
19inputs = processor.apply_chat_template(
20 messages, add_generation_prompt=True, tokenize=True,
21 return_dict=True, return_tensors="pt",
22).to(model.device)
23out = model.generate(**inputs, max_new_tokens=2048, do_sample=False)
24print(processor.decode(out[0][inputs["input_ids"].shape[1]:],
25 skip_special_tokens=True))Extract all text from this image — this is the
instruction the model was tuned for.temperature 0.0) works well; max_tokens 2048
covers a dense pecha page.\n. No markup or coordinates.