# Quy trình OCR Myanmar-Pāḷi (4 bước)

## Model được config

### Model khuyến nghị cho OCR PDF/Image
- **`qwen/qwen3-vl-235b-a22b-instruct`** - Qwen3 VL 235B A22B Instruct
  - Chuyên cho vision/language (PDF, image)
  - Context: 262K tokens, Max output: 8K tokens
  - Cost: $0.20/1M input, $0.88/1M output
  - **Dùng cho OCR Myanmar-Pāḷi**

- **`qwen/qwen3-vl-235b-a22b-thinking`** - Qwen3 VL 235B A22B Thinking
  - Có reasoning, chậm hơn nhưng chính xác hơn
  - Cost: $0.26/1M input, $2.60/1M output
  - Dùng khi cần độ chính xác cao

### Model default (fallback)
- **`openrouter/qwen/qwen3.5-397b-a17b`** - Default hiện tại
  - Cũng hỗ trợ image nhưng không chuyên bằng VL
  - Dùng khi model VL không khả dụng

---

## Quy trình chuẩn (4 bước)

### Bước 1: OCR với Qwen VL
```bash
# Qua tool pdf với model string chính xác
model: "qwen/qwen3-vl-235b-a22b-instruct"
prompt: "Trích xuất văn bản Myanmar từ file PDF này. Yêu cầu: Giữ nguyên văn tuyệt đối (literal transcription), không được tự ý chỉnh sửa, làm sạch hay thay đổi bất kỳ ký tự nào, kể cả lỗi lặp từ hay ký tự cổ. Xuất ra định dạng markdown."
```

**Lưu file:** `TenFile-qwen.md`

### Bước 2: Hậu xử lý script
```bash
python3 /opt/openclaw/.openclaw/workspace/scripts/fix_myanmar_ocr.py /path/to/TenFile-qwen.md
```

Script tự động sửa:
- Viết tắt cổ (၎ → လည်းကောင်း)
- Nhẫn ဖ/ဘ (ဘွယ် → ဖွယ်)
- Lỗi dấu (လည်းလျောင်း → လဲလျောင်း)
- Thiếu ký tự (တွေမြင် → တွေ့မြင်)
- Ngữ cảnh (ရှေ့ → ရှေး trong 'ရှေးဆရာ')

### Bước 3: Đọc hiệu đính như sư Myanmar
**Thời gian:** 5-10 phút/5 trang

**Checklist quét lỗi:**
- [ ] Số `၈` → `ဂ` (lỗi nghiêm trọng, 7+ lần/batch)
- [ ] Tên riêng: `ကာဠာဝက` → `အာဠာဝက`, Channa, Sakka
- [ ] `ဥုး` → `ဦး` (danh xưng)
- [ ] `မျက်ခုန်း` → `မျက်ခုံး`
- [ ] `လက်ျာရစ်` → `လက်ယာရစ်`
- [ ] `သူတပါး` → `သူတစ်ပါး`
- [ ] `ကိုရင်တိုလဲ` → `ကိုရင်တို့လဲ`
- [ ] `ဆရာတို` → `ဆရာတို့`
- [ ] `စဉ်.စား` → `စဉ်းစား`
- [ ] `တာဘဲ` → `တာပဲ`
- [ ] `သတိုးသား` → `သတို့သား`

**Lưu file:** `TenFile-edited.md`

### Bước 4: Commit vào workspace
```bash
cd /opt/openclaw/.openclaw/workspace
git add "path/TenFile-qwen.md" "path/TenFile-edited.md"
git commit -m "OCR TenFile: N trang, hoàn thành quy trình 4 bước"
```

---

## Thống kê chất lượng

| Batch | Trang | Độ chính xác | Ghi chú |
|-------|-------|--------------|---------|
| 151-155 | 5 | 90-92% | Khá tốt |
| 191-195 | 5 | 92-94% | Tốt nhất |
| 201-205 | 5 | 86-88% | Tự mãn → lỗi nhiều |
| 206-210 | 5 | 90-91% | Còn lỗi số ၈→ဂ |

**Mục tiêu:** 95-97% sau bước 4

---

## Lỗi hệ thống đã biết (80+ lỗi)

Xem chi tiết: `obsidian/Tam-Bao-OCR-Checklist.md`

### Nghiêm trọng
- Số `၈` (8) bị OCR thành `ဂ` (ga) - 7+ lần/batch
- Tên riêng Pāḷi: Channa → ခန္နာ, Sakka → သက္က
- `အာဠာဝက` → `ကာဠာဝက`

### Phổ biến
- Thiếu dấu `့` (dot above)
- Nhầm `ာ` ↔ `ေ`
- `ဖ` ↔ `ဘ`
- `ပ` ↔ `န`

### Trợ từ
- `လျင်` → `လျှင်` (81+ lần)
- `သူတပါး` → `သူတစ်ပါး`

### Từ vựng
- `ဦးခေါင်း` → `ဥုးခေါင်း`
- `မျက်ခုံး` → `မျက်ခုန်း`
- `လက်ယာရစ်` → `လက်ျာရစ်`

---

## Config OpenRouter

File: `/opt/openclaw/config/openclaw.json`

```json
"models": {
  "providers": {
    "openrouter": {
      "models": [
        {
          "id": "qwen/qwen3-vl-235b-a22b-instruct",
          "name": "Qwen3 VL 235B A22B Instruct (OCR)"
        },
        {
          "id": "qwen/qwen3-vl-235b-a22b-thinking",
          "name": "Qwen3 VL 235B A22B Thinking (OCR + Reasoning)"
        }
      ]
    }
  }
}
```

**Restart gateway sau khi edit:**
```bash
openclaw gateway restart
# Hoặc qua tool: gateway(action="restart")
```

---

## Bài học quan trọng

> **"Appamādena Sampādetha"** — "Hãy tinh tấn, chớ có phóng dật!"

- Không tự mãn vì batch trước tốt
- Tên riêng Pāḷi PHẢI kiểm tra kỹ (dừng 3 giây)
- Luôn kiểm tra file sau khi chạy script hậu xử lý
- Checklist sau OCR là bắt buộc, không được bỏ qua

---

*Cập nhật: 2026-04-23*
