Hướng Dẫn Vision Claude — Phân Tích Hình Ảnh với Claude API
Hướng Dẫn Vision Claude — Phân Tích Hình Ảnh với Claude API
Tính năng Vision của Claude cho phép AI hiểu và phân tích hình ảnh, mở ra khả năng tương tác đa phương thức (multimodal) đầy thú vị. Bạn có thể gửi ảnh sản phẩm, tài liệu scan, biểu đồ, hay bất kỳ hình ảnh nào để Claude phân tích và đưa ra insight.
Đây là tính năng đặc biệt hữu ích cho doanh nghiệp SME Việt Nam — từ kiểm tra chất lượng sản phẩm, đọc hóa đơn scan, đến phân tích biểu đồ kinh doanh. Xem thêm tổng quan Claude trên Agentwork.vn và hướng dẫn Messages API.
Cách Sử Dụng Vision
Bạn có thể sử dụng tính năng Vision của Claude qua 3 cách:
- claude.ai: Upload hình ảnh như một file thông thường, hoặc kéo thả trực tiếp vào cửa sổ chat
- Console Workbench: Có nút thêm hình ảnh ở góc trên bên phải của mỗi khối User message
- API request: Gửi hình ảnh trực tiếp qua API — xem ví dụ code bên dưới
Kích Thước, Giới Hạn và Chi Phí Hình Ảnh
Giới hạn số lượng
Bạn có thể gửi nhiều hình ảnh trong một request: tối đa 20 ảnh trên claude.ai, và tối đa 600 ảnh cho API request (100 ảnh với các model có context window 200k token). Claude phân tích tất cả hình ảnh được cung cấp khi xây dựng phản hồi — rất hữu ích khi cần so sánh hoặc đối chiếu nhiều ảnh cùng lúc.
Hình ảnh lớn hơn 8000x8000 px sẽ bị từ chối. Nếu gửi hơn 20 ảnh trong một API request, giới hạn là 2000x2000 px. Dù API hỗ trợ tối đa 600 ảnh, giới hạn kích thước request (32 MB cho endpoint tiêu chuẩn) có thể đạt được trước. Hãy cân nhắc dùng Files API và tham chiếu qua
file_id để giảm payload.
Kích thước tối ưu
Để đạt hiệu suất tốt nhất, hãy resize hình ảnh trước khi upload nếu chúng quá lớn. Nếu cạnh dài của ảnh vượt quá 1568 px, hoặc ảnh có hơn ~1,600 tokens, hệ thống sẽ tự scale down (giữ tỷ lệ).
Để cải thiện time-to-first-token, hãy resize ảnh xuống không quá 1.15 megapixel (và trong 1568 px ở cả hai chiều). Ảnh quá nhỏ (dưới 200 px) có thể làm giảm chất lượng output.
Bảng kích thước tối đa không cần resize (theo tỷ lệ phổ biến) — với Claude Sonnet 4.6, các ảnh này dùng khoảng 1,600 tokens và ~$4.80/1k ảnh:
| Tỷ lệ ảnh | Kích thước tối đa |
|---|---|
| 1:1 (vuông) | 1092 × 1092 px |
| 3:4 (dọc) | 951 × 1268 px |
| 2:3 | 896 × 1344 px |
| 9:16 (mobile) | 819 × 1456 px |
| 1:2 | 784 × 1568 px |
Ước tính chi phí
Mỗi hình ảnh bạn gửi tính vào token usage. Công thức ước tính: tokens = (chiều rộng px × chiều cao px) / 750
Ví dụ với Claude Sonnet 4.6 ($3/triệu input token):
| Kích thước ảnh | Số token | Chi phí/ảnh | Chi phí/1k ảnh |
|---|---|---|---|
| 200×200 px (0.04 MP) | ~54 | ~$0.00016 | ~$0.16 |
| 1000×1000 px (1 MP) | ~1,334 | ~$0.004 | ~$4.00 |
| 1092×1092 px (1.19 MP) | ~1,590 | ~$0.0048 | ~$4.80 |
Ví Dụ Code
Có 3 cách gửi hình ảnh đến Claude qua API:
1. Base64-encoded image (mã hóa trực tiếp)
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg", # hoặc image/png, image/gif, image/webp
"data": "<BASE64_IMAGE_DATA>",
},
},
{"type": "text", "text": "Mô tả hình ảnh này."},
],
}
],
)
print(message)
2. URL reference (tham chiếu qua URL)
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/hinh-anh.jpg",
},
},
{"type": "text", "text": "Mô tả hình ảnh này."},
],
}
],
)
print(message)
3. Files API (upload một lần, dùng nhiều lần)
Cách tốt nhất cho hình ảnh dùng lặp lại hoặc trong multi-turn conversation — tránh gửi lại bytes ảnh mỗi lần:
import anthropic
client = anthropic.Anthropic()
# Bước 1: Upload hình ảnh lên Files API
with open("anh-san-pham.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("anh-san-pham.jpg", f, "image/jpeg"))
# Bước 2: Dùng file_id thay vì gửi lại bytes
message = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
betas=["files-api-2025-04-14"],
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {"type": "file", "file_id": file_upload.id},
},
{"type": "text", "text": "Phân tích hình ảnh sản phẩm này."},
],
}
],
)
print(message.content)
Trong hội thoại multi-turn, mỗi request phải gửi lại toàn bộ lịch sử. Nếu ảnh được mã hóa base64, toàn bộ bytes ảnh sẽ được gửi lại mỗi lần — khiến payload ngày càng lớn. Files API giải quyết vấn đề này bằng cách chỉ cần tham chiếu qua
file_id.
Mẹo Viết Prompt Hiệu Quả với Hình Ảnh
Nhiều kỹ thuật prompt engineering dành cho văn bản cũng áp dụng được với hình ảnh. Một số best practices:
Đặt hình ảnh trước câu hỏi
Tương tự như việc đặt tài liệu dài trước query trong text prompt, Claude hoạt động tốt hơn khi hình ảnh xuất hiện trước văn bản. Ưu tiên cấu trúc: hình ảnh → câu hỏi.
Xử lý nhiều hình ảnh
Khi có nhiều ảnh, giới thiệu từng ảnh bằng nhãn Hình 1:, Hình 2:... Không cần dòng trống giữa ảnh hay giữa ảnh và prompt.
# Ví dụ: So sánh 2 sản phẩm
{
"role": "user",
"content": [
{"type": "text", "text": "Hình 1:"},
{"type": "image", "source": {"type": "url", "url": "https://example.com/san-pham-a.jpg"}},
{"type": "text", "text": "Hình 2:"},
{"type": "image", "source": {"type": "url", "url": "https://example.com/san-pham-b.jpg"}},
{"type": "text", "text": "So sánh hai sản phẩm này về thiết kế và chất lượng."},
],
}
Đảm bảo chất lượng hình ảnh
- Định dạng hỗ trợ: JPEG, PNG, GIF, WebP
- Độ rõ nét: Tránh ảnh mờ hoặc vỡ pixel
- Văn bản trong ảnh: Đảm bảo đủ lớn và dễ đọc, không crop mất ngữ cảnh quan trọng
Hạn Chế Cần Biết
Vision của Claude rất mạnh nhưng có một số giới hạn quan trọng cần lưu ý:
- Nhận diện người: Claude không thể và sẽ từ chối đặt tên người trong ảnh
- Độ chính xác: Có thể nhầm với ảnh chất lượng thấp, xoay nghiêng, hoặc rất nhỏ (dưới 200 px)
- Lý luận không gian: Khả năng xác định vị trí chính xác còn hạn chế — không nên dùng cho đọc đồng hồ analog hay mô tả vị trí chính xác của quân cờ
- Đếm: Chỉ ước tính gần đúng, không chính xác tuyệt đối với số lượng lớn
- Phát hiện AI: Claude không biết ảnh có phải AI tạo ra hay không — không dùng để detect ảnh giả
- Nội dung không phù hợp: Không xử lý ảnh vi phạm Chính sách Sử dụng Chấp nhận được
- Y tế: Không dùng cho chẩn đoán scan phức tạp (CT, MRI) — không thay thế lời khuyên y tế chuyên nghiệp
Luôn review và xác minh kết quả phân tích ảnh của Claude, đặc biệt với các use case quan trọng. Không dùng Claude cho các tác vụ đòi hỏi độ chính xác tuyệt đối hoặc phân tích ảnh nhạy cảm mà không có con người giám sát.
Câu Hỏi Thường Gặp
Claude hỗ trợ định dạng ảnh nào?
Claude hỗ trợ JPEG, PNG, GIF và WebP: image/jpeg, image/png, image/gif, image/webp.
Giới hạn kích thước file ảnh?
- API: Tối đa 5 MB mỗi ảnh
- claude.ai: Tối đa 10 MB mỗi ảnh
Claude có đọc metadata ảnh không?
Không, Claude không đọc hoặc nhận bất kỳ metadata nào từ ảnh được gửi đến.
Ảnh đã upload có bị lưu lại không?
Không. Upload ảnh là ephemeral — không lưu sau khi request hoàn tất. Dùng Files API nếu cần tái sử dụng.
Claude có thể tạo hoặc chỉnh sửa ảnh không?
Không, Claude chỉ hiểu và phân tích ảnh, không thể tạo, chỉnh sửa hoặc tạo ra hình ảnh mới.
Kết quả phân tích có vẻ sai, phải làm gì?
- Đảm bảo ảnh rõ nét, chất lượng tốt, đúng chiều
- Thử các kỹ thuật prompt engineering khác
- Nếu vẫn sai, báo cáo qua nút thumbs down trên claude.ai hoặc liên hệ support
Tham khảo thêm hướng dẫn Prompt Engineering cho Claude để cải thiện kết quả với hình ảnh.
Xem đầy đủ thông tin về Claude tại trang Claude Anthropic trên Agentwork.vn. Tìm hiểu thêm các nền tảng AI hàng đầu khác phù hợp cho doanh nghiệp Việt Nam.
Đoàn Đình Tỉnh
admin