DEV Community

Cover image for วิธีใช้ DeepSeek V4 API
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

วิธีใช้ DeepSeek V4 API

DeepSeek V4 เปิดตัวพร้อม API ที่ใช้งานได้ทันทีในวันแรก รหัสโมเดลคือ deepseek-v4-pro และ deepseek-v4-flash ซึ่งเป็นปลายทางที่เข้ากันได้กับ OpenAI และ URL หลักคือ https://api.deepseek.com นั่นหมายความว่าไคลเอนต์ใดๆ ที่คุณใช้อยู่แล้วกับ GPT-5.5 หรือ API รูปแบบ OpenAI อื่นๆ สามารถทำงานร่วมกับ V4 ได้ด้วยการเปลี่ยน URL หลักเพียงครั้งเดียว

ทดลองใช้ Apidog วันนี้

คู่มือนี้ครอบคลุมการยืนยันตัวตน, พารามิเตอร์สำคัญทุกตัว, ตัวอย่าง Python และ Node, การคำนวณในโหมดคิด (thinking-mode math), การเรียกใช้เครื่องมือ (tool calling), การสตรีม, และเวิร์กโฟลว์ที่ใช้ Apidog ซึ่งจะช่วยให้คุณเห็นค่าใช้จ่ายขณะที่คุณวนซ้ำการทำงาน

สำหรับภาพรวมระดับผลิตภัณฑ์ โปรดดู DeepSeek V4 คืออะไร สำหรับวิธีใช้งานแบบไม่มีค่าใช้จ่าย โปรดดู วิธีใช้ DeepSeek V4 ฟรี

สรุปโดยย่อ

  • DeepSeek V4 มาพร้อมปลายทางที่เข้ากันได้กับ OpenAI ที่ https://api.deepseek.com/v1/chat/completions และปลายทางที่เข้ากันได้กับ Anthropic ที่ https://api.deepseek.com/anthropic
  • รหัสโมเดล: deepseek-v4-pro (รวม 1.6T, ใช้งาน 49B) และ deepseek-v4-flash (รวม 284B, ใช้งาน 13B)
  • ทั้งสองรุ่นรองรับบริบท 1M โทเค็น และสามโหมดการคิด: non-thinking, thinking, thinking_max
  • ใช้ temperature=1.0, top_p=1.0 ตามที่ DeepSeek แนะนำ; อย่าใช้ค่าเริ่มต้นของ GPT-5.5 หรือ Claude
  • รหัสเก่า deepseek-chat และ deepseek-reasoner จะเลิกใช้งานในวันที่ 24 กรกฎาคม 2026; ควรย้ายข้อมูลก่อนหน้านั้น
  • ดาวน์โหลด Apidog เพื่อเล่นคำขอซ้ำ, เปรียบเทียบโหมดการคิด, และป้องกันไม่ให้คีย์ของคุณอยู่ในประวัติเชลล์

ข้อกำหนดเบื้องต้น

เตรียมสิ่งเหล่านี้ก่อนเริ่มใช้งาน:

  • บัญชีนักพัฒนา DeepSeek ที่ platform.deepseek.com โดยมียอดเงินอย่างน้อย 2 ดอลลาร์ หากไม่มียอดเงิน การเรียกใช้งานจะส่งคืน 402 Insufficient Balance
  • คีย์ API ที่กำหนดขอบเขตสำหรับโครงการที่คุณจะเรียกเก็บเงิน คีย์ที่กำหนดขอบเขตโครงการมีความปลอดภัยมากกว่าคีย์บัญชีสำหรับการใช้งาน Production
  • SDK ที่รองรับ OpenAI API base URL เช่น Python openai>=1.30.0 หรือ Node openai@4.x
  • API Client ที่สามารถเล่นคำขอซ้ำได้ (curl ใช้ได้กับการเรียกเพียงครั้งเดียว หลังจากนั้นให้ใช้ Apidog)

ส่งออกคีย์ API ของคุณเพียงครั้งเดียว:

export DEEPSEEK_API_KEY="sk-..."

ปลายทางและการยืนยันตัวตน

เลือกปลายทางตามรูปแบบที่ต้องการ:

POST https://api.deepseek.com/v1/chat/completions    # รูปแบบ OpenAI
POST https://api.deepseek.com/anthropic/v1/messages  # รูปแบบ Anthropic

ส่วนใหญ่ให้ใช้ OpenAI endpoint

การยืนยันตัวตน: ใส่ Bearer Token ใน 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": "Explain MoE routing in two sentences."}
    ]
  }'

การตอบกลับสำเร็จจะคืน JSON body ที่มี choices, usage, และ id สำหรับการติดตาม

พารามิเตอร์คำขอ

แต่ละฟิลด์ส่งผลต่อค่าใช้จ่ายหรือพฤติกรรม ดูตารางนี้สำหรับ deepseek-v4-pro และ deepseek-v4-flash

พารามิเตอร์ ประเภท ค่า หมายเหตุ
model สตริง deepseek-v4-pro, deepseek-v4-flash จำเป็นต้องระบุ
messages อาร์เรย์ คู่ role/content จำเป็นต้องระบุ ใช้ Schema เดียวกันกับ OpenAI
thinking_mode สตริง non-thinking, thinking, thinking_max ค่าเริ่มต้นคือ non-thinking
temperature โฟลต 0 ถึง 2 DeepSeek แนะนำ 1.0
top_p โฟลต 0 ถึง 1 DeepSeek แนะนำ 1.0
max_tokens จำนวนเต็ม 1 ถึง 131,072 จำกัดความยาวเอาต์พุต
stream บูลีน true หรือ false เปิดใช้งานการสตรีม SSE
tools อาร์เรย์ ข้อมูลจำเพาะเครื่องมือ OpenAI สำหรับการเรียกใช้ฟังก์ชัน
tool_choice สตริงหรือวัตถุ auto, required, none หรือเครื่องมือเฉพาะ ควบคุมการใช้เครื่องมือ
response_format วัตถุ {"type": "json_object"} เอาต์พุตในโหมด JSON
seed จำนวนเต็ม จำนวนเต็มใดๆ สำหรับความสามารถในการทำซ้ำ
presence_penalty โฟลต -2 ถึง 2 ลงโทษหัวข้อที่ซ้ำกัน
frequency_penalty โฟลต -2 ถึง 2 ลงโทษโทเค็นที่ซ้ำกัน

thinking_mode มีผลโดยตรงกับค่าใช้จ่ายและคุณภาพ non-thinking เร็วสุด, thinking เพิ่มความแม่นยำแต่ใช้โทเค็นมากขึ้น, thinking_max เหมาะสำหรับความถูกต้องสูงสุด (ต้องการ context 384K+)

ไคลเอนต์ Python

ใช้ OpenAI SDK โดยเปลี่ยน base_url ได้ทันที ตัวอย่าง:

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": "Reply in code only."},
        {"role": "user", "content": "Write a Rust function that debounces events."},
    ],
    extra_body={"thinking_mode": "thinking"},
    temperature=1.0,
    top_p=1.0,
    max_tokens=2048,
)

choice = response.choices[0]
print("Content:", choice.message.content)
print("Reasoning tokens:", response.usage.reasoning_tokens)
print("Total tokens:", response.usage.total_tokens)

ส่ง thinking_mode ผ่าน extra_body เพื่อรองรับฟิลด์ DeepSeek โดยไม่ต้องแก้ไขไลบรารี

ไคลเอนต์ Node

Node SDK รองรับฟิลด์เพิ่มเติมทันที:

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: "Explain the Muon optimizer in plain English." },
  ],
  thinking_mode: "thinking",
  temperature: 1.0,
  top_p: 1.0,
});

console.log(response.choices[0].message.content);
console.log("Usage:", response.usage);

การสตรีมการตอบกลับ

เปิด stream: true แล้ววนลูปผลลัพธ์:

stream = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "Stream a 300-word essay on 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)

ถ้าเปิดโหมดคิด delta.reasoning_content จะสตรีมเหตุผลแยก สามารถใช้หรือข้ามได้

การเรียกใช้เครื่องมือ

รองรับ Tool Calling ตาม Schema OpenAI ตัวอย่าง:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Return the current weather for a city.",
        "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": "Weather in Lagos in Celsius?"}],
    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)

หลังจากเรียกใช้ฟังก์ชัน เพิ่มผลลัพธ์เป็น role: "tool" แล้วเรียก API อีกรอบ วนลูปจนกว่าจะได้คำตอบสุดท้าย

โหมด JSON

ระบุ response_format={"type": "json_object"} เพื่อบังคับ JSON output:

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "Reply with a single JSON object."},
        {"role": "user", "content": "Summarize this release note as {title, date, bullets}: ..."},
    ],
    response_format={"type": "json_object"},
    extra_body={"thinking_mode": "non-thinking"},
)

ถ้าต้องการตรวจสอบ schema ฝั่งไคลเอนต์ แนะนำใช้ Pydantic หรือ Zod

สร้างคอลเลกชันใน Apidog

ลดความซ้ำซ้อนและควบคุมค่าใช้จ่ายด้วย Workflow ต่อไปนี้:

  1. ดาวน์โหลด Apidog และสร้างโปรเจกต์
  2. เพิ่ม Environment ที่กำหนด {{DEEPSEEK_API_KEY}} เป็นตัวแปรลับ
  3. บันทึกคำขอ POST ไปยัง {{BASE_URL}}/chat/completions พร้อม header Authorization: Bearer {{DEEPSEEK_API_KEY}}
  4. ปรับ model และ thinking_mode สำหรับ A/B Test รุ่นต่างๆ
  5. ใช้ response viewer เพื่อตรวจสอบ usage.reasoning_tokens ทุกรัน จะช่วยจับการใช้โหมดคิดโดยไม่จำเป็น

หากใช้ คอลเลกชัน GPT-5.5 อยู่ใน Apidog อยู่แล้ว ให้สลับ base URL และรหัสโมเดล แล้วรันเปรียบเทียบได้ทันที

การจัดการข้อผิดพลาด

DeepSeek API ใช้รูปแบบ error response เดียวกับ OpenAI ตาราง error ทั่วไป:

รหัส ความหมาย วิธีแก้ไข
400 คำขอไม่ถูกต้อง ตรวจสอบ Schema JSON โดยเฉพาะ messages และ tools
401 คีย์ไม่ถูกต้อง สร้างใหม่ที่ platform.deepseek.com
402 ยอดเงินไม่เพียงพอ เติมเงินในบัญชี
403 ไม่อนุญาตโมเดล ตรวจสอบขอบเขตของคีย์และการสะกดรหัสโมเดล
422 พารามิเตอร์อยู่นอกช่วง max_tokens หรือ thinking_mode อาจไม่ตรงกัน
429 เกินขีดจำกัดอัตรา รอสักครู่แล้วลองใหม่ด้วย exponential jitter
500 ข้อผิดพลาดเซิร์ฟเวอร์ ลองใหม่หนึ่งครั้ง; หากซ้ำ ให้ตรวจสอบหน้าสถานะ
503 โอเวอร์โหลด กลับไปใช้ V4-Flash หรือลองใหม่ใน 30 วินาที

ห่อโค้ดเรียก API ด้วยตัวช่วย retry ที่รองรับ 429/5xx แบบ exponential backoff หลีกเลี่ยง retry ทันทีหากเจอ 4xx

รูปแบบการควบคุมค่าใช้จ่าย

  1. ใช้ V4-Flash เป็นค่าตั้งต้น สลับเป็น V4-Pro เฉพาะเมื่อคุณวัดแล้วคุณภาพจำเป็น
  2. กำหนด thinking_max เป็น opt-in ใช้เฉพาะกรณีที่ต้องการความถูกต้องสูง
  3. จำกัด max_tokens เอาต์พุต 2,000 โทเค็นเพียงพอสำหรับส่วนใหญ่
  4. บันทึก usage ทุกครั้ง ส่งข้อมูลโทเค็นอินพุต/เอาต์พุต/เหตุผลเข้าระบบ monitor แจ้งเตือนเมื่อ usage พุ่ง

การย้ายข้อมูลจากโมเดล DeepSeek รุ่นเก่า

เปลี่ยนรหัสโมเดลจาก deepseek-chat หรือ deepseek-reasoner เป็น deepseek-v4-pro แล้วทดสอบการตอบกลับ ตัวอย่าง:

-  model="deepseek-chat"
+  model="deepseek-v4-pro"

แนะนำให้เปรียบเทียบ A/B ใน Apidog ก่อน deploy จริง เพื่อดูผลลัพธ์และปรับงบประมาณ

คำถามที่พบบ่อย

API ของ DeepSeek V4 พร้อมใช้งานในระดับ Production หรือไม่? พร้อมใช้งานทันที API เปิดให้บริการตั้งแต่ 23 เมษายน 2026

V4 รองรับรูปแบบข้อความของ Anthropic หรือไม่? รองรับ ส่งคำขอไป https://api.deepseek.com/anthropic/v1/messages

บริบท (context window) กว้างแค่ไหน? 1M โทเค็นทั้ง V4-Pro และ V4-Flash (thinking_max แนะนำ 384K ขึ้นไป)

จะนับโทเค็นอินพุตก่อนส่ง API ได้อย่างไร? ใช้ OpenAI tokenizer ประมาณค่า DeepSeek จะส่ง usage ที่แน่นอนกลับมา

Fine-tune ผ่าน API ได้หรือไม่? ยังไม่ได้ Fine-tune ปัจจุบันรองรับเฉพาะ base checkpoint บน Hugging Face

API มีให้ทดลองใช้ฟรีไหม? ไม่มีแพ็คเกจฟรี แต่ผู้สมัครใหม่อาจได้เครดิตทดลองใช้เป็นบางเวลา

Top comments (0)