ประกาศเปิดตัว V4-Flash ของ DeepSeek เมื่อวันที่ 31 กรกฎาคมมีประโยคสำคัญสำหรับนักพัฒนา: V4-Flash “รองรับรูปแบบ Responses API โดยกำเนิดและปรับให้เข้ากับ Codex ได้อย่างสมบูรณ์” นั่นหมายความว่าโมเดล DeepSeek สามารถทำงานกับสแต็กเอเจนต์ที่ใช้ OpenAI Responses API ได้โดยตรง โดยไม่ต้องผ่านพร็อกซีแปลงรูปแบบ
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)
ปัจจุบัน Responses API ใช้ได้กับ
deepseek-v4-flashเท่านั้น โดย DeepSeek ระบุว่าการรองรับdeepseek-v4-proจะมาถึงต้นเดือนสิงหาคม 2026
ความเข้ากันได้สมบูรณ์แค่ไหน?
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,
)
พารามิเตอร์ที่ไม่รองรับจะถูกละเว้นแทนที่จะทำให้คำขอล้มเหลว จึงช่วยให้ไคลเอนต์ Responses API เดิมเชื่อมต่อได้ง่ายขึ้น
อย่างไรก็ตาม มีข้อควรระวังสำคัญ: หากคำขอเกินหน้าต่างบริบท 1M โทเค็น API จะตอบกลับด้วย HTTP 400 แทนการตัดเนื้อหาให้อัตโนมัติ
จัดการสตรีม SSE ให้ถูกต้อง
DeepSeek สตรีมตามรูปแบบเหตุการณ์ของ Responses API ตั้งแต่:
response.created
response.reasoning_text.delta
response.output_text.delta
response.completed
ความแตกต่างที่สำคัญคือไม่มีตัวปิดสตรีมแบบ:
data: [DONE]
ให้ถือว่าสตรีมจบเมื่อได้รับเหตุการณ์ใดเหตุการณ์หนึ่งต่อไปนี้:
response.completed
response.incomplete
response.failed
หาก 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)
สำหรับ Windows PowerShell:
irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
ในการรันครั้งแรก สคริปต์จะขอ DeepSeek API key แล้วดำเนินการดังนี้:
- สำรอง
~/.codex/config.tomlไปยัง~/.codex/backup-deepseek/ - สร้างหรืออัปเดต
~/.codex/models.json - เพิ่มส่วน
[model_providers.deepseek]ใน config - รักษาการตั้งค่า MCP server และ project trust เดิมไว้
- ตรวจสอบไวยากรณ์ก่อนเขียนไฟล์
คุณสามารถรันสคริปต์อีกครั้งเพื่อสลับโมเดลหรือกู้คืนการตั้งค่าเดิมได้
ควรตรวจสอบเนื้อหาสคริปต์ก่อนรันเสมอ โดยเฉพาะในองค์กรที่มีนโยบายควบคุมการเปลี่ยนแปลง 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
- สร้าง endpoint:
POST https://api.deepseek.com/responses
เก็บ API key ไว้ใน environment variable แทนการใส่ลงใน request โดยตรง
ส่ง payload ขั้นต่ำเพื่อตรวจสอบโครงสร้าง output:
{
"model": "deepseek-v4-flash",
"instructions": "You are a helpful assistant.",
"input": "สรุปความแตกต่างระหว่าง REST และ GraphQL"
}
ตรวจสอบว่า output มีรายการ
reasoningตามด้วยmessageตามที่ไคลเอนต์ของคุณคาดหวังเปิด
stream: trueและตรวจสอบลำดับ SSE events แบบสดทดสอบ 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"]
}
}
]
}
- ยืนยันว่า 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
endpoint นี้เหมาะกับการผสานรวม Claude Code ส่วน /responses มีไว้สำหรับเครื่องมือเอเจนต์ที่ใช้รูปแบบ OpenAI เช่น Codex
สรุป
ประเด็นของการเปิดตัวนี้ไม่ใช่เพียง DeepSeek เพิ่ม endpoint ใหม่ แต่คือการทำให้โมเดลของตนเป็น backend ที่เสียบเข้ากับ Codex และไคลเอนต์ Responses API ได้โดยตรง
ก่อนนำไปใช้จริง ให้ทำตามลำดับนี้:
- เชื่อมต่อผ่าน OpenAI SDK โดยเปลี่ยน
base_url - ทดสอบ request ปกติ, streaming และ function calling
- ตรวจสอบการจัดการ state เพราะ API เป็น stateless
- ยืนยันว่า SSE handler ไม่รอ
data: [DONE] - เปรียบเทียบผลกับงานและชุดทดสอบของโค้ดเบสจริง
อย่าตัดสินจากตาราง benchmark เพียงอย่างเดียว เชื่อมต่อ endpoint เข้ากับ Apidog รันชุดทดสอบเดียวกันกับโมเดลที่คุณใช้อยู่ แล้วใช้ผลลัพธ์จากเวิร์กโหลดจริงเป็นตัวตัดสิน

Top comments (0)