{"product_id":"multi-modal-ai-kết-hợp-text-image-va-code-với-claude","title":"Multi-modal AI — Kết hợp text, image và code với Claude","description":"\n\u003ch2\u003eClaude Multimodal là gì?\u003c\/h2\u003e\n\u003cp\u003eClaude không chỉ xử lý văn bản — từ Claude 3 trở đi, tất cả các model (Opus 4, Sonnet 4, Haiku 3.5) đều hỗ trợ vision, tức là khả năng phân tích và hiểu nội dung hình ảnh. Bạn có thể gửi ảnh chụp màn hình, biểu đồ, sơ đồ, tài liệu scan, ảnh sản phẩm, hay bất kỳ hình ảnh nào và Claude sẽ phân tích cùng với text prompt của bạn.\u003c\/p\u003e\n\n\u003cp\u003eKhả năng này mở ra nhiều use cases thực tế: phân tích tài liệu không có text layer, đọc biểu đồ\/bảng số liệu từ ảnh, review UI\/UX design, phân tích code từ screenshot, hay OCR cho tài liệu tiếng Việt.\u003c\/p\u003e\n\n\u003ch2\u003eGửi hình ảnh qua API\u003c\/h2\u003e\n\u003cp\u003eCó hai cách gửi hình ảnh: base64 encoding hoặc URL.\u003c\/p\u003e\n\n\u003ch3\u003eCách 1: Base64 encoding (cho file local)\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eimport anthropic\nimport base64\n\nclient = anthropic.Anthropic()\n\n# Đọc và encode hình ảnh\nwith open(\"chart.png\", \"rb\") as f:\n    image_data = base64.standard_b64encode(f.read()).decode(\"utf-8\")\n\nresponse = client.messages.create(\n    model=\"claude-sonnet-4-5\",\n    max_tokens=1024,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"image\",\n                    \"source\": {\n                        \"type\": \"base64\",\n                        \"media_type\": \"image\/png\",\n                        \"data\": image_data\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Phân tích biểu đồ này và cho tôi biết xu hướng chính.\"\n                }\n            ]\n        }\n    ]\n)\nprint(response.content[0].text)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eCách 2: URL (cho hình ảnh public)\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eresponse = client.messages.create(\n    model=\"claude-sonnet-4-5\",\n    max_tokens=1024,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"image\",\n                    \"source\": {\n                        \"type\": \"url\",\n                        \"url\": \"https:\/\/example.com\/product-screenshot.png\"\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Mô tả UI\/UX của màn hình này và đề xuất cải thiện.\"\n                }\n            ]\n        }\n    ]\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eĐịnh dạng hình ảnh được hỗ trợ\u003c\/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eĐịnh dạng\u003c\/th\u003e\n      \u003cth\u003eMIME type\u003c\/th\u003e\n      \u003cth\u003eGhi chú\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eJPEG\u003c\/td\u003e\n      \u003ctd\u003eimage\/jpeg\u003c\/td\u003e\n      \u003ctd\u003ePhổ biến nhất, file nhỏ\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003ePNG\u003c\/td\u003e\n      \u003ctd\u003eimage\/png\u003c\/td\u003e\n      \u003ctd\u003eLossless, tốt cho screenshot\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eGIF\u003c\/td\u003e\n      \u003ctd\u003eimage\/gif\u003c\/td\u003e\n      \u003ctd\u003eChỉ frame đầu tiên được phân tích\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eWebP\u003c\/td\u003e\n      \u003ctd\u003eimage\/webp\u003c\/td\u003e\n      \u003ctd\u003eModern format, hiệu quả\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003ch3\u003eGiới hạn\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eKích thước tối đa: \u003cstrong\u003e5MB per image\u003c\/strong\u003e\n\u003c\/li\u003e\n  \u003cli\u003eSố lượng images per request: không có giới hạn cứng, nhưng context window áp dụng\u003c\/li\u003e\n  \u003cli\u003eĐộ phân giải tối ưu: Claude resize ảnh về max edge 1568px hoặc 1.15MP trước khi xử lý\u003c\/li\u003e\n  \u003cli\u003eẢnh quá nhỏ (dưới 200x200px) có thể giảm chất lượng phân tích\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eImage Token Pricing\u003c\/h2\u003e\n\u003cp\u003eHình ảnh được quy đổi sang tokens để tính giá. Claude dùng công thức:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e# Số tokens của một hình ảnh:\ntokens = (width * height) \/ 750\n\n# Ví dụ:\n# 800x600 PNG = 640 tokens\n# 1920x1080 screenshot = 2765 tokens (Sonnet 4: ~$0.008)\n# 4K image = 13107 tokens (~$0.04 với Sonnet 4)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eClaude tự động resize ảnh lớn để tối ưu tokens. Với ảnh chứa nhiều text nhỏ, nên dùng ảnh độ phân giải cao để tăng độ chính xác OCR.\u003c\/p\u003e\n\n\u003ch2\u003eDocument Understanding\u003c\/h2\u003e\n\u003cp\u003eClaude xử lý PDF và tài liệu phức tạp rất tốt. Với PDF, bạn có thể gửi trực tiếp qua API:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eimport anthropic\nimport base64\n\nclient = anthropic.Anthropic()\n\nwith open(\"contract.pdf\", \"rb\") as f:\n    pdf_data = base64.standard_b64encode(f.read()).decode(\"utf-8\")\n\nresponse = client.messages.create(\n    model=\"claude-opus-4\",\n    max_tokens=4096,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"document\",\n                    \"source\": {\n                        \"type\": \"base64\",\n                        \"media_type\": \"application\/pdf\",\n                        \"data\": pdf_data\n                    }\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Tóm tắt các điều khoản chính của hợp đồng này.\"\n                }\n            ]\n        }\n    ]\n)\n\n# Với Prompt Caching cho document dài:\nresponse = client.messages.create(\n    model=\"claude-opus-4\",\n    max_tokens=4096,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"document\",\n                    \"source\": {\n                        \"type\": \"base64\",\n                        \"media_type\": \"application\/pdf\",\n                        \"data\": pdf_data\n                    },\n                    \"cache_control\": {\"type\": \"ephemeral\"}\n                },\n                {\n                    \"type\": \"text\",\n                    \"text\": user_question\n                }\n            ]\n        }\n    ]\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eDiagram và Chart Interpretation\u003c\/h2\u003e\n\u003cp\u003eClaude đọc hiểu tốt các loại biểu đồ: line chart, bar chart, pie chart, flowchart, architecture diagram, ERD, và sơ đồ tổ chức. Để có kết quả tốt nhất:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eprompt_for_chart = \"\"\"Phân tích biểu đồ này:\n1. Loại biểu đồ là gì?\n2. Dữ liệu chính được hiển thị là gì?\n3. Xu hướng hoặc patterns nổi bật?\n4. Bất kỳ điểm dữ liệu đáng chú ý nào?\nTrả lời bằng tiếng Việt, súc tích.\"\"\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eOCR Use Cases\u003c\/h2\u003e\n\u003cp\u003eClaude hoạt động như OCR thông minh — không chỉ trích xuất text mà còn hiểu ngữ cảnh và cấu trúc của tài liệu:\u003c\/p\u003e\n\n\u003ch3\u003eHóa đơn và chứng từ\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eresponse = client.messages.create(\n    model=\"claude-sonnet-4-5\",\n    max_tokens=2048,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"image\", \"source\": {\"type\": \"base64\", \"media_type\": \"image\/jpeg\", \"data\": invoice_b64}},\n                {\"type\": \"text\", \"text\": \"\"\"Trích xuất thông tin từ hóa đơn này theo JSON format:\n{\n  \"so_hoa_don\": \"\",\n  \"ngay_hoa_don\": \"\",\n  \"ten_cong_ty\": \"\",\n  \"tong_tien\": \"\",\n  \"thue_vat\": \"\",\n  \"cac_mat_hang\": []\n}\"\"\"}\n            ]\n        }\n    ]\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eTài liệu tiếng Việt\u003c\/h3\u003e\n\u003cp\u003eClaude xử lý khá tốt tiếng Việt có dấu trong hình ảnh, kể cả font chữ in đậm, chữ viết tay in hoa, và tài liệu scan chất lượng trung bình.\u003c\/p\u003e\n\n\u003ch2\u003eSo sánh nhiều hình ảnh\u003c\/h2\u003e\n\u003cp\u003eĐây là điểm mạnh của Claude multimodal — phân tích và so sánh nhiều ảnh trong một request:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eresponse = client.messages.create(\n    model=\"claude-opus-4\",\n    max_tokens=2048,\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"text\", \"text\": \"So sánh hai design này:\"},\n                {\"type\": \"image\", \"source\": {\"type\": \"base64\", \"media_type\": \"image\/png\", \"data\": design_v1}},\n                {\"type\": \"text\", \"text\": \"Design V1 vs\"},\n                {\"type\": \"image\", \"source\": {\"type\": \"base64\", \"media_type\": \"image\/png\", \"data\": design_v2}},\n                {\"type\": \"text\", \"text\": \"\"\"Design V2.\nĐánh giá:\n1. Tính dễ đọc (readability)\n2. Cấu trúc thông tin (information hierarchy)\n3. Phù hợp với mobile\n4. Khuyến nghị version nào và tại sao\"\"\"}\n            ]\n        }\n    ]\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eImage + Text Prompting Patterns\u003c\/h2\u003e\n\n\u003ch3\u003ePattern 1: Describe then ask\u003c\/h3\u003e\n\u003cp\u003eYêu cầu Claude mô tả ảnh trước, sau đó đặt câu hỏi cụ thể. Hữu ích khi bạn không chắc ảnh chứa gì:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\"Mô tả chi tiết nội dung của hình ảnh này. Sau đó cho tôi biết [câu hỏi cụ thể].\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003ePattern 2: Structured extraction\u003c\/h3\u003e\n\u003cp\u003eYêu cầu output dạng JSON hoặc table để dễ parse:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\"Trích xuất tất cả thông tin sản phẩm từ ảnh catalogue này theo định dạng JSON.\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003ePattern 3: Critique and improve\u003c\/h3\u003e\n\u003cp\u003eĐặc biệt hiệu quả cho design review:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\"Đây là landing page hiện tại của tôi. Phân tích và liệt kê 5 vấn đề cụ thể về UX, sau đó đề xuất cải thiện có thể thực hiện ngay.\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eBatch Processing\u003c\/h2\u003e\n\u003cp\u003eKhi cần xử lý nhiều ảnh, dùng Batch API để tối ưu chi phí (giảm 50%):\n\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003eimport anthropic\n\nclient = anthropic.Anthropic()\n\nrequests = []\nfor i, image_b64 in enumerate(images_list):\n    requests.append({\n        \"custom_id\": f\"img-{i}\",\n        \"params\": {\n            \"model\": \"claude-haiku-3-5\",\n            \"max_tokens\": 512,\n            \"messages\": [\n                {\n                    \"role\": \"user\",\n                    \"content\": [\n                        {\"type\": \"image\", \"source\": {\"type\": \"base64\", \"media_type\": \"image\/jpeg\", \"data\": image_b64}},\n                        {\"type\": \"text\", \"text\": \"Mô tả ngắn gọn nội dung hình ảnh (1-2 câu).\"}\n                    ]\n                }\n            ]\n        }\n    })\n\nbatch = client.messages.batches.create(requests=requests)\nprint(f\"Batch ID: {batch.id}\")\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eLimitations\u003c\/h2\u003e\n\u003cul\u003e\n  \u003cli\u003eClaude không thể xử lý video — chỉ ảnh tĩnh\u003c\/li\u003e\n  \u003cli\u003eẢnh có text rất nhỏ (dưới 10px) có thể bị đọc sai\u003c\/li\u003e\n  \u003cli\u003eChữ viết tay khó đọc có thể gặp lỗi OCR\u003c\/li\u003e\n  \u003cli\u003eẢnh y tế (X-quang, MRI) cần được review bởi chuyên gia — không dùng cho chẩn đoán lâm sàng\u003c\/li\u003e\n  \u003cli\u003eMột số loại biểu đồ phức tạp (3D charts, heavily overlapping data) có thể không đọc chính xác\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eKết luận\u003c\/h2\u003e\n\u003cp\u003eKhả năng multimodal của Claude mở ra nhiều ứng dụng thực tế mà text-only AI không thể làm được. Từ tự động hóa xử lý hóa đơn, phân tích dữ liệu từ báo cáo scan, đến review thiết kế và code review từ screenshot — vision API biến Claude thành công cụ đa năng thực sự. Với pricing theo tokens và Batch API, chi phí xử lý hình ảnh rất hợp lý cho most use cases.\u003c\/p\u003e\n","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":47721072197844,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0821\/0264\/9044\/files\/multi-modal-ai-k_t-h_p-text-image-va-code-v_i-claude.jpg?v=1774521638","url":"https:\/\/claude.vn\/products\/multi-modal-ai-k%e1%ba%bft-h%e1%bb%a3p-text-image-va-code-v%e1%bb%9bi-claude","provider":"CLAUDE.VN","version":"1.0","type":"link"}