DeepSeek-V4.1-Flash Vision API: Cách gửi ảnh đến mô hình đa phương thức gốc của DeepSeek

Gửi hình ảnh đến DeepSeek-V4.1-Flash qua ID deepseek-flash: các định dạng base64, URL và ID tệp, trường chi tiết, giá hình ảnh và một vòng lặp kiểm tra Apidog.

Ashley Innocent

Ashley Innocent

10 tháng 9 2026

DeepSeek-V4.1-Flash Vision API: Cách gửi ảnh đến mô hình đa phương thức gốc của DeepSeek

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Hỗ trợ thị giác của DeepSeek không còn là dự án phụ vào ngày 10 tháng 9 năm 2026. Với việc phát hành GA của DeepSeek-V4.1-Flash, đầu vào hình ảnh nằm trong mô hình chính đằng sau một ID duy nhất, deepseek-flash. Không có bản dựng thị giác riêng biệt và không có hậu tố “Exp”. Thông báo phát hành ngừng hỗ trợ cả deepseek-v4-flashdeepseek-v4-flash-vision-exp; các yêu cầu tới một trong hai tên này hiện đều được chuyển đến V4.1-Flash.

Điều đó quan trọng nếu bạn đã xây dựng trên điểm cuối thử nghiệm ba tuần trước. Định dạng yêu cầu mà bạn đã viết cho V4-Flash-Vision-Exp vẫn hoạt động, nhưng mô hình đọc hình ảnh của bạn là một mô hình mới: 763B tham số, với bộ mã hóa thị giác được đào tạo từ đầu cùng với phần lõi xử lý văn bản. Hướng dẫn này bao gồm ý nghĩa thực tế của “đa phương thức tự nhiên”, ba cách để gửi hình ảnh, tham số detail, chi phí hình ảnh và cách xây dựng một bài kiểm tra thị giác có thể lặp lại trong Apidog để chứng minh rằng tên cũ và tên mới hoạt động theo cùng một cách.

TÓM TẮT

“Đa phương thức tự nhiên” có nghĩa là gì ở đây

Vision-Exp đã gắn một bộ mã hóa hình ảnh vào một mô hình văn bản hoàn chỉnh. V4.1-Flash làm ngược lại. Theo thẻ mô hình, hình ảnh là một phần của tập dữ liệu tiền huấn luyện 45T token ngay từ đầu, và bộ mã hóa là một DeepSeek-ViT mới được đào tạo từ đầu thay vì lấy từ một mô hình thị giác hiện có. Phần lõi là một hỗn hợp chuyên gia 552B tham số; với bộ mã hóa được gắn vào, tổng số đạt 763B. Chỉ 8B tham số hoạt động trong quá trình tiền điền và 16B trong quá trình giải mã, đây là cách một mô hình lớn như vậy vẫn chạy ở tốc độ Flash và giá Flash. V4-Flash, mô hình chỉ văn bản trong hướng dẫn API V4-Flash, là cơ sở mà Vision-Exp đã mở rộng.

DeepSeek báo cáo bốn điểm số thị giác này trong thẻ mô hình. Đây là các số liệu đo lường của nhà cung cấp, vì vậy hãy coi chúng là tuyên bố cho đến khi bạn đã xử lý các tài liệu của riêng mình thông qua API.

Điểm chuẩn Nội dung đo lường V4.1-Flash
MMMU-Pro Các câu hỏi cấp độ đại học cần cả hình ảnh và văn bản để trả lời 56.5
CVBench Đếm, sắp xếp độ sâu và mối quan hệ không gian trong ảnh tự nhiên 77.9
DocVQA Trả lời câu hỏi trên các tài liệu và biểu mẫu đã quét 95.6
RefCOCO Xác định vị trí đối tượng mà một cụm từ đề cập đến bên trong một hình ảnh 86.0

Đối với người dùng API, DocVQA và RefCOCO là những hàng cần chú ý. QA tài liệu là điểm số đằng sau việc trích xuất hóa đơn và biểu mẫu. RefCOCO là sự liên kết: khi được cung cấp “nút Gửi bên dưới trường email”, mô hình có thể tìm thấy nó không? Kỹ năng đó biến ảnh chụp màn hình thành các hành động của tác nhân. Tổng quan kiến trúc bao gồm khía cạnh văn bản và báo cáo công nghệ một cách sâu sắc hơn.

Định dạng yêu cầu: ba cách để cung cấp hình ảnh

Không có gì về định dạng wireframe thay đổi. Gọi điểm cuối Chat Completions tại https://api.deepseek.com bằng OpenAI SDK, đặt các phần văn bản và hình ảnh vào cùng một mảng content, và đặt mô hình thành deepseek-flash. Dưới đây là một cuộc gọi đầy đủ biến hóa đơn thành JSON:

import base64, json
from openai import OpenAI

client = OpenAI(api_key="YOUR_DEEPSEEK_KEY", base_url="https://api.deepseek.com")

with open("invoice-2026-0912.png", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode()

schema_hint = (
    "Return only JSON with keys: invoice_number (string), issue_date (YYYY-MM-DD), "
    "vendor (string), currency (string), line_items (array of {description, quantity, "
    "unit_price, amount}), subtotal, tax, total (numbers)."
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": schema_hint},
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/png;base64,{image_b64}",
                    "detail": "high",
                },
            },
        ],
    }],
    temperature=1.0,
    max_tokens=2048,
)

invoice = json.loads(response.choices[0].message.content)
print(invoice["invoice_number"], invoice["total"])
print(response.usage.prompt_tokens, "prompt tokens")

Đó là tùy chọn một, base64 nội tuyến: độc lập, giới hạn 32 MiB mỗi hình ảnh, và phù hợp cho các cuộc gọi một lần hoặc các tệp không bao giờ rời khỏi mạng của bạn.

Tùy chọn hai là URL bên ngoài. Nếu hình ảnh đã có liên kết công khai trên CDN hoặc trong kho lưu trữ đối tượng, hãy bỏ qua việc mã hóa và chuyển liên kết (tối đa 8.192 ký tự). Yêu cầu curl này đọc một biểu đồ giá được lưu trữ:

curl https://api.deepseek.com/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-flash",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "List every plan name and its monthly price from this chart as a JSON array."},
        {"type": "image_url", "image_url": {"url": "https://assets.example-saas.com/pricing/plans-q3.png", "detail": "auto"}}
      ]
    }]
  }'

Tùy chọn ba là ID tệp. Tải hình ảnh lên một lần thông qua API Tệp của DeepSeek, sau đó tham chiếu nó bằng một phần file thay vì gửi lại các byte:

{"type": "file", "file": {"file_id": "file-api-xxxxxxxxxxxxxxxx"}}

Chọn ID tệp bất cứ khi nào cùng một hình ảnh xuất hiện trong nhiều yêu cầu, chẳng hạn như ảnh chụp màn hình tham chiếu mà mỗi bài kiểm tra trong một bộ so sánh. Hướng dẫn chi tiết về tham số có trong hướng dẫn API V4.1-Flash.

Tham số detail và giới hạn yêu cầu

detail là tùy chọn và nằm bên trong đối tượng image_url. Ba giá trị được kế thừa từ Vision-Exp:

Các giới hạn bạn sẽ gặp trước tiên:

Giới hạn Giá trị
Hình ảnh base64 nội tuyến tối đa 32 MiB
Chiều dài URL bên ngoài tối đa 8.192 ký tự
Tham chiếu ID tệp được hỗ trợ thông qua API Tệp
Cửa sổ ngữ cảnh 1 triệu token
Đầu ra tối đa 384K token
Các giá trị detail low, high/original, auto

Hướng dẫn Vision-Exp đã liệt kê thêm các giới hạn về số lượng hình ảnh, kích thước nội dung và kích thước pixel. Những giới hạn đó được công bố cho mô hình thử nghiệm; hãy kiểm tra nhật ký thay đổi API trước khi bạn phụ thuộc vào chúng cho V4.1-Flash. Một quy tắc không thay đổi: hình ảnh thuộc về tin nhắn người dùng. Đặt một hình ảnh vào tin nhắn hệ thống hoặc trợ lý và bạn sẽ nhận được lỗi 400.

Chi phí hình ảnh trên deepseek-flash

Không có giá riêng cho thị giác. Hình ảnh được tính phí dưới dạng token đầu vào theo mức Flash từ trang giá, có hiệu lực từ ngày 10 tháng 9 năm 2026 lúc 04:00 UTC:

deepseek-flash, mỗi 1 triệu token Ngoài giờ cao điểm Giờ cao điểm
Đầu vào, trúng cache $0.003 $0.006
Đầu vào, trượt cache $0.15 $0.30
Đầu ra $0.60 $1.20

Giờ cao điểm là từ Thứ Hai đến Thứ Sáu, từ 01:00 đến 04:00 và từ 06:00 đến 10:00 UTC; ngoài giờ cao điểm có giá bằng một nửa. Trên Vision-Exp, mỗi hình ảnh được tính phí không quá 384 token đầu vào. Việc giới hạn đó có được chuyển nguyên vẹn sang V4.1-Flash hay không cần [KIỂM TRA] trong tài liệu. usage.prompt_tokens của mỗi phản hồi báo cáo số lượng thực tế, đó là lý do tại sao ví dụ Python lại in nó ra.

Nếu giới hạn 384 token được giữ nguyên, một hình ảnh có giá khoảng 0,000115 USD ở mức giá trượt cache cao điểm và bằng một nửa ngoài giờ cao điểm, vì vậy một nghìn hóa đơn có tổng chi phí đầu vào hình ảnh khoảng 0,12 USD. Đầu ra chiếm ưu thế trong bất kỳ quy trình thực tế nào: 400 token JSON cho mỗi hóa đơn có giá cao hơn khoảng bốn lần so với chính hình ảnh đó ở mức cao điểm. Đòn bẩy là một lược đồ phản hồi chặt chẽ, chứ không phải việc giảm kích thước hình ảnh. Các phép tính về giờ cao điểm, ngoài giờ cao điểm và trúng cache được trình bày chi tiết trong giải thích về giá DeepSeek-V4.1-Flash; phiên bản tóm tắt là đầu vào trượt cache rẻ hơn 32% so với Vision-Exp tính phí vào tháng 8.

Ba trường hợp sử dụng đáng để thử nghiệm

Kiểm tra điểm cuối thị giác trong Apidog

Các yêu cầu thị giác rất khó lặp lại bằng tay: một blob base64 làm cho nội dung JSON trở nên khó đọc, và việc so sánh các cài đặt detail có nghĩa là phải xử lý các payload gần như giống hệt nhau. Dưới đây là một vòng lặp vẫn dễ đọc và chạy lại chỉ bằng một cú nhấp chuột.

  1. Thiết lập môi trường. Tạo các biến cho base_url, api_key, model (deepseek-flash) và detail (high). Việc chuyển đổi mức độ chi tiết sau này chỉ là thay đổi trong danh sách thả xuống, không phải chỉnh sửa payload.
  2. Mã hóa hình ảnh trong một script tiền yêu cầu. Thay vì dán base64 vào phần nội dung, hãy để một script tiền yêu cầu mã hóa tệp mẫu và ghi kết quả vào biến image_b64. Nội dung hiển thị vẫn chỉ vài dòng, và việc thay đổi hình ảnh kiểm tra có nghĩa là thay đổi một đường dẫn.
  3. Lưu nội dung yêu cầu với các biến. Sử dụng "model": "{{model}}", "detail": "{{detail}}", và "url": "data:image/png;base64,{{image_b64}}". Lưu nó dưới dạng trường hợp kiểm tra để có thể tái sử dụng.
  4. Xác nhận hình dạng JSON. Xác nhận rằng phản hồi được phân tích cú pháp là JSON, invoice_number là một chuỗi không rỗng, line_items là một mảng không rỗng, total là một số, và usage.prompt_tokens nằm dưới ngưỡng bạn chọn. Điều đó biến “trông ổn” thành đạt/không đạt.
  5. Xác nhận rằng tên cũ được định tuyến đến cùng một mô hình. Nhân bản yêu cầu đã lưu, đặt model thành deepseek-v4-flash-vision-exp, và chạy cả hai trong một kịch bản kiểm tra với cùng một hình ảnh. So sánh các trường được trích xuất và số lượng usage.prompt_tokens. Kết quả khớp nhau xác nhận những gì thông báo phát hành đã nêu: cả hai tên đều truy cập V4.1-Flash, vì vậy bạn có thể đổi tên trong cấu hình của mình một cách tự tin.
  6. Chạy nó trong CI. Chạy kịch bản với apidog-cli trên mỗi thay đổi nhắc nhở, để một lỗi hồi quy lược đồ xuất hiện trước khi đưa vào sản xuất.

Tải Apidog và bộ công cụ mất khoảng mười lăm phút để xây dựng. Apidog kiểm tra lớp API, không phải máy chủ mô hình, vì vậy cùng một kịch bản hoạt động với bất kỳ điểm cuối tương thích OpenAI nào bạn định tuyến sau này.

Điều này có ý nghĩa gì đối với bạn

Điểm cuối thử nghiệm đã chứng minh định dạng yêu cầu và mức giá. V4.1-Flash giữ cả hai và thay thế bằng một mô hình đã xử lý hình ảnh ngay từ token huấn luyện đầu tiên của nó. Hướng client của bạn đến deepseek-flash, giữ detail trong một biến, xác nhận định dạng JSON bạn nhận được, và chạy tên cũ thông qua cùng một kịch bản Apidog một lần để xác nhận việc định tuyến lại. Sau đó, câu hỏi duy nhất còn lại là độ chính xác trên các tài liệu của riêng bạn, và bây giờ bạn đã có một bài kiểm tra để trả lời câu hỏi đó.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API