DEV Community

Cover image for DeepSeek-V4-Flash รองรับ Responses API และ Codex แล้ว: สิ่งที่นักพัฒนาควรรู้
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

DeepSeek-V4-Flash รองรับ Responses API และ Codex แล้ว: สิ่งที่นักพัฒนาควรรู้

ประกาศเปิดตัว V4-Flash ของ DeepSeek เมื่อวันที่ 31 กรกฎาคมมีประโยคสำคัญสำหรับนักพัฒนา: V4-Flash “รองรับรูปแบบ Responses API โดยกำเนิดและปรับให้เข้ากับ Codex ได้อย่างสมบูรณ์” นั่นหมายความว่าโมเดล DeepSeek สามารถทำงานกับสแต็กเอเจนต์ที่ใช้ OpenAI Responses API ได้โดยตรง โดยไม่ต้องผ่านพร็อกซีแปลงรูปแบบ

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

DeepSeek ระบุแรงจูงใจไว้ชัดเจนว่า “เพื่อตอบสนองความต้องการของ Codex ตอนนี้ API ของเราจึงรองรับรูปแบบ Responses API แล้ว” บทความนี้สรุปสิ่งที่ต้องรู้ก่อนนำไปใช้จริง: ความเข้ากันได้ ข้อจำกัด การเชื่อมต่อ Codex และวิธีทดสอบ endpoint หากต้องการตั้งค่า API พื้นฐานก่อน ให้เริ่มจาก คู่มือเบต้าสาธารณะ V4-Flash

ทำไม Responses API จึงมีความสำคัญ

OpenAI เปิดตัว Responses API เพื่อแทนที่ Chat Completions สำหรับเวิร์กโหลดแบบเอเจนต์ โดยรวมการให้เหตุผล เครื่องมือ และเหตุการณ์สตรีมมิ่งไว้ในอินเทอร์เฟซเดียว รูปแบบนี้คือสิ่งที่ Codex ใช้สื่อสารกับโมเดลโดยตรง

เราอธิบายโครงสร้าง API นี้ไว้ใน วิธีใช้ OpenAI Responses API แต่ประเด็นสำคัญคือ DeepSeek รองรับรูปแบบนี้ที่ฝั่งเซิร์ฟเวอร์บน https://api.deepseek.com แล้ว

ดังนั้นคุณสามารถใช้ OpenAI SDK เดิมได้ เพียงเปลี่ยน base_url:

# pip3 install openai
from openai import OpenAI

client = OpenAI(
    api_key="<your DeepSeek API key>",
    base_url="https://api.deepseek.com"
)

response = client.responses.create(
    model="deepseek-v4-flash",
    instructions="You are a helpful assistant.",
    input="Hi, how are you?",
)

print(response.output_text)
Enter fullscreen mode Exit fullscreen mode

ปัจจุบัน Responses API ใช้ได้กับ deepseek-v4-flash เท่านั้น โดย DeepSeek ระบุว่าการรองรับ deepseek-v4-pro จะมาถึงต้นเดือนสิงหาคม 2026

DeepSeek V4-Flash Responses API

ความเข้ากันได้สมบูรณ์แค่ไหน?

DeepSeek เผยแพร่ตารางความเข้ากันได้อย่างละเอียด ซึ่งช่วยให้ตรวจสอบได้ว่าพารามิเตอร์ใดใช้ได้จริงก่อนนำไคลเอนต์เดิมมาเชื่อมต่อ

รองรับและใช้งานได้

  • input และ instructions ทั้งแบบสตริงและรายการ
  • stream พร้อมลำดับเหตุการณ์เชิงความหมาย
  • temperature, top_p, max_output_tokens, top_logprobs
  • tools ประเภท function และ web_search
  • tool_choice รวมถึงการบังคับเรียกฟังก์ชันเฉพาะ
  • reasoning.effort สำหรับควบคุมระดับความลึกของการให้เหตุผล

การค้นหาเว็บจะทำงานที่ฝั่งเซิร์ฟเวอร์ของ DeepSeek

ยอมรับพารามิเตอร์ แต่ไม่มีผล

  • reasoning.summary ถูกยอมรับ แต่จะไม่สร้างสรุป
  • text.verbosity ถูกยอมรับ แต่ไม่มีผลต่อเอาต์พุต
  • parallel_tool_calls ถูกละเว้น เพราะเปิดใช้การเรียกเครื่องมือแบบขนานเสมอ

ไม่รองรับตามการออกแบบ

  • previous_response_id และ conversation
  • store
  • background, metadata, include, service_tier
  • คีย์สำหรับ prompt caching

DeepSeek ใช้ API แบบ stateless ดังนั้นหากต้องการบทสนทนาหลายรอบ คุณต้องเก็บประวัติเอง แล้วส่งกลับเข้าไปเป็นรายการ input ในทุกคำขอ

ตัวอย่างแนวทางจัดการประวัติ:

history = [
    {
        "role": "user",
        "content": "อธิบายโค้ดนี้ให้หน่อย"
    },
    {
        "role": "assistant",
        "content": "ได้ นี่คือคำอธิบาย..."
    },
    {
        "role": "user",
        "content": "ช่วยเพิ่มตัวอย่างด้วย"
    }
]

response = client.responses.create(
    model="deepseek-v4-flash",
    input=history,
)
Enter fullscreen mode Exit fullscreen mode

พารามิเตอร์ที่ไม่รองรับจะถูกละเว้นแทนที่จะทำให้คำขอล้มเหลว จึงช่วยให้ไคลเอนต์ Responses API เดิมเชื่อมต่อได้ง่ายขึ้น

อย่างไรก็ตาม มีข้อควรระวังสำคัญ: หากคำขอเกินหน้าต่างบริบท 1M โทเค็น API จะตอบกลับด้วย HTTP 400 แทนการตัดเนื้อหาให้อัตโนมัติ

จัดการสตรีม SSE ให้ถูกต้อง

DeepSeek สตรีมตามรูปแบบเหตุการณ์ของ Responses API ตั้งแต่:

response.created
response.reasoning_text.delta
response.output_text.delta
response.completed
Enter fullscreen mode Exit fullscreen mode

ความแตกต่างที่สำคัญคือไม่มีตัวปิดสตรีมแบบ:

data: [DONE]
Enter fullscreen mode Exit fullscreen mode

ให้ถือว่าสตรีมจบเมื่อได้รับเหตุการณ์ใดเหตุการณ์หนึ่งต่อไปนี้:

response.completed
response.incomplete
response.failed
Enter fullscreen mode Exit fullscreen mode

หาก SSE handler ของคุณรอ [DONE] อยู่ สตรีมจะค้างได้ คู่มือการสตรีม API ด้วย Server-Sent Events อธิบายแนวทาง parse SSE แบบป้องกันปัญหานี้

ตั้งค่า Codex ให้ใช้ DeepSeek-V4-Flash

Codex ใช้ Responses API จึงสามารถเชื่อมต่อกับ DeepSeek ได้โดยตรง DeepSeek มีคู่มือการผสานรวม Codex ซึ่งรองรับการตั้งค่าร่วมกันสำหรับ Codex CLI, แอปเดสก์ท็อป ChatGPT และส่วนขยาย VS Code

วิธีเร็ว: ใช้สคริปต์ตั้งค่า

ติดตั้ง Codex CLI หรือเปิดแอป ChatGPT Desktop อย่างน้อยหนึ่งครั้งก่อน จากนั้นรัน:

bash <(curl -fsSL https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.sh)
Enter fullscreen mode Exit fullscreen mode

สำหรับ Windows PowerShell:

irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

ในการรันครั้งแรก สคริปต์จะขอ DeepSeek API key แล้วดำเนินการดังนี้:

  1. สำรอง ~/.codex/config.toml ไปยัง ~/.codex/backup-deepseek/
  2. สร้างหรืออัปเดต ~/.codex/models.json
  3. เพิ่มส่วน [model_providers.deepseek] ใน config
  4. รักษาการตั้งค่า MCP server และ project trust เดิมไว้
  5. ตรวจสอบไวยากรณ์ก่อนเขียนไฟล์

คุณสามารถรันสคริปต์อีกครั้งเพื่อสลับโมเดลหรือกู้คืนการตั้งค่าเดิมได้

ควรตรวจสอบเนื้อหาสคริปต์ก่อนรันเสมอ โดยเฉพาะในองค์กรที่มีนโยบายควบคุมการเปลี่ยนแปลง config แม้สคริปต์จะสำรองและตรวจสอบความถูกต้องก่อนเขียนไฟล์ก็ตาม

ตรวจสอบ models.json

ไฟล์ models.json ที่สคริปต์สร้างขึ้นระบุคุณสมบัติของ V4-Flash ใน Codex:

  • หน้าต่างบริบท: 1,048,576 โทเค็น
  • ระดับ reasoning: low, high, max
  • ค่าเริ่มต้น reasoning: high
  • รองรับ parallel tool calls
  • ต้องใช้ Codex client เวอร์ชัน 0.144.0 หรือใหม่กว่า

ปัจจุบันใช้งานได้เฉพาะ deepseek-v4-flash แต่แคตตาล็อกมีรายการ deepseek-v4-pro เตรียมไว้สำหรับการรองรับในอนาคต

ประเมินประสิทธิภาพก่อนใช้กับโค้ดเบสจริง

DeepSeek ระบุว่าการฝึกซ้ำรุ่น 0731 เน้นเวิร์กโหลดเอเจนต์โดยเฉพาะ และเผยแพร่ตัวเลขดังนี้:

  • Terminal Bench 2.1: 82.7
  • Cybergym: 76.7
  • Toolathlon ที่ตรวจสอบแล้ว: 70.3
  • DeepSWE: 54.4

ตัวเลขเหล่านี้รายงานว่าเหนือกว่า V4-Pro-Preview แต่ควรถือเป็นผลประเมินจากผู้ให้บริการจนกว่าจะมีผลทดสอบอิสระ เนื่องจากใช้ชุดเครื่องมือของ DeepSeek และมี benchmark บางส่วนเป็นชุดทดสอบภายใน

ด้านราคา DeepSeek ระบุค่าใช้จ่าย:

  • อินพุตแบบ cache miss: $0.14 ต่อ 1 ล้านโทเค็น
  • เอาต์พุต: $0.28 ต่อ 1 ล้านโทเค็น
  • อินพุตแบบ cache hit: $0.0028 ต่อ 1 ล้านโทเค็น

ดูรายละเอียดเพิ่มเติมได้จากส่วนราคาในคู่มือเบต้าสาธารณะ V4-Flash และหากกำลังเปรียบเทียบเครื่องมือเอเจนต์ ดูการเปรียบเทียบ Claude Code กับ Codex CLI

ทดสอบ Endpoint ก่อนปล่อยให้เอเจนต์ทำงาน

ก่อนให้ Codex ทำงานกับ repository จริง ควรทดสอบ endpoint ของ V4-Flash ด้วยคำขอที่ควบคุมได้ก่อน คุณทำได้ในไม่กี่นาทีด้วย Apidog

  1. สร้าง endpoint:
   POST https://api.deepseek.com/responses
Enter fullscreen mode Exit fullscreen mode
  1. เก็บ API key ไว้ใน environment variable แทนการใส่ลงใน request โดยตรง

  2. ส่ง payload ขั้นต่ำเพื่อตรวจสอบโครงสร้าง output:

   {
     "model": "deepseek-v4-flash",
     "instructions": "You are a helpful assistant.",
     "input": "สรุปความแตกต่างระหว่าง REST และ GraphQL"
   }
Enter fullscreen mode Exit fullscreen mode
  1. ตรวจสอบว่า output มีรายการ reasoning ตามด้วย message ตามที่ไคลเอนต์ของคุณคาดหวัง

  2. เปิด stream: true และตรวจสอบลำดับ SSE events แบบสด

  3. ทดสอบ function calling ด้วย schema ที่ระบบคุณใช้จริง:

   {
     "model": "deepseek-v4-flash",
     "input": "ตรวจสอบสถานะ deployment ล่าสุด",
     "tools": [
       {
         "type": "function",
         "name": "get_deployment_status",
         "description": "ดึงสถานะ deployment",
         "parameters": {
           "type": "object",
           "properties": {
             "environment": {
               "type": "string"
             }
           },
           "required": ["environment"]
         }
       }
     ]
   }
Enter fullscreen mode Exit fullscreen mode
  1. ยืนยันว่า output แบบ function_call ตรงกับ handler ของคุณ

เมื่อ V4-Pro รองรับ Responses API ให้รันชุด request เดิมโดยเปลี่ยนเฉพาะชื่อโมเดล แล้วเปรียบเทียบพฤติกรรมและผลลัพธ์ คุณสามารถดาวน์โหลด Apidogเพื่อเก็บ request, environment และ test suite ไว้ในโปรเจกต์เดียว

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

โมเดล DeepSeek ใดใช้กับ Responses API ได้?

ปัจจุบันมีเพียง deepseek-v4-flash เท่านั้น โดย deepseek-v4-pro มีกำหนดรองรับในต้นเดือนสิงหาคม 2026

ต้องเปลี่ยน SDK หรือไม่?

ไม่ต้องใช้ SDK ใหม่ คุณสามารถใช้ OpenAI SDK เดิม ชี้ base_url ไปที่ https://api.deepseek.com แล้วเรียก client.responses.create ได้เลย ดูรายละเอียดเพิ่มในคู่มือเบต้าสาธารณะ V4-Flash

DeepSeek รองรับ multi-turn state แบบ OpenAI หรือไม่?

ไม่รองรับ DeepSeek ใช้รูปแบบ stateless จึงไม่รองรับ previous_response_id, conversation และ store คุณต้องส่งประวัติการสนทนาทั้งหมดใน input ของทุกคำขอ

ใช้ DeepSeek ใน Codex ควบคู่กับบัญชี OpenAI ได้หรือไม่?

ได้ การตั้งค่าจะเพิ่ม DeepSeek เป็น model provider และคุณสามารถสลับโมเดลผ่านเมนูของสคริปต์ได้ โดย config เดิมจะถูกสำรองไว้เพื่อการกู้คืน

เหมือนกับ Anthropic API compatibility หรือไม่?

ไม่ใช่ฟีเจอร์เดียวกัน DeepSeek มี endpoint รูปแบบ Anthropic ที่:

https://api.deepseek.com/anthropic
Enter fullscreen mode Exit fullscreen mode

endpoint นี้เหมาะกับการผสานรวม Claude Code ส่วน /responses มีไว้สำหรับเครื่องมือเอเจนต์ที่ใช้รูปแบบ OpenAI เช่น Codex

สรุป

ประเด็นของการเปิดตัวนี้ไม่ใช่เพียง DeepSeek เพิ่ม endpoint ใหม่ แต่คือการทำให้โมเดลของตนเป็น backend ที่เสียบเข้ากับ Codex และไคลเอนต์ Responses API ได้โดยตรง

ก่อนนำไปใช้จริง ให้ทำตามลำดับนี้:

  1. เชื่อมต่อผ่าน OpenAI SDK โดยเปลี่ยน base_url
  2. ทดสอบ request ปกติ, streaming และ function calling
  3. ตรวจสอบการจัดการ state เพราะ API เป็น stateless
  4. ยืนยันว่า SSE handler ไม่รอ data: [DONE]
  5. เปรียบเทียบผลกับงานและชุดทดสอบของโค้ดเบสจริง

อย่าตัดสินจากตาราง benchmark เพียงอย่างเดียว เชื่อมต่อ endpoint เข้ากับ Apidog รันชุดทดสอบเดียวกันกับโมเดลที่คุณใช้อยู่ แล้วใช้ผลลัพธ์จากเวิร์กโหลดจริงเป็นตัวตัดสิน

Top comments (0)