DEV Community

Cover image for Hướng Dẫn Sử Dụng API DeepSeek V4 Chi Tiết
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Hướng Dẫn Sử Dụng API DeepSeek V4 Chi Tiết

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-prodeepseek-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ở.

Dùng thử Apidog ngay hôm nay

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/completions và 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.0 theo khuyến nghị của DeepSeek; không dùng mặc định GPT-5.5/Claude
  • Các model cũ deepseek-chat, deepseek-reasoner sẽ 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, Node openai@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-..."
Enter fullscreen mode Exit fullscreen mode

Đ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
Enter fullscreen mode Exit fullscreen mode

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."}
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

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.codeerror.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)
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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"},
)
Enter fullscreen mode Exit fullscreen mode

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ả:

  1. Tải Apidog và tạo project mới
  2. Khai báo môi trường với biến bí mật {{DEEPSEEK_API_KEY}}
  3. Lưu request POST đến {{BASE_URL}}/chat/completions, header Authorization: Bearer {{DEEPSEEK_API_KEY}}
  4. Tham số hóa modelthinking_mode để test A/B giữa các biến thể
  5. Dùng viewer để kiểm tra usage.reasoning_tokens và 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:

Ý nghĩa Khắc phục
400 Yêu cầu không hợp lệ Kiểm tra schema JSON, đặc biệt messagestools.
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í:

  1. Mặc định dùng V4-Flash. Chỉ dùng V4-Pro khi đã đo được improvement.
  2. Giới hạn thinking_max bằng flag. Chỉ bật khi cần chất lượng cao, vì đây là mode đắt nhất.
  3. 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.
  4. Ghi log usage mỗ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"
Enter fullscreen mode Exit fullscreen mode

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)