DeepSeek V4 đã ra mắt với API có thể sử dụng ngay từ ngày đầu. Bạn có thể chọn các model deepseek-v4-pro và deepseek-v4-flash, sử dụng endpoint tương thích với OpenAI tại https://api.deepseek.com. Bất kỳ client nào đang dùng GPT-5.5 hoặc API dạng OpenAI đều có thể chuyển sang V4 chỉ bằng việc đổi URL cơ sở.
Bài viết này hướng dẫn từng bước xác thực, các tham số quan trọng, ví dụ Python & Node, cách dùng thinking mode, gọi hàm, truyền phát (streaming), và quy trình workflow với Apidog để kiểm soát chi phí khi phát triển, thử nghiệm API.
Xem tổng quan sản phẩm tại DeepSeek V4 là gì, hoặc hướng dẫn dùng miễn phí ở cách sử dụng DeepSeek V4 miễn phí.
Tóm tắt
- DeepSeek V4 có endpoint tương thích OpenAI:
https://api.deepseek.com/v1/chat/completionsvà endpoint tương thích Anthropic:https://api.deepseek.com/anthropic - Model:
deepseek-v4-pro(1.6T, 49B active) vàdeepseek-v4-flash(284B, 13B active) - Hỗ trợ ngữ cảnh 1M token và 3 chế độ thinking:
non-thinking,thinking,thinking_max - Nên dùng
temperature=1.0, top_p=1.0theo khuyến nghị của DeepSeek; không dùng mặc định GPT-5.5/Claude - Các model cũ
deepseek-chat,deepseek-reasonersẽ dừng vào 24/07/2026; hãy chuyển đổi sớm - Tải Apidog để phát lại request, so sánh thinking mode và bảo vệ API key
Điều kiện tiên quyết
Trước khi bắt đầu, chuẩn bị:
- Tài khoản developer DeepSeek tại platform.deepseek.com với số dư ≥ $2 (nếu không sẽ gặp lỗi
402 Insufficient Balance) - API key giới hạn theo project (không dùng key toàn account cho sản xuất)
- SDK truy cập URL dạng OpenAI: Python
openai>=1.30.0, Nodeopenai@4.x - API client để phát lại request mà không làm đầy terminal. Dùng Apidog cho workflow thực tế.
Xuất khóa API một lần như sau:
export DEEPSEEK_API_KEY="sk-..."
Điểm cuối và xác thực
Có hai định dạng endpoint:
POST https://api.deepseek.com/v1/chat/completions # OpenAI format
POST https://api.deepseek.com/anthropic/v1/messages # Anthropic format
Hầu hết trường hợp nên chọn dạng OpenAI. Xác thực qua Bearer Token trong header Authorization:
curl https://api.deepseek.com/v1/chat/completions \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "user", "content": "Giải thích định tuyến MoE trong hai câu."}
]
}'
Phản hồi thành công trả về JSON có choices, usage (đếm token đầu vào/ra và reasoning_tokens nếu bật thinking), cùng id để theo dõi. Lỗi trả về theo chuẩn OpenAI với error.code và error.message.
Tham số yêu cầu
Mỗi trường đều ảnh hưởng đến chi phí/hành vi. Dưới đây là bảng tham số chính cho deepseek-v4-pro/deepseek-v4-flash:
| Tham số | Loại | Giá trị | Lưu ý |
|---|---|---|---|
model |
string |
deepseek-v4-pro, deepseek-v4-flash
|
Bắt buộc. |
messages |
array | cặp vai trò/nội dung | Bắt buộc. Cùng schema với OpenAI. |
thinking_mode |
string |
non-thinking, thinking, thinking_max
|
Mặc định là non-thinking. |
temperature |
float | 0 đến 2 | DeepSeek khuyến nghị 1.0. |
top_p |
float | 0 đến 1 | DeepSeek khuyến nghị 1.0. |
max_tokens |
int | 1 đến 131.072 | Giới hạn độ dài đầu ra. |
stream |
bool | true hoặc false | Bật truyền phát SSE. |
tools |
array | đặc tả công cụ OpenAI | Để gọi hàm. |
tool_choice |
string hoặc object |
auto, required, none, hoặc công cụ cụ thể |
Kiểm soát việc sử dụng công cụ. |
response_format |
object | {"type": "json_object"} |
Đầu ra chế độ JSON. |
seed |
int | bất kỳ số nguyên nào | Để tái tạo kết quả. |
presence_penalty |
float | -2 đến 2 | Phạt các chủ đề lặp lại. |
frequency_penalty |
float | -2 đến 2 | Phạt các token lặp lại. |
thinking_mode quyết định chi phí nhiều nhất:
-
non-thinking: không suy luận, trả về rất nhanh như V3.2 -
thinking: bật block suy luận, tốn thêm token, tăng chính xác ở code/toán -
thinking_max: max quality, tốn nhiều token nhất, chỉ dùng khi thực sự cần và với context ≥384K
Client Python
SDK openai dùng được bằng cách chỉ định base_url. Wrapper như LangChain, LlamaIndex, DSPy đều tương thích.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Trả lời chỉ bằng mã."},
{"role": "user", "content": "Viết một hàm Rust để làm mượt các sự kiện."},
],
extra_body={"thinking_mode": "thinking"},
temperature=1.0,
top_p=1.0,
max_tokens=2048,
)
choice = response.choices[0]
print("Nội dung:", choice.message.content)
print("Token suy luận:", response.usage.reasoning_tokens)
print("Tổng số token:", response.usage.total_tokens)
Dùng extra_body để truyền tham số đặc biệt như thinking_mode qua SDK OpenAI.
Client Node
Cách gọi với NodeJS:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: "https://api.deepseek.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "user", content: "Giải thích trình tối ưu hóa Muon bằng tiếng Anh đơn giản." },
],
thinking_mode: "thinking",
temperature: 1.0,
top_p: 1.0,
});
console.log(response.choices[0].message.content);
console.log("Cách sử dụng:", response.usage);
SDK Node nhận các trường lạ như thinking_mode trực tiếp.
Phản hồi truyền phát (Streaming)
Để nhận phản hồi dạng stream, truyền stream=True và lặp qua từng chunk SSE:
stream = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Truyền phát một bài luận 300 từ về MoE."}],
stream=True,
extra_body={"thinking_mode": "non-thinking"},
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)
Nếu bật thinking mode, delta.reasoning_content sẽ chứa trace suy luận. Bạn có thể hiển thị trace này hoặc bỏ qua.
Gọi công cụ
DeepSeek V4 hỗ trợ schema gọi hàm chuẩn của OpenAI:
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Trả về thời tiết hiện tại cho một thành phố.",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
"unit": {"type": "string", "enum": ["c", "f"]},
},
"required": ["city"],
},
},
}]
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Thời tiết ở Lagos theo độ C?"}],
tools=tools,
tool_choice="auto",
extra_body={"thinking_mode": "thinking"},
)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
Sau đó, bạn gọi hàm thật, trả kết quả về role: "tool" rồi tiếp tục gọi API. Cách này giống hệt với loop sử dụng function calling của OpenAI.
Chế độ JSON
Để nhận output JSON chuẩn, truyền response_format:
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "Trả lời bằng một đối tượng JSON duy nhất."},
{"role": "user", "content": "Tóm tắt ghi chú phát hành này dưới dạng {tiêu đề, ngày, gạch đầu dòng}: ..."},
],
response_format={"type": "json_object"},
extra_body={"thinking_mode": "non-thinking"},
)
Chế độ JSON buộc output hợp lệ JSON nhưng không enforce schema. Để xác thực schema, dùng Pydantic hoặc Zod ở phía client.
Xây dựng bộ sưu tập trong Apidog
Việc phát lại request trực tiếp từ terminal dễ lãng phí credit & khó so sánh. Quy trình hiệu quả:
- Tải Apidog và tạo project mới
- Khai báo môi trường với biến bí mật
{{DEEPSEEK_API_KEY}} - Lưu request POST đến
{{BASE_URL}}/chat/completions, headerAuthorization: Bearer {{DEEPSEEK_API_KEY}} - Tham số hóa
modelvàthinking_modeđể test A/B giữa các biến thể - Dùng viewer để kiểm tra
usage.reasoning_tokensvà xác định chi phí thực tế từng lần chạy
Nếu bạn đã có bộ sưu tập API GPT-5.5 trong Apidog, chỉ cần đổi base URL thành https://api.deepseek.com/v1 và model ID để so sánh giữa hai provider.
Xử lý lỗi
DeepSeek trả lỗi theo chuẩn OpenAI. Một số mã lỗi thường gặp:
| Mã | Ý nghĩa | Khắc phục |
|---|---|---|
| 400 | Yêu cầu không hợp lệ | Kiểm tra schema JSON, đặc biệt messages và tools. |
| 401 | Khóa không hợp lệ | Tạo lại tại platform.deepseek.com. |
| 402 | Số dư không đủ | Nạp tiền vào tài khoản. |
| 403 | Mô hình không được phép | Kiểm tra phạm vi key và chính tả model ID. |
| 422 | Tham số ngoài phạm vi |
max_tokens hoặc thinking_mode có thể sai. |
| 429 | Giới hạn tốc độ | Tạm dừng, thử lại với exponential backoff. |
| 500 | Lỗi máy chủ | Thử lại 1 lần. Nếu lặp lại, kiểm tra trang trạng thái. |
| 503 | Quá tải | Dùng V4-Flash hoặc thử lại sau 30s. |
Nên wrap mọi API call trong hàm retry, xử lý lỗi 429, 5xx với backoff lũy thừa. Không tự động retry lỗi 4xx.
Các mẫu kiểm soát chi phí
Áp dụng 4 mẫu sau để tối ưu chi phí:
- Mặc định dùng V4-Flash. Chỉ dùng V4-Pro khi đã đo được improvement.
-
Giới hạn
thinking_maxbằng flag. Chỉ bật khi cần chất lượng cao, vì đây là mode đắt nhất. -
Giới hạn
max_tokens. Hầu hết câu trả lời nằm trong 2000 token output. 1M context dành cho input. -
Ghi log
usagemỗi lần gọi. Theo dõi input, output, reasoning token để phát hiện bất thường.
Di chuyển từ các mô hình DeepSeek cũ hơn
Các model ID cũ deepseek-chat, deepseek-reasoner sẽ dừng vào 24/07/2026. Di chuyển chỉ cần đổi giá trị model:
- model="deepseek-chat"
+ model="deepseek-v4-pro"
Nên so sánh A/B trong Apidog trước khi triển khai production để đảm bảo chất lượng cải thiện, đồng thời chuẩn bị cho việc ngừng hỗ trợ model cũ.
Câu hỏi thường gặp
API DeepSeek V4 đã sẵn sàng cho production chưa?
Có. API vận hành từ 23/04/2026, nền tảng ổn định.
V4 có hỗ trợ format Anthropic không?
Có. Chỉ cần trỏ sang https://api.deepseek.com/anthropic/v1/messages, gửi payload dạng Anthropic.
Context window bao nhiêu?
1 triệu token trên cả V4-Pro và V4-Flash. thinking_max nên dùng context tối thiểu 384K.
Đếm token đầu vào thế nào?
Dùng tokenizer OpenAI để ước lượng trước khi gửi. Số chính xác trả về trong trường usage của response.
Có hỗ trợ fine-tuning qua API không?
Chưa. Hiện chỉ fine-tune qua checkpoint base trên Hugging Face.
API có miễn phí dùng thử không?
Không có free tier, nhưng tài khoản mới đôi khi nhận được credit dùng thử.


Top comments (0)