Document Parsing - best practices
Quick Recommendations
Section titled “Quick Recommendations”| Use Case | Format | Resize | Notes |
|---|---|---|---|
| General Parsing (recommended) | WebP 90 | 2048/1536px long side | Good balance for most workloads |
| Tables, financial, high precision docs | PNG or JPEG 95 | 2048px long side | Preserves fine lines and cell borders |
For throughput: resize to 1536px on the long side before sending. Minimal loss in parsing quality while significantly improving throughput.
Resize and Convert
Section titled “Resize and Convert”The key operation is thumbnail which resizes in-place while preserving aspect ratio:
from PIL import Image
IMG_MAX_SIZE = 2048
with Image.open("page.png") as img:
img.thumbnail(
(IMG_MAX_SIZE, IMG_MAX_SIZE), Image.Resampling.LANCZOS
)
if img.mode != "RGB":
img = img.convert("RGB")
img.save("page.webp", format="WEBP", quality=90)Send a Parse Request
Section titled “Send a Parse Request”import os
import base64
import cohere
co = cohere.ClientV2(
"COHERE_API_KEY"
) # Get your free API key here: https://dashboard.cohere.com/api-keys
with open("page.webp", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
data_uri = f"data:image/webp;base64,{b64}"
response = co.parse(
model="parse-v5.0",
document={"type": "image_url", "image_url": data_uri},
)
for page in response.pages:
print(page.markdown.content)