Bài viết này đề cập đến các ghi chú sử dụng và những điều cần lưu ý cho deepseek-v4-pro-0813. Trên AIHubMix, mô hình này có sẵn thông qua các API Chat Completions, Responses và Messages tương thích với Claude. Xem thêm: Tài liệu API chính thức của DeepSeek.
Các kết luận và phản hồi mẫu "Đã xác minh" trong mỗi phần đến từ các cuộc gọi thực tế được thực hiện vào ngày 2026-08-13 thông qua các API AIHubMix (Chat Completions / Responses / Messages); các mục thông số không được đánh dấu "Đã xác minh" đến từ tài liệu chính thức của DeepSeek.
1. Định vị mô hình và thông số tổng quan
V4 Pro là cấp độ cao cấp của thế hệ V4 của DeepSeek (mô hình nhẹ deepseek-v4-flash là anh em của nó). Dòng phát hành bắt nguồn từ DeepSeek-V4 Preview vào ngày 2026-04-24, và 0813 là nhãn PHIÊN BẢN MÔ HÌNH mà DeepSeek gán cho bản xây dựng hiện tại. Ngoài các thông số thô, bốn điều làm cho nó nổi bật:
- Mô hình biên thưa: 1.6T tổng số tham số / 49B được kích hoạt (kiến trúc MoE, hoặc hỗn hợp chuyên gia — mỗi lần suy diễn chỉ kích hoạt một tập hợp con của các mạng chuyên gia: tổng số tham số xác định khả năng kiến thức, các tham số được kích hoạt xác định chi phí tính toán mỗi lần gọi). Thẻ mô hình liệt kê CSA+HCA hybrid attention, mHC và bộ tối ưu hóa Muon.
- Các trọng số mở dưới MIT:
deepseek-ai/DeepSeek-V4-Prođược công bố trên HuggingFace dưới giấy phép MIT (một trong những giấy phép mã nguồn mở cho phép nhất — việc sử dụng thương mại và phân phối mã nguồn đóng đều được phép) và có thể được tự lưu trữ. MIT là không phổ biến cho một mô hình có kích thước này. Ghi chú tự lưu trữ trong thẻ mô hình cũng gợi ý một cửa sổ ngữ cảnh ≥384K token khi chạy ở Think Max (mức tư duy cao nhất) — đó là hướng dẫn triển khai cho việc tự lưu trữ, không phải là thông số của API được lưu trữ. - Hỗ trợ đa giao thức là chính hãng, không phải dịch thuật bên thứ ba: DeepSeek tự cung cấp một API Chat OpenAI, một điểm cuối tương thích với Anthropic (
/anthropic, ánh xạclaude-opus*vào mô hình này), và API Responses (DeepSeek mô tả hỗ trợ bản địa cho định dạng, với các điều chỉnh cho Codex). Nó cũng cung cấp hoàn thành FIM (fill-in-the-middle) như một tính năng Beta trên một điểm cuối riêng, không phải là một phần của ba API AIHubMix. - Khoảng cách ~120× giữa giá cả cache-hit và cache-miss: Cơ chế định giá được công bố của DeepSeek là cache-hit $0.003625/M so với cache-miss $0.435/M (đầu ra $0.87/M), và việc lưu trữ là tự động mà không cần tham số nào để thiết lập. Đối với các khối lượng công việc tái sử dụng các tiền tố dài (lời nhắc hệ thống, tài liệu dài), khoảng cách đó chiếm ưu thế trong hóa đơn. Giá bán lẻ thực tế là bất cứ điều gì mà trang mô hình hiển thị.
| Mục | Giá trị |
|---|---|
| Tên mô hình trên AIHubMix | deepseek-v4-pro-0813 |
| Cửa sổ ngữ cảnh | 1M token (1,000,000) |
| Đầu ra tối đa | Ngôn từ chính thức là MAX OUTPUT MAXIMUM: 384K (số lượng token chính xác và mặc định không được công bố) |
| Các phương thức đầu vào | Chỉ văn bản. Trang tương thích Responses rõ ràng tuyên bố rằng đầu vào hình ảnh và tệp không được hỗ trợ; trang Messages rõ ràng đánh dấu các khối type="image" là Không Hỗ Trợ; trên Chat Completions, tin nhắn của người dùng content chỉ chấp nhận một chuỗi, không có các phần nội dung đa phương thức |
| Chế độ tư duy | Kết hợp (tư duy / không tư duy), tư duy bật theo mặc định |
| Mức độ tư duy | reasoning_effort chấp nhận low / high / max, mặc định high; medium và xhigh được ánh xạ tới high để tương thích |
| Các API có sẵn | Chat Completions, Responses, Messages (tương thích với Claude) |
Đã xác minh: vượt quámax_tokenssẽ bị từ chối bởi xác thực thay vì bị cắt ngắn một cách im lặng — gửimax_tokens=9999999trả về HTTP 400, và phần lỗi nêu tên trường và đưa ra giới hạn393216.
# max_tokens=9999999 -> HTTP 400
"...max_tokens... 393216"
❗ Hình ảnh không gây ra lỗi, nhưng chúng sẽ bị loại bỏ: ngôn từ chính thức cho API Responses là "Đầu vào hình ảnh và tệp không được hỗ trợ (các phần input_image không gây ra lỗi, nhưng được thay thế bằng văn bản giữ chỗ)" — một phầninput_imagekhông làm thất bại yêu cầu, nó được thay thế bằng văn bản giữ chỗ. Trên Chat Completions, tin nhắn của người dùngcontentchỉ nhận một chuỗi, và trên Messages, các khốitype="image"được đánh dấu là Không Hỗ Trợ. Khi xây dựng định tuyến đa phương thức, đừng bao giờ coi "không có lỗi" là bằng chứng rằng mô hình thực sự đã thấy hình ảnh.
2. Làm thế nào để tắt tư duy? Ba API, Ba hình dạng trường
V4 Pro tư duy theo mặc định: không gửi tham số nào cả và phản hồi sẽ trở lại với nội dung tư duy. Tắt nó đi sử dụng một hình dạng trường khác nhau trên mỗi ba API.
Chat Completions
Sử dụng đối tượng thinking cấp cao nhất.
from openai import OpenAI
client = OpenAI(
base_url="https://aihubmix.com/v1",
api_key="<AIHUBMIX_API_KEY>",
)
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "What is 2 + 2?"}],
extra_body={"thinking": {"type": "disabled"}},
)
# Tư duy bật (mặc định): message.reasoning_content có mặt, reasoning_tokens = 43
# Tư duy tắt (đã tắt): reasoning_content vắng mặt, reasoning_tokens vắng mặt
Đã xác minh: vớithinking.type="disabled", cảmessage.reasoning_contentvàusage.completion_tokens_details.reasoning_tokensbiến mất cùng nhau, điều này xác nhận rằng công tắc đã có hiệu lực.
Responses
Không có công tắc riêng trên Responses; tắt tư duy có nghĩa là thiết lập mức độ thành none.
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="What is 2 + 2?",
reasoning={"effort": "none"},
)
# effort="none": usage.output_tokens_details.reasoning_tokens = 0
# output[0] là mục tin nhắn trực tiếp (không có mục lý luận)
# effort không được thiết lập : đầu ra luôn bắt đầu với một mục lý luận
Đã xác minh:reasoning.effort="none"khác biệt rõ rệt so với mức độ mặc định (các token tư duy giảm xuống 0, mụcreasoningtrong đầu ra biến mất), điều này xác nhận rằng nó đã có hiệu lực.
Messages
Cùng tên và cùng hình dạng như Chat Completions: đối tượng thinking cấp cao nhất.
from anthropic import Anthropic
client = Anthropic(
api_key="<AIHUBMIX_API_KEY>",
base_url="https://aihubmix.com",
)
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
messages=[{"role": "user", "content": "What is 2 + 2?"}],
extra_body={"thinking": {"type": "disabled"}},
)
# Tư duy bật (mặc định): nội dung = [khối tư duy, khối văn bản]
# Tư duy tắt (đã tắt): nội dung = [khối văn bản]
Đã xác minh: khi đã tắt, khốithinkinghoàn toàn biến mất và chỉ còn lại khốitext.
Về các mức độ tư duy:lowvàmaxđều trả về 200 trên Chat Completions trong thử nghiệm (highlà mặc định và áp dụng khi trường bị bỏ qua), nhưng số lượng token tư duy cho cùng một câu hỏi không cho thấy sự khác biệt đơn điệu giữa các mức độ (câu hỏi dễ: low=43 / max=27; câu hỏi khó: low=114 / max=92), và không có gì được phản hồi lại trong phản hồi — các mức độ được chấp nhận, nhưng không có tín hiệu phân biệt nào có thể quan sát được từ phản hồi. Trên Responses, chỉ có mứcnone(tư duy tắt) có thể được xác nhận từ phía phản hồi.
3. Tại sao một cuộc hội thoại nhiều lượt lại đột nhiên trả về 400? Lịch sử tư duy phải được trả lại nguyên văn
Đây là cạm bẫy phổ biến nhất với mô hình này: trong chế độ tư duy, một cuộc hội thoại nhiều lượt phải trả lại nội dung tư duy của lượt trước một cách nguyên văn, nếu không yêu cầu sẽ bị từ chối. Không bị giảm chất lượng, không thấp hơn — một HTTP 400 cứng.
Các API mang nội dung tư duy giống nhau dưới các tên trường khác nhau:
| API | Hình dạng passback | Nội dung lỗi khi thiếu |
|---|---|---|
| Chat Completions | Trường reasoning_content trên tin nhắn trợ lý |
Nội dung `reasoning_content` trong chế độ tư duy phải được trả lại cho API. |
| Responses | Mục đầu ra với type="reasoning" trong mảng input |
Nội dung `reasoning_text` trong chế độ tư duy phải được trả lại cho API. |
| Messages | Khối thinking bên trong các khối nội dung trợ lý |
Nội dung `content[].thinking` trong chế độ tư duy phải được trả lại cho API. |
Đã xác minh (các điều kiện kích hoạt): xác thực này xảy ra nhất quán trên các yêu cầu nhiều lượt mang theo tools (mô hình thực hiện một cuộc gọi công cụ, sau đó kết quả công cụ được gửi lại). Trên các yêu cầu nhiều lượt đơn giản mà không có công cụ, nơi mô hình trả lời trực tiếp, xác thực không xảy ra trong vòng thử nghiệm này và yêu cầu trả về 200. Nói cách khác, việc điều phối công cụ (tác nhân / công việc gọi hàm) là nơi bạn có khả năng gặp phải điều này nhất, vì vậy hãy coi nội dung tư duy như một phần của trạng thái hội thoại mà bạn duy trì và phát lại.Chat Completions
# Nhiều lượt: trả lại tin nhắn trợ lý trước đó nguyên văn, bao gồm reasoning_content
messages = [
{"role": "user", "content": "What is 1 + 1? Remember the result."},
{
"role": "assistant",
"content": "2",
"reasoning_content": "<nội dung_reasoning từ phản hồi trước>",
},
{"role": "user", "content": "Add 1 to the result."},
]
# Bỏ qua reasoning_content -> HTTP 400 invalid_request_error
Đã xác minh: một tin nhắn trợ lý lịch sử thiếu reasoning_content trả về 400; thêm lại nó làm cho yêu cầu giống hệt trả về 200 và tiếp tục đúng cách.Responses
# Nhiều lượt: input = đầu vào trước + response.output (bao gồm mục lý luận) + tin nhắn mới
input = previous_input + response.output + [
{"role": "user", "content": "Add 1 to the result."}
]
# Lọc ra mục type="reasoning" -> HTTP 400
Đã xác minh: việc ghépresponse.outputtrở lại như vậy là tất cả những gì cần thiết. Lọc các mục đầu ra theotype == "message"trong khi lắp ráp lịch sử sẽ loại bỏ mụcreasoningvà kích hoạt 400 — đây là cách phổ biến nhất để bị mắc kẹt.
Messages
# Nhiều lượt: trả lại response.content nguyên văn như tin nhắn trợ lý
messages = [
{"role": "user", "content": "What's the weather in Paris?"},
{"role": "assistant", "content": response.content}, # các khối thinking + tool_use
{"role": "user", "content": [tool_result_block]},
]
# Bỏ khối thinking -> HTTP 400
Đã xác minh: việc loại bỏ khốithinkingkhỏi mảng nội dung trả về 400 (vớierror.typeđược đặt thànhinvalid_request_error).
4. Gọi công cụ
Mỗi API khai báo các công cụ theo hình dạng giao thức riêng của nó; các hình dạng không thể hoán đổi cho nhau.
Chat Completions
Hình dạng lồng nhau (một đối tượng function bao bọc name / parameters). Một tool_choice có tên buộc cuộc gọi.
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
},
}],
tool_choice={"type": "function", "function": {"name": "get_weather"}},
)
# Quan sát: finish_reason "tool_calls", tool_calls[0].function.arguments = {"city": "Paris"}
❗ Đã xác minh:tool_choice: "required"không thể được sử dụng trong khi tư duy đang bật — nó trả về 400Chế độ tư duy không hỗ trợ tool_choice này; tắt tư duy (thinking.type="disabled") làm cho yêu cầu giống hệt trả về 200. Khi bạn cần ngữ nghĩa "phải gọi một công cụ", hãy sử dụng một tool_choice có tên thay thế (như trên, hoạt động với tư duy bật), hoặc tắt tư duy trước và sau đó sử dụngrequired.
Responses
Hình dạng phẳng (type / name / parameters ở cùng một cấp độ).
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="What's the weather in Paris?",
tools=[{
"type": "function",
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
)
# Các mục đầu ra quan sát được: ["reasoning", "function_call"]; arguments = {"city": "Paris"}
Đã xác minh: sao chép hình dạng lồng nhau của Chat Completions (function: {...}) vào Responses trả về 400 — hãy sử dụng hình dạng phẳng.tool_choice: "required"cũng chịu sự hạn chế chế độ tư duy giống như trên Chat.
Messages
Hình dạng gốc của Anthropic (input_schema), với tool_choice: {"type": "any"} để buộc một cuộc gọi.
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "Get weather for a city",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
tool_choice={"type": "any"},
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
# Quan sát: nội dung chứa một khối tool_use, name = get_weather, input = {"city": "Paris"}
❗ Việc gọi công cụ song song không thể bị tắt, theo thiết kế của DeepSeek — trang tương thích chính thức của Anthropic tuyên bố, trên hàngtool_choice, rằngdisable_parallel_tool_use is ignored, và trang Responses cũng tuyên bốparallel_tool_calls | Bị bỏ qua (gọi công cụ song song luôn được bật). Thử nghiệm khớp: hỏi về hai thành phố cùng một lúc vớidisable_parallel_tool_use: truevẫn trả về hai khốitool_use. Nếu bạn cần thực thi tuần tự, hãy lấy cuộc gọi đầu tiên hoặc xếp hàng chúng trên phía máy khách.
Số lượng công cụ và chi phí ngữ cảnh: gửi 200 định nghĩa hàm trong một yêu cầu duy nhất vẫn trả về 200 với một câu trả lời bình thường và không kích hoạt bất kỳ xác thực số lượng nào (được quan sát trên con đường này; số lượng cao hơn không được thử nghiệm). Nhưng prompt_tokens cho yêu cầu đó đạt 6,105 — các định nghĩa công cụ được đưa vào ngữ cảnh đầy đủ và bị tính phí. Khi bạn có nhiều công cụ, hãy cắt giảm bộ công cụ theo kịch bản thay vì khai báo mọi thứ một cách vô điều kiện.5. Đầu ra có cấu trúc
Chat Completions
response_format hỗ trợ chế độ JSON.
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "Return {\"a\": 1} as JSON."}],
response_format={"type": "json_object"},
)
# Nội dung phản hồi quan sát được: {"a":1}
Đã xác minh: đầu ra là JSON hợp lệ.
Responses
Khai báo một JSON Schema thông qua text.format, với chế độ strict được hỗ trợ.
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Return the number 1 under key a.",
text={
"format": {
"type": "json_schema",
"name": "extract",
"strict": True,
"schema": {"type": "object", "properties": {"a": {"type": "integer"}}, "required": ["a"]},
}
},
)
# Nội dung văn bản quan sát được: {"a":1}
Đã xác minh: đầu ra tuân thủ nghiêm ngặt theo sơ đồ đã cho.
Messages
Giao thức Messages (Anthropic) không có tương đương với response_format / text.format. Giải pháp thông thường là mang theo sơ đồ trong một công cụ — khai báo một công cụ mà input_schema là sơ đồ mục tiêu của bạn, đặt tool_choice: {"type": "any"}, và đọc kết quả có cấu trúc từ input của khối tool_use. Vòng thử nghiệm này không xác minh cụ thể mẫu đó; khi bạn cần đảm bảo sơ đồ cứng, hãy ưu tiên Chat Completions hoặc Responses.
6. Làm thế nào để bạn kích hoạt bộ nhớ đệm ngữ cảnh? Bạn không cần, nó tự động
Bộ nhớ đệm ngữ cảnh (các tiền tố giống hệt được tái sử dụng, và phần được lưu trữ được tính phí ở mức thấp hơn) là đã bật theo mặc định và không cần tham số nào. Một yêu cầu thứ hai với cùng một tiền tố dài báo cáo hit trong usage, dưới một tên trường thay đổi theo API. Để biết chi tiết về bộ nhớ đệm và giá cả hiện tại, hãy xem trang mô hình; để biết chiến lược bộ nhớ đệm chéo mô hình và các kỹ thuật tỷ lệ hit, hãy xem thực hành bộ nhớ đệm lời nhắc.
Chat Completions
# sử dụng cuộc gọi thứ hai với một tiền tố dài giống hệt
"prompt_tokens_details": {"cached_tokens": 640} # cuộc gọi đầu tiên: 0
Đã xác minh: hai cuộc gọi liên tiếp với cùng một tiền tố dài trên cùng một kênh đã chuyển cached_tokens từ 0 thành 640.Responses
# sử dụng cuộc gọi thứ hai với các hướng dẫn dài giống hệt
"input_tokens_details": {"cached_tokens": 896} # cuộc gọi đầu tiên: 0
Messages
# sử dụng một cuộc gọi mà tiền tố hệ thống dài đã được làm ấm
"cache_read_input_tokens": 896
Đã xác minh: tiền tố trên đã được làm ấm bởi một yêu cầu Responses với nội dung giống hệt, và cuộc gọi Messages đầu tiên đã đạt 896 ngay lập tức — nhất quán với việc bộ nhớ đệm được khóa theo tiền tố nội dung và chia sẻ giữa các bề mặt giao thức.
7. logprobs: Chat trả về hai kênh
logprobs (xác suất log — chi tiết độ tin cậy của mô hình cho mỗi token ứng cử viên) trở lại dưới các hình dạng khác nhau trên hai API, và mã phân tích phải xử lý chúng riêng biệt.
Chat Completions
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "Say hi."}],
logprobs=True,
top_logprobs=2,
)
# Quan sát: choices[0].logprobs chứa HAI mảng
# logprobs.content[] -> các token của câu trả lời cuối cùng
# logprobs.reasoning_content[] -> các token của văn bản tư duy
❗ Đã xác minh: Chat trả về xác suất log cho cảcontentvàreasoning_content. Mã chỉ đọclogprobs.content, theo hình dạng phản hồi tiêu chuẩn của OpenAI, sẽ không gây lỗi nhưng sẽ im lặng bỏ lỡ kênh tư duy; nếu mã của bạn giả định một mảng duy nhất dướilogprobs, hãy thêm một kiểm tra hình dạng trước.
Responses
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Say hi.",
top_logprobs=3,
)
# Quan sát: logprobs chỉ trên mục tin nhắn cuối cùng
# output[-1].content[0].logprobs[] với logprob + chi tiết top_logprobs
Đã xác minh: Responses chỉ đính kèm logprobs vào mục văn bản cuối cùng — không có hình dạng kênh đôi nào thấy trên Chat.
Messages
Giao thức Messages (Anthropic) không có trường tương đương. Để biết chi tiết xác suất ở cấp độ token, hãy sử dụng Chat Completions hoặc Responses.
8. Các API nào có thể tìm kiếm trên web?
Tìm kiếm web ở đây là một công cụ phía máy chủ (việc truy xuất diễn ra trên máy chủ; máy khách không bao giờ thực hiện yêu cầu đó), và nó thực sự thực hiện trên cả API Responses và Messages trong thử nghiệm.
Responses
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="What is the latest stable version of Python?",
tools=[{"type": "web_search"}],
)
# Chuỗi mục đầu ra quan sát được:
# ["reasoning", "web_search_call", "reasoning", "message"]
Đã xác minh: một mục web_search_call xuất hiện trong chuỗi đầu ra, điều này có nghĩa là máy chủ thực sự đã thực hiện một yêu cầu truy xuất.Messages
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
tools=[{"type": "web_search_20250305", "name": "web_search"}],
messages=[{"role": "user", "content": "What is the latest stable version of Python?"}],
)
# Chuỗi khối nội dung quan sát được:
# ["thinking", "server_tool_use", "web_search_tool_result", "thinking", "text"]
# usage.server_tool_use.web_search_requests = 1
Đã xác minh: usage.server_tool_use.web_search_requests đếm 1 — yêu cầu truy xuất thực sự đã xảy ra và được đo lường.Chat Completions
Tìm kiếm web không thể được kích hoạt trên Chat. Tài liệu tham khảo API Chat chính thức của DeepSeek không chứa trường công cụ tìm kiếm nào trong sơ đồ yêu cầu (đó là một sự vắng mặt được thiết lập bằng cách kiểm tra danh sách trường từng cái một; DeepSeek không đưa ra tuyên bố rõ ràng nào về việc từ chối hỗ trợ). API có tuyên bố hỗ trợ chính thức cho tìm kiếm phía máy chủ là Responses (web_search), và trang tương thích Messages chính thức cũng liệt kê các khối nội dung liên quan đến tìm kiếm.
# Ba nhóm kiểm soát, cùng một câu hỏi yêu cầu thông tin trực tiếp, tất cả đều HTTP 200:
# A không có trường tìm kiếm -> "cannot retrieve", annotations = null
# B web_search_options -> "cannot retrieve", annotations = null, usage giống hệt A
# C enable_search -> "cannot retrieve", annotations = null, usage giống hệt A
Đã xác minh: gửiweb_search_optionshoặcenable_searchkhông gây ra lỗi, nhưng cũng không truy xuất được gì — phản hồi không mang theoannotations(danh sách trích dẫn đính kèm phản hồi khi tìm kiếm web diễn ra), và việc sử dụng khớp với nhóm kiểm soát trường cho trường. Để truy cập web, hãy sử dụng API Responses hoặc Messages thay vào đó.
9. Ghi chú sử dụng: Thiết kế của DeepSeek so với các sai lệch trên con đường của chúng tôi
Tất cả những điều dưới đây đều trả về HTTP 200 trong khi hành xử ngược lại với trực giác. Các nguyên nhân khác nhau, và những gì bạn nên làm về chúng cũng khác nhau, vì vậy chúng được liệt kê riêng biệt: nhóm đầu tiên là cách DeepSeek thiết kế mô hình, và việc thay đổi nhà cung cấp sẽ không thay đổi điều đó; nhóm thứ hai là hành vi hiện tại trên con đường AIHubMix, mà chúng tôi đang làm việc để cải thiện.
9.1 Theo thiết kế của DeepSeek
| Hành vi | Ngôn từ chính thức | Bạn nên làm gì |
|---|---|---|
| Responses không giữ trạng thái phiên hoặc siêu dữ liệu | Trang tương thích Responses chính thức tuyên bố, hàng này hàng khác, store | Không được hỗ trợ. Phản hồi luôn mang theo store: false, metadata | Không được hỗ trợ, và safety_identifier | Không được hỗ trợ (trong bốn trường đó, chỉ có user là Được Hỗ Trợ). Thử nghiệm khớp: yêu cầu trả về 200, nhưng metadata là null, safety_identifier vắng mặt, và store luôn là false |
Giữ dữ liệu tương quan yêu cầu trên máy khách; không dựa vào việc lưu trữ phía máy chủ |
| Các tham số lấy mẫu không có tác dụng trong chế độ tư duy | DeepSeek tuyên bố rõ ràng rằng temperature và top_p không có tác dụng trong chế độ tư duy. Trong thử nghiệm, cả hai đều trả về 200 mà không có gì được phản hồi lại và không có thay đổi nào trong hình dạng phản hồi |
Không dựa vào các tham số lấy mẫu để ổn định đầu ra trong chế độ tư duy; sử dụng đầu ra có cấu trúc khi bạn cần tính ổn định |
| Tiếp tục tiền tố / FIM chỉ có trên điểm cuối beta chính thức | Mô tả chính thức về prefix là "(Beta) … Bạn phải đặt base_url="https://api.deepseek.com/beta" để sử dụng tính năng này", và hoàn thành FIM cũng là một tính năng Beta. Đã xác minh trên sản xuất AIHubMix: gửi prefix: true chống lại điểm cuối tiêu chuẩn trả về 200 nhưng tiền tố bị loại bỏ một cách im lặng, nhất quán với ngôn từ chính thức |
Để định dạng đầu ra có kiểm soát, hãy sử dụng đầu ra có cấu trúc (mục 5) hoặc cắt ngắn stop |
| Gọi công cụ song song không thể bị tắt | Xem mục 4: DeepSeek tuyên bố trên cả trang Responses và Anthropic rằng công tắc bị bỏ qua và gọi song song luôn được bật | Xếp hàng các cuộc gọi trên máy khách khi bạn cần thực thi tuần tự |
9.2 Hành vi hiện tại trên con đường AIHubMix
| Hành vi | Thử nghiệm cho thấy | Bạn nên làm gì |
|---|---|---|
type không chuẩn trên các đối tượng lỗi Responses |
Giá trị error.type trên các phản hồi 4xx là Aihubmix_api_error, trong khi cùng một loại lỗi trên Messages trả về invalid_request_error chuẩn |
Phân nhánh theo mã trạng thái HTTP, không theo chuỗi error.type |
| Các token tư duy được tính là 0 trên Messages | Phản hồi có mang theo một khối thinking, nhưng usage.output_tokens_details.thinking_tokens luôn là 0, điều này mâu thuẫn với nội dung tư duy thực tế được sản xuất; theo hợp đồng Anthropic mà chúng tôi tích hợp, trường đó là bắt buộc và nên ≤ output_tokens |
Để tính toán chi phí tư duy, hãy sử dụng completion_tokens_details.reasoning_tokens trên Chat hoặc output_tokens_details.reasoning_tokens trên Responses |
Messages phản hồi model là deepseek-v4-pro |
Yêu cầu gửi deepseek-v4-pro-0813 và phản hồi phản ánh deepseek-v4-pro. Nguyên nhân là do tên gọi: tên mô hình API chính thức duy nhất của DeepSeek là deepseek-v4-pro, và 0813 là nhãn phiên bản của nó |
Không làm cho trường model trong phản hồi trở thành cơ sở duy nhất cho các kiểm tra định tuyến mô hình hoặc ghi nhận sử dụng |
9.3 Không xác định bởi DeepSeek, vì vậy không có phán quyết nào cả
Gửi một giá trị ngoài enum cho reasoning_effort (ví dụ: bogus_xyz) trả về 200 với một câu trả lời bình thường, không có lỗi và không có tác động quan sát được. Thực tế là rõ ràng — con đường này hiện không xác thực enum reasoning_effort. Điều không rõ là liệu nó nên: DeepSeek công bố enum hợp pháp nhưng không bao giờ tuyên bố liệu một mức độ bất hợp pháp có nên bị từ chối hay không, vì vậy không có cơ sở nào để đánh giá, điều này có nghĩa là điều này không được coi là hành vi chính thức cũng như không phải là một lỗi trên con đường của chúng tôi. Cách tiếp cận an toàn ở phía máy khách: tự xác thực mức độ và không dựa vào API để phát hiện nó.
10. Ma trận Hỗ trợ × API
Các ô dưới đây cung cấp cách viết tham số / trường cho mỗi API. Ngoại trừ nơi được đánh dấu là ngôn từ rõ ràng của DeepSeek, mọi kết luận đều đến từ các cuộc gọi thực tế được thực hiện vào ngày 2026-08-13 chống lại các API sản xuất AIHubMix.
| Khả năng | Chat Completions | Responses | Messages |
|---|---|---|---|
| Hướng dẫn trò chuyện cơ bản / hệ thống | ✅ messages |
✅ input + instructions |
✅ messages + system cấp cao nhất |
| Phát trực tiếp | ✅ stream + stream_options |
✅ stream (response.created … response.completed) |
✅ stream (message_start … message_stop) |
| Trần đầu ra | ✅ max_tokens (400 khi vượt quá, trần 393216) |
✅ max_output_tokens |
✅ max_tokens |
| Tắt tư duy | ✅ thinking: {"type": "disabled"} |
✅ reasoning: {"effort": "none"} |
✅ thinking: {"type": "disabled"} |
| Mức độ tư duy | 🟡 reasoning_effort được chấp nhận, không có tín hiệu phân biệt |
✅ reasoning.effort (chỉ none có thể xác nhận) |
🟡 output_config.effort được chấp nhận, không có gì được phản hồi lại |
| Nội dung tư duy được trả lại | ✅ reasoning_content trường |
✅ reasoning mục đầu ra |
✅ thinking khối nội dung |
| Yêu cầu bắt buộc về lịch sử tư duy passback | ✅ thiếu reasoning_content → 400 |
✅ thiếu reasoning item → 400 |
✅ thiếu thinking block → 400 |
| Gọi công cụ | ✅ lồng nhau tools + tool_choice có tên |
✅ phẳng tools |
✅ input_schema + tool_choice: {"type":"any"} |
Buộc một cuộc gọi với required |
❗ 400 trong khi tư duy đang bật; tắt tư duy trước | ❗ giống như bên trái | ✅ {"type": "any"} |
| Gọi công cụ song song (không thể tắt) | ➖ không có trường như vậy trên API Chat chính thức | ❗ DeepSeek tuyên bố parallel_tool_calls bị bỏ qua và gọi song song luôn được bật |
❗ DeepSeek tuyên bố disable_parallel_tool_use bị bỏ qua; thử nghiệm vẫn trả về hai khối tool_use |
| Đầu ra có cấu trúc | ✅ response_format (json_object) |
✅ text.format (json_schema + strict) |
➖ không có trường giao thức; mang theo sơ đồ trong một công cụ |
| Đo lường hit tự động | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ usage.cache_read_input_tokens |
| logprobs | ❗ kênh đôi: content + reasoning_content |
✅ top_logprobs chỉ trên mục văn bản cuối cùng |
➖ |
| Tìm kiếm web | ➖ không có trường tìm kiếm trên API Chat chính thức; gửi một cái cũng không truy xuất được gì | ✅ tools: [{"type": "web_search"}] |
✅ web_search_20250305 |
| Chuỗi dừng | ✅ stop |
➖ không có trường chuỗi dừng trong giao thức (chỉ max_output_tokens giới hạn chiều dài) |
✅ stop_sequences (stop_reason: "stop_sequence") |
Chú thích: ✅ đã xác minh hoạt động · 🟡 được chấp nhận nhưng không thể xác nhận hiệu quả · ❗ cần chú ý (xem các ghi chú ở trên) · ➖ không có khái niệm như vậy trên API này
Câu hỏi thường gặp
Các API nào mà deepseek-v4-pro-0813 hỗ trợ trên AIHubMix?
Chat Completions (/v1/chat/completions), Responses (/v1/responses), và API Messages tương thích với Claude (/v1/messages).
Tại sao một cuộc hội thoại nhiều lượt lại đột nhiên trả về 400?
Nguyên nhân phổ biến nhất là lịch sử tư duy không được trả lại. Trong chế độ tư duy, nội dung tư duy của lượt trước phải được phát lại nguyên văn: reasoning_content trên tin nhắn trợ lý cho Chat, mục đầu ra type="reasoning" cho Responses, và khối nội dung thinking cho Messages. Nhiều lượt với công cụ là nơi điều này gây khó khăn nhất — nhiều khung lọc các mục đầu ra theo type == "message" trong khi lắp ráp lịch sử, điều này làm rơi mục lý luận.
Có thể tắt tư duy không?
Có. Gửi thinking: {"type": "disabled"} trên Chat hoặc Messages, và reasoning: {"effort": "none"} trên Responses. Khi đã tắt, cả nội dung tư duy và các token tư duy đều biến mất.
Các mức độ reasoning_effort có khác nhau không?low / high / max đều được chấp nhận (mặc định high; medium và xhigh được ánh xạ tới high để tương thích). Trong thử nghiệm, số lượng token tư duy cho cùng một câu hỏi không cho thấy sự khác biệt đơn điệu giữa các mức độ và không có gì được phản hồi lại, vì vậy sự khác biệt không thể được xác nhận từ phía người gọi. Chỉ có mức none trên Responses (tư duy tắt) tạo ra sự khác biệt rõ ràng có thể quan sát được.
Tại sao tool_choice: "required" lại trả về 400?
Giá trị đó không được chấp nhận trong khi tư duy đang bật (phần lỗi đọc Chế độ tư duy không hỗ trợ tool_choice này). Sử dụng một tool_choice có tên ({"type": "function", "function": {"name": "..."}}) để buộc một cuộc gọi cụ thể với tư duy bật, hoặc tắt tư duy trước và sau đó sử dụng required.
Làm thế nào để bạn kích hoạt bộ nhớ đệm ngữ cảnh?
Bạn không cần — nó là tự động. Đặt nội dung ổn định, không thay đổi (lời nhắc hệ thống, đoạn kiến thức, định nghĩa công cụ) ở phía trước của yêu cầu, và số lượng hit được báo cáo trong usage: prompt_tokens_details.cached_tokens trên Chat, input_tokens_details.cached_tokens trên Responses, và cache_read_input_tokens trên Messages.
Để biết giá cả và trạng thái theo thời gian thực, hãy xem trang mô hình deepseek-v4-pro-0813; để biết thêm các mô hình, hãy truy cập thư viện mô hình.
Các hướng dẫn thực hành liên quan: Hướng dẫn thực hành Kimi K3 (các tham số mới và ma trận hỗ trợ ba API) và Thay đổi bộ nhớ đệm và tính phí GPT-5.6.




