วิธีใช้ GPT-5.4 API

Ashley Innocent

Ashley Innocent

6 March 2026

วิธีใช้ GPT-5.4 API

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

TL;DR / สรุปอย่างรวดเร็ว

วิธีใช้ GPT-5.4 API: ติดตั้ง OpenAI SDK (pip install openai) กำหนดค่าไคลเอนต์ด้วย API key เรียกใช้ chat.completions.create() ด้วยโมเดล gpt-5.4 คุณสมบัติหลัก: การใช้งานคอมพิวเตอร์ (ระบบอัตโนมัติของเบราว์เซอร์แบบเนทีฟ), การค้นหาเครื่องมือ (ลดโทเค็นได้ 47%), หน้าต่างบริบท 1M, ความสามารถด้านวิสัยทัศน์ ราคา: $2.50/M โทเค็นอินพุต, $15/M โทเค็นเอาต์พุต คู่มือนี้ครอบคลุมการตั้งค่า, ตัวอย่างโค้ด, การกำหนดค่าการใช้งานคอมพิวเตอร์, การรวมเครื่องมือ และแนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้งานจริง

บทนำ

GPT-5.4 ไม่ใช่แค่การอัปเกรดโมเดลธรรมดา แต่เป็นโมเดลอเนกประสงค์ตัวแรกของ OpenAI ที่มีความสามารถในการใช้งานคอมพิวเตอร์แบบเนทีฟ, การค้นหาเครื่องมือที่มีประสิทธิภาพ และหน้าต่างบริบท 1M โทเค็น การใช้ GPT-5.4 อย่างมีประสิทธิภาพต้องทำความเข้าใจความสามารถใหม่เหล่านี้และวิธีรวมเข้ากับเวิร์กโฟลว์ของคุณ

คู่มือนี้ให้ตัวอย่างโค้ดที่ใช้งานได้จริงสำหรับคุณสมบัติหลักทุกอย่างของ GPT-5.4 คุณจะได้เรียนรู้วิธีการใช้ระบบอัตโนมัติในการใช้งานคอมพิวเตอร์, การกำหนดค่าการค้นหาเครื่องมือสำหรับเซิร์ฟเวอร์ MCP, การประมวลผลรูปภาพความละเอียดสูง, การจัดการโค้ดเบสที่มีบริบทขนาดยาว และการเพิ่มประสิทธิภาพต้นทุนสำหรับการปรับใช้ในสภาพแวดล้อมจริง

ไม่ว่าคุณจะกำลังสร้าง AI agents, ระบบอัตโนมัติสำหรับเบราว์เซอร์ หรือรวม GPT-5.4 เข้ากับแอปพลิเคชันที่มีอยู่ คู่มือนี้จะให้รายละเอียดการใช้งานที่คุณต้องการ

💡
เมื่อรวม GPT-5.4 เข้ากับแอปพลิเคชัน ให้ใช้ Apidog เพื่อออกแบบ ทดสอบ และจัดทำเอกสารปลายทาง API ของคุณ แพลตฟอร์มแบบรวมของ Apidog ช่วยให้คุณดีบักคำขอ API สร้างชุดการทดสอบอัตโนมัติ จำลองการตอบสนองระหว่างการพัฒนา และสร้างเอกสารประกอบสำหรับทีมของคุณ สิ่งนี้มีคุณค่าอย่างยิ่งเมื่อสร้างฟีเจอร์ที่ขับเคลื่อนด้วย AI ที่รวม GPT-5.4 กับบริการอื่นๆ
button

เริ่มต้นอย่างรวดเร็ว: คำขอ GPT-5.4 ครั้งแรกของคุณ

เริ่มใช้งาน GPT-5.4 ได้ภายใน 5 นาที ก่อนที่จะเขียนโค้ด ให้ทดสอบ คำขอ GPT-5.4 API ของคุณใน Apidog:

  1. สร้างคำขอ HTTP ใหม่ด้วย POST ไปที่ https://api.openai.com/v1/chat/completions
  2. เพิ่มส่วนหัว Authorization: Bearer YOUR_API_KEY
  3. ตั้งค่าเนื้อหาคำขอด้วย model, messages และ parameters
  4. ส่งและตรวจสอบการตอบสนอง
  5. บันทึกลงในคอลเลกชันเพื่อการทดสอบซ้ำๆ
  6. ใช้ตัวแปรสภาพแวดล้อมเพื่อสลับระหว่าง API keys
แนวทางที่เห็นภาพนี้ช่วยเร่งการทดสอบเบื้องต้นและช่วยให้คุณเข้าใจโครงสร้าง API ก่อนที่จะนำไปใช้ในโค้ด

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

Python เริ่มต้นอย่างรวดเร็ว

from openai import OpenAI
import os

# Initialize client
client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
)

# Make request
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": "You are a helpful coding assistant."},
        {"role": "user", "content": "Write a Python function to sort a list of dictionaries by a key."}
    ]
)

print(response.choices[0].message.content)

Node.js เริ่มต้นอย่างรวดเร็ว

const OpenAI = require('openai');

const client = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY
});

async function main() {
    const response = await client.chat.completions.create({
        model: 'gpt-5.4',
        messages: [
            { role: 'system', content: 'You are a helpful coding assistant.' },
            { role: 'user', content: 'Write a Python function to sort a list of dictionaries by a key.' }
        ]
    });

    console.log(response.choices[0].message.content);
}

main();

ผลลัพธ์ที่คาดไว้

def sort_dicts_by_key(dict_list, key, reverse=False):
    """
    Sort a list of dictionaries by a specified key.

    Args:
        dict_list: List of dictionaries to sort
        key: The dictionary key to sort by
        reverse: If True, sort in descending order

    Returns:
        Sorted list of dictionaries
    """
    return sorted(dict_list, key=lambda x: x.get(key, ''), reverse=reverse)

# Example usage
data = [
    {'name': 'Alice', 'age': 30},
    {'name': 'Bob', 'age': 25},
    {'name': 'Charlie', 'age': 35}
]

sorted_by_age = sort_dicts_by_key(data, 'age')
print(sorted_by_age)
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]

ทำความเข้าใจความสามารถของ GPT-5.4

GPT-5.4 โดดเด่นในสี่ด้านหลัก การทำความเข้าใจสิ่งเหล่านี้ช่วยให้คุณเลือกแนวทางที่เหมาะสมสำหรับแต่ละกรณีการใช้งาน

1. งานความรู้ (อัตราการชนะ GDPval 83%)

ดีที่สุดสำหรับ:

2. การใช้งานคอมพิวเตอร์ (75% รับรองโดย OSWorld)

ดีที่สุดสำหรับ:

3. การเขียนโค้ด (57.7% SWE-Bench Pro)

ดีที่สุดสำหรับ:

4. การรวมเครื่องมือ (54.6% Toolathlon)

ดีที่สุดสำหรับ:

Computer Use API

ความสามารถในการใช้งานคอมพิวเตอร์แบบเนทีฟของ GPT-5.4 ถือเป็นการก้าวกระโดดที่สำคัญที่สุดในการเปิดตัวครั้งนี้ โมเดลสามารถสั่งงานคอมพิวเตอร์ผ่านการจับภาพหน้าจอ (screenshots), คำสั่งเมาส์ และการป้อนข้อมูลด้วยคีย์บอร์ด

เมื่อสร้างแอปพลิเคชันที่มีความสามารถในการใช้งานคอมพิวเตอร์ ให้ทดสอบแต่ละขั้นตอนของเวิร์กโฟลว์ใน Apidog:

การทำงานของ Computer Use

เวิร์กโฟลว์การใช้งานคอมพิวเตอร์ใช้เครื่องมือ computer ในคำขอ API โดยโมเดลจะ:

  1. รับภาพหน้าจอของสถานะหน้าจอปัจจุบัน
  2. วิเคราะห์องค์ประกอบ UI และกำหนดการกระทำ
  3. ส่งกลับคำสั่งคอมพิวเตอร์ (คลิก, พิมพ์, เลื่อน ฯลฯ)
  4. แอปพลิเคชันของคุณจะดำเนินการคำสั่งและจับภาพหน้าจอใหม่
  5. วนซ้ำจนกว่างานจะเสร็จสมบูรณ์

การตั้งค่า Computer Use เบื้องต้น

from openai import OpenAI
import base64

client = OpenAI()

def take_screenshot():
    """จับภาพสถานะหน้าจอปัจจุบัน - ใช้งานได้กับแพลตฟอร์มของคุณ"""
    # ใช้ pyautogui, PIL หรือการจับภาพหน้าจอเฉพาะแพลตฟอร์ม
    import pyautogui
    screenshot = pyautogui.screenshot()
    import io
    buffer = io.BytesIO()
    screenshot.save(buffer, format='PNG')
    return base64.b64encode(buffer.getvalue()).decode('utf-8')

def execute_computer_command(command):
    """ดำเนินการคำสั่งคอมพิวเตอร์ - ใช้งานตามประเภทคำสั่ง"""
    import pyautogui

    action = command.get('action')

    if action == 'click':
        x, y = command.get('coordinate', [0, 0])
        pyautogui.click(x, y)
    elif action == 'type':
        text = command.get('text', '')
        pyautogui.write(text, interval=0.05)
    elif action == 'scroll':
        amount = command.get('scroll_amount', 0)
        pyautogui.scroll(amount)
    elif action == 'keypress':
        key = command.get('key', '')
        pyautogui.press(key)

    # ส่งกลับภาพหน้าจอใหม่หลังจากการกระทำ
    return take_screenshot()

# การสนทนาเกี่ยวกับการใช้งานคอมพิวเตอร์
messages = [{
    "role": "user",
    "content": [
        {
            "type": "text",
            "text": "นำทางไปยัง gmail.com และเข้าสู่ระบบด้วยข้อมูลรับรองที่ฉันให้มา"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": f"data:image/png;base64,{take_screenshot()}"
            }
        }
    ]
}]

# คำขอพร้อมเครื่องมือคอมพิวเตอร์
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=messages,
    tools=[{
        "type": "computer",
        "display_width": 1920,
        "display_height": 1080,
        "display_number": 1
    }],
    tool_choice="required"
)

# แยกวิเคราะห์และดำเนินการคำสั่งคอมพิวเตอร์
for tool_call in response.choices[0].message.tool_calls:
    if tool_call.type == "computer":
        command = tool_call.function.arguments
        new_screenshot = execute_computer_command(command)

        # ดำเนินการสนทนาต่อด้วยภาพหน้าจอใหม่
        messages.append({
            "role": "assistant",
            "content": response.choices[0].message.content
        })
        messages.append({
            "role": "user",
            "content": [{
                "type": "image_url",
                "image_url": {"url": f"data:image/png;base64,{new_screenshot}"}
            }]
        })

นโยบายความปลอดภัยในการใช้งานคอมพิวเตอร์

กำหนดพฤติกรรมด้านความปลอดภัยตามระดับความเสี่ยงที่คุณยอมรับ:

# โหมดปลอดภัย - ต้องมีการยืนยันสำหรับการกระทำที่ละเอียดอ่อน
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=messages,
    tools=[{
        "type": "computer",
        "display_width": 1920,
        "display_height": 1080,
        "confirmation_policy": "always"  # หรือ "never" หรือ "selective"
    }],
    # ข้อความระบบที่กำหนดเองเพื่อความปลอดภัย
    system_message="""คุณกำลังใช้งานคอมพิวเตอร์ ปฏิบัติตามกฎความปลอดภัยเหล่านี้:
    1. ห้ามป้อนข้อมูลรับรองโดยไม่ได้รับการยืนยันจากผู้ใช้
    2. ถามก่อนที่จะลบไฟล์หรือข้อมูล
    3. ยืนยันก่อนส่งอีเมลหรือข้อความ
    4. รายงานข้อผิดพลาดหรือสถานะที่ไม่คาดคิดทันที
    """
)

ตัวอย่างระบบอัตโนมัติของเบราว์เซอร์

ทำให้งานของเบราว์เซอร์เป็นไปโดยอัตโนมัติด้วยการรวม Playwright:

from playwright.sync_api import sync_playwright

def browser_automation_workflow():
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()

        # นำทางไปยังหน้าเว็บ
        page.goto("https://example.com")

        # รับภาพหน้าจอสำหรับ GPT-5.4
        screenshot = page.screenshot()
        screenshot_b64 = base64.b64encode(screenshot).decode('utf-8')

        messages = [{
            "role": "user",
            "content": [
                {"type": "text", "text": "ค้นหาแบบฟอร์มเข้าสู่ระบบและกรอกข้อมูล"}
                {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{screenshot_b64}"}}
            ]
        }]

        # รับคำสั่งคอมพิวเตอร์จาก GPT-5.4
        response = client.chat.completions.create(
            model="gpt-5.4",
            messages=messages,
            tools=[{"type": "computer"}],
            tool_choice="required"
        )

        # แยกวิเคราะห์และดำเนินการคำสั่งบนเบราว์เซอร์
        for tool_call in response.choices[0].message.tool_calls:
            if tool_call.type == "computer":
                command = json.loads(tool_call.function.arguments)

                if command.get('action') == 'click':
                    x, y = command.get('coordinate', [0, 0])
                    page.mouse.click(x, y)
                elif command.get('action') == 'type':
                    page.keyboard.type(command.get('text', ''))

                # รับภาพหน้าจอใหม่และดำเนินการต่อ
                new_screenshot = page.screenshot()
                # ... ดำเนินการวนซ้ำต่อ

ระบบอัตโนมัติสำหรับอีเมลและปฏิทิน

ตัวอย่างจริง: ประมวลผลอีเมลและกำหนดการนัดหมาย:

def process_email_and_schedule_meeting():
    """
    เวิร์กโฟลว์: อ่านอีเมลที่ยังไม่ได้อ่าน, แยกคำขอประชุม,
    ตรวจสอบปฏิทินว่าง, และส่งคำเชิญปฏิทิน
    """

    workflow_prompt = """
    ทำเวิร์กโฟลว์นี้ให้สมบูรณ์:
    1. เปิด Gmail และค้นหาอีเมลที่ยังไม่ได้อ่านในช่วง 24 ชั่วโมงที่ผ่านมา
    2. ระบุคำขอประชุมหรือคำถามเกี่ยวกับการกำหนดตารางเวลา
    3. สำหรับแต่ละคำขอประชุม:
       - แยกวันที่/เวลาที่เสนอ
       - บันทึกผู้เข้าร่วมและวัตถุประสงค์ของการประชุม
    4. เปิด Google Calendar และตรวจสอบความพร้อม
    5. ส่งคำเชิญปฏิทินสำหรับการประชุมที่ยืนยันแล้ว
    6. ตอบกลับอีเมลเพื่อยืนยันเวลาที่กำหนด

    รายงานสรุปสิ่งที่ทำได้
    """

    # เริ่มต้นด้วยภาพหน้าจอของกล่องจดหมาย
    screenshot = take_screenshot()

    messages = [{
        "role": "user",
        "content": [
            {"type": "text", "text": workflow_prompt},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{screenshot}"}}
        ]
    }]

    # ดำเนินการเวิร์กโฟลว์การใช้งานคอมพิวเตอร์แบบหลายรอบ
    for turn in range(10):  # จำกัดรอบเพื่อป้องกันการวนซ้ำไม่สิ้นสุด
        response = client.chat.completions.create(
            model="gpt-5.4",
            messages=messages,
            tools=[{"type": "computer"}],
            tool_choice="required"
        )

        # ตรวจสอบว่างานเสร็จสมบูรณ์หรือไม่
        if "complete" in response.choices[0].message.content.lower():
            print(f"เวิร์กโฟลว์เสร็จสมบูรณ์ใน {turn + 1} รอบ")
            break

        # ดำเนินการคำสั่งคอมพิวเตอร์และรับภาพหน้าจอใหม่
        # ... (ตรรกะการดำเนินการคำสั่งจากตัวอย่างก่อนหน้า)

การเพิ่มประสิทธิภาพ

ผลลัพธ์ของ Mainstay ที่ประมวลผลพอร์ทัลภาษีทรัพย์สิน 30,000 แห่ง:

เคล็ดลับสำหรับการเพิ่มประสิทธิภาพ:

  1. ใช้ภาพหน้าจอคุณภาพสูง (ขั้นต่ำ 1920x1080)
  2. ให้คำอธิบายงานที่ชัดเจนและเฉพาะเจาะจง
  3. กำหนดขีดจำกัดจำนวนรอบเพื่อป้องกันการวนซ้ำ
  4. แคชภาพหน้าจอเพื่อหลีกเลี่ยงการจับภาพที่ซ้ำซ้อน
  5. ใช้นโยบายการยืนยันแบบเลือกสำหรับเวิร์กโฟลว์ที่เชื่อถือได้

การค้นหาและรวมเครื่องมือ

การค้นหาเครื่องมือช่วยลดการใช้โทเค็นได้ 47% พร้อมทั้งช่วยให้ทำงานร่วมกับระบบนิเวศของเครื่องมือขนาดใหญ่ได้

การทำงานของการค้นหาเครื่องมือ

แทนที่จะโหลดคำจำกัดความเครื่องมือทั้งหมดล่วงหน้า โมเดลจะได้รับรายการที่มีน้ำหนักเบาและค้นหาคำจำกัดความเมื่อจำเป็น

การตั้งค่าการค้นหาเครื่องมือพื้นฐาน

# กำหนดเครื่องมือที่ใช้งานได้ (รายการที่มีน้ำหนักเบา)
available_tools = [
    {
        "name": "get_weather",
        "description": "รับสภาพอากาศปัจจุบันสำหรับสถานที่"
    },
    {
        "name": "send_email",
        "description": "ส่งอีเมลถึงผู้รับ"
    },
    {
        "name": "calendar_search",
        "description": "ค้นหาปฏิทินสำหรับกิจกรรม"
    },
    # ... เครื่องมืออื่นๆ อีกหลายร้อยรายการ
]

# คำขอเริ่มต้น - โมเดลเห็นรายการเครื่องมือ ไม่ใช่คำจำกัดความเต็ม
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "user", "content": "สภาพอากาศในโตเกียวเป็นอย่างไร และส่งให้ทีมของฉันด้วย"}
    ],
    tools=available_tools,
    tool_choice="auto"
)

# หากโมเดลต้องการใช้เครื่องมือ จะร้องขอคำจำกัดความ
# แอปพลิเคชันของคุณจะให้คำจำกัดความเต็มในเวลานั้น

การรวมเซิร์ฟเวอร์ MCP

เกณฑ์มาตรฐาน MCP Atlas ของ Scale แสดงให้เห็นว่าการค้นหาเครื่องมือช่วยลดโทเค็นได้ 47%

# เซิร์ฟเวอร์ MCP พร้อมเครื่องมือมากมาย
mcp_servers = [
    {
        "name": "filesystem",
        "description": "การดำเนินการกับระบบไฟล์",
        "tool_count": 12
    },
    {
        "name": "database",
        "description": "การดำเนินการสอบถามฐานข้อมูล",
        "tool_count": 8
    },
    {
        "name": "web-search",
        "description": "การค้นหาและดึงข้อมูลจากเว็บ",
        "tool_count": 15
    }
    # ... 36 เซิร์ฟเวอร์ MCP ในเกณฑ์มาตรฐาน
]

# การกำหนดค่าการค้นหาเครื่องมือ
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "user", "content": "ค้นหาไฟล์ Python ทั้งหมดที่แก้ไขวันนี้ และค้นหาความคิดเห็น TODO"}
    ],
    tools=mcp_servers,
    # การค้นหาเครื่องมือเปิดใช้งานโดยอัตโนมัติเมื่อใช้รูปแบบนี้
    parallel_tool_calls=True
)

# โมเดลจะร้องขอคำจำกัดความเครื่องมือเมื่อจำเป็น
# การประหยัดโทเค็น: 47% เทียบกับการโหลดคำจำกัดความทั้งหมดล่วงหน้า

เวิร์กโฟลว์หลายขั้นตอนสไตล์ Toolathlon

Toolathlon ทดสอบเวิร์กโฟลว์เครื่องมือแบบหลายขั้นตอนที่ซับซ้อน:

def grade_assignments_workflow():
    """
    เวิร์กโฟลว์ที่ซับซ้อน: อ่านอีเมลพร้อมไฟล์แนบ,
    อัปโหลดไปยังระบบการให้คะแนน, ให้คะแนนงาน,
    บันทึกผลลัพธ์ลงในสเปรดชีต
    """

    workflow_steps = """
    1. อ่านอีเมลจากนักเรียนพร้อมไฟล์แนบงาน
    2. ดาวน์โหลดไฟล์แนบแต่ละไฟล์
    3. อัปโหลดไปยังพอร์ทัลการให้คะแนน
    4. ให้คะแนนงานแต่ละชิ้นโดยใช้เกณฑ์การให้คะแนน
    5. บันทึกเกรดลงในสเปรดชีต
    6. ส่งอีเมลยืนยันไปยังนักเรียน
    """

    tools = [
        {"name": "email_read", "description": "อ่านอีเมลจากกล่องจดหมาย"},
        {"name": "email_send", "description": "ส่งอีเมล"},
        {"name": "file_download", "description": "ดาวน์โหลดไฟล์แนบ"},
        {"name": "file_upload", "description": "อัปโหลดไฟล์ไปยังเว็บพอร์ทัล"},
        {"name": "web_form_fill", "description": "กรอกและส่งแบบฟอร์มบนเว็บ"},
        {"name": "spreadsheet_write", "description": "เขียนข้อมูลลงในสเปรดชีต"},
        {"name": "rubric_evaluate", "description": "ประเมินงานเทียบกับเกณฑ์การให้คะแนน"}
    ]

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[
            {"role": "user", "content": workflow_steps}
        ],
        tools=tools,
        parallel_tool_calls=True  # เปิดใช้งานการดำเนินการเครื่องมือแบบขนาน
    )

    # GPT-5.4 ทำคะแนนได้ 54.6% ใน Toolathlon เทียบกับ 45.7% สำหรับ GPT-5.2
    # หัวใจสำคัญ: การเลือกเครื่องมือที่ดีขึ้นและจำนวนรอบที่น้อยลง

การประมวลผลวิสัยทัศน์และรูปภาพ

GPT-5.4 รองรับการรับรู้ภาพที่ได้รับการปรับปรุงด้วยรายละเอียดภาพต้นฉบับสูงสุด 10.24M พิกเซล

ระดับรายละเอียดของภาพ

# รายละเอียดต้นฉบับ - ความคมชัดสูงสุด (10.24M พิกเซล, ขนาดสูงสุด 6000px)
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://example.com/high-res-image.jpg",
                    "detail": "original"  # หรือ "high" หรือ "low"
                }
            },
            {"type": "text", "text": "วิเคราะห์แผนผังทางเทคนิคนี้"}
        ]
    }]
)

# รายละเอียดสูง - 2.56M พิกเซล, ขนาดสูงสุด 2048px
# รายละเอียดต่ำ - การประมวลผลที่เร็วที่สุด, ความแม่นยำต่ำกว่า

ตัวอย่างการแยกวิเคราะห์เอกสาร

OmniDocBench: อัตราข้อผิดพลาด 0.109 (เทียบกับ 0.140 สำหรับ GPT-5.2)

def parse_complex_document(pdf_path):
    """แยกวิเคราะห์ PDF หลายหน้าพร้อมตารางและรูปภาพ"""

    # แปลงหน้า PDF เป็นรูปภาพ
    from pdf2image import convert_from_path
    pages = convert_from_path(pdf_path, dpi=300)

    messages = [{"role": "user", "content": []}]

    for i, page in enumerate(pages[:5]):  # 5 หน้าแรก
        import io, base64
        buffer = io.BytesIO()
        page.save(buffer, format='PNG')
        img_b64 = base64.b64encode(buffer.getvalue()).decode()

        messages[0]["content"].append({
            "type": "image_url",
            "image_url": {
                "url": f"data:image/png;base64,{img_b64}",
                "detail": "high"
            }
        })

    messages[0]["content"].append({
        "type": "text",
        "text": """
        แยกข้อมูลทั้งหมดจากเอกสารนี้:
        1. ตารางพร้อมส่วนหัวแถว/คอลัมน์
        2. ตัวเลขสำคัญและคำอธิบายภาพ
        3. สรุปสถิติที่กล่าวถึงในข้อความ
        ส่งคืนเป็น JSON ที่มีโครงสร้าง
        """
    })

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=messages
    )

    return response.choices[0].message.content

การวิเคราะห์ภาพหน้าจอ UI

def analyze_ui_screenshot(screenshot_path):
    """วิเคราะห์ภาพหน้าจอ UI สำหรับปัญหาการเข้าถึง"""

    with open(screenshot_path, 'rb') as f:
        img_b64 = base64.b64encode(f.read()).decode()

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{img_b64}",
                        "detail": "original"
                    }
                },
                {
                    "type": "text",
                    "text": """
                    ตรวจสอบภาพหน้าจอ UI นี้สำหรับปัญหาการเข้าถึง:
                    1. ปัญหาความเปรียบต่างของสี
                    2. ป้ายกำกับที่ขาดหายไปหรือตัวบ่งชี้ข้อความสำรอง
                    3. ปัญหาการนำทางด้วยคีย์บอร์ด (สถานะโฟกัสที่มองเห็นได้)
                    4. ขนาดตัวอักษรและการอ่านได้
                    5. ข้อกังวลเกี่ยวกับความเข้ากันได้กับโปรแกรมอ่านหน้าจอ

                    แสดงรายการปัญหาพร้อมตำแหน่งและความรุนแรงที่เฉพาะเจาะจง
                    """
                }
            ]
        }]
    )

    return response.choices[0].message.content

เวิร์กโฟลว์บริบทขนาดยาว

GPT-5.4 รองรับหน้าต่างบริบทสูงสุด 1M โทเค็น (ทดลอง)

บริบทมาตรฐาน (272K โทเค็น)

# โหลดไฟล์โค้ดเบสขนาดใหญ่
with open('large_codebase.py', 'r') as f:
    code = f.read()

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": "คุณคือผู้ช่วยในการตรวจสอบโค้ด"},
        {"role": "user", "content": f"""
        ตรวจสอบโค้ดเบสนี้สำหรับ:
        1. ช่องโหว่ด้านความปลอดภัย
        2. ปัญหาด้านประสิทธิภาพ
        3. ความไม่สอดคล้องกันของสไตล์โค้ด
        4. การจัดการข้อผิดพลาดที่ขาดหายไป

        โค้ด:
        {code}
        """}
    ],
    max_tokens=4000
)

บริบทเพิ่มเติม (1M โทเค็น)

กำหนดค่าผ่านพารามิเตอร์ API:

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "user", "content": large_document}
    ],
    # การกำหนดค่าบริบทเพิ่มเติม
    extra_body={
        "model_context_window": 1048576,  # 1M โทเค็น
        "model_auto_compact_token_limit": 272000  # จัดเก็บอัตโนมัติหลังจาก 272K
    }
)

# หมายเหตุ: คำขอที่เกิน 272K จะนับในอัตราการใช้งาน 2 เท่า

การวิเคราะห์เอกสารหลายฉบับ

def analyze_multiple_documents(documents):
    """วิเคราะห์เอกสารมากกว่า 10 ฉบับในบริบทเดียว"""

    content_parts = []

    for i, doc in enumerate(documents):
        content_parts.append(f"=== เอกสารที่ {i+1}: {doc['title']} ===\n")
        content_parts.append(doc['content'][:50000])  # ตัดทอนหากจำเป็น
        content_parts.append("\n\n")

    combined_content = "".join(content_parts)

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{
            "role": "user",
            "content": f"""
            วิเคราะห์เอกสารเหล่านี้และให้:
            1. สรุปประเด็นสำคัญในทุกเอกสาร
            2. ความขัดแย้งหรือไม่สอดคล้องกันระหว่างเอกสาร
            3. รายการการดำเนินการที่กล่าวถึงในเอกสารใดๆ
            4. ไทม์ไลน์ของเหตุการณ์หากมี

            {combined_content}
            """
        }],
        max_tokens=8000
    )

    return response.choices[0].message.content

เวิร์กโฟลว์การเขียนโค้ดและการพัฒนา

GPT-5.4 ตรงกับ GPT-5.3-Codex ใน SWE-Bench Pro (57.7%) พร้อมความสามารถในการใช้งานคอมพิวเตอร์ที่เพิ่มเข้ามา

การสร้างส่วนหน้า

def generate_frontend_component(spec):
    """สร้างส่วนประกอบ React ที่สมบูรณ์พร้อมการจัดรูปแบบ"""

    prompt = f"""
    สร้างส่วนประกอบ React ที่สมบูรณ์ตามข้อกำหนดนี้:

    {spec}

    ข้อกำหนด:
    1. ส่วนประกอบฟังก์ชันพร้อม hooks
    2. ประเภท TypeScript สำหรับ props และ state ทั้งหมด
    3. Tailwind CSS สำหรับการจัดรูปแบบ
    4. การออกแบบที่ตอบสนอง (มือถือ, แท็บเล็ต, เดสก์ท็อป)
    5. การเข้าถึง (ป้ายกำกับ ARIA, การนำทางด้วยคีย์บอร์ด)
    6. การทดสอบหน่วยด้วย Jest/React Testing Library

    ส่งคืนโค้ดที่สมบูรณ์สำหรับ:
    - ไฟล์ส่วนประกอบ (.tsx)
    - สไตล์ (ถ้าไม่ใช่ Tailwind)
    - ไฟล์ทดสอบ (.test.tsx)
    """

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=6000
    )

    return response.choices[0].message.content

# ตัวอย่าง: การจำลองสวนสนุก (จากตัวอย่างของ OpenAI)
theme_park_spec = """
สร้างเกมจำลองสวนสนุกไอโซเมตริกแบบโต้ตอบ:
- การวางเส้นทางแบบกระเบื้อง
- การสร้างเครื่องเล่นและทิวทัศน์
- การหาเส้นทางและการเข้าคิวของแขก
- เมตริกสวนสนุก (เงิน, แขก, ความสุข, ความสะอาด)
- สามารถเล่นได้ในเบราว์เซอร์ด้วยการทดสอบ Playwright
- สินทรัพย์ไอโซเมตริกที่สร้างขึ้น
"""

component_code = generate_frontend_component(theme_park_spec)

การดีบักปัญหาที่ซับซ้อน

def debug_with_full_context(error_logs, codebase_files, stack_trace):
    """ดีบักโดยใช้บริบทเต็มของบันทึก, โค้ด และ stack trace"""

    context = f"""
    บันทึกข้อผิดพลาด (ERROR LOGS):
    {error_logs}

    STACK TRACE:
    {stack_trace}

    ไฟล์โค้ดที่เกี่ยวข้อง (RELEVANT CODE FILES):
    {codebase_files}

    งาน: ระบุสาเหตุหลักและเสนอวิธีแก้ไข
    พิจารณา:
    1. Race conditions หรือปัญหาเวลา
    2. Memory leaks หรือการใช้ทรัพยากรหมด
    3. ข้อสันนิษฐานที่ไม่ถูกต้องเกี่ยวกับกระแสข้อมูล
    4. กรณีพิเศษที่ไม่ได้รับการจัดการ
    5. ปัญหาการพึ่งพิงภายนอก

    ให้ข้อมูล:
    1. การวิเคราะห์สาเหตุหลัก
    2. การเปลี่ยนแปลงโค้ดที่จำเป็น
    3. การทดสอบเพื่อป้องกันการถดถอย
    """

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": context}],
        max_tokens=4000
    )

    return response.choices[0].message.content

การทดสอบแบบโต้ตอบด้วย Playwright

ทักษะ Codex ทดลองสำหรับการทดสอบการเล่นในเบราว์เซอร์:

def playwright_interactive_debug():
    """
    ใช้ Playwright Interactive สำหรับการทดสอบการเล่นในเบราว์เซอร์
    GPT-5.4 สามารถทดสอบแอปพลิเคชันได้ในขณะที่กำลังสร้าง
    """

    prompt = """
    สร้างแอปพลิเคชันเว็บ todo และทดสอบในขณะที่กำลังสร้าง:

    1. สร้างโครงสร้าง HTML
    2. เพิ่มสไตล์ CSS
    3. ใช้ฟังก์ชัน JavaScript
    4. หลังจากแต่ละฟีเจอร์ ให้ใช้ Playwright เพื่อ:
       - ตรวจสอบการมองเห็นขององค์ประกอบ
       - ทดสอบการโต้ตอบของผู้ใช้
       - ตรวจสอบความคงทนของสถานะ
       - ตรวจสอบกรณีพิเศษ

    รายงานปัญหาที่พบระหว่างการทดสอบและแก้ไข
    """

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": prompt}],
        tools=[{"type": "playwright_interactive"}],
        max_tokens=8000
    )

    return response.choices[0].message.content

การตอบสนองแบบสตรีมมิ่ง

การสตรีมช่วยลดความล่าช้าที่รับรู้ได้สำหรับการตอบสนองที่ยาวนาน

การสตรีม Python

from openai import OpenAI

client = OpenAI()

stream = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "เขียนคำอธิบายโดยละเอียดเกี่ยวกับการประมวลผลเชิงควอนตัม"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

การสตรีม Node.js

const stream = await client.chat.completions.create({
    model: 'gpt-5.4',
    messages: [{ role: 'user', content: 'เขียนคำอธิบายโดยละเอียดเกี่ยวกับการประมวลผลเชิงควอนตัม' }],
    stream: true
});

for await (const chunk of stream) {
    if (chunk.choices[0].delta.content) {
        process.stdout.write(chunk.choices[0].delta.content);
    }
}

การสตรีมพร้อมการนับโทเค็น

def stream_with_usage(stream):
    """ติดตามการใช้โทเค็นขณะสตรีม"""
    total_tokens = 0

    for chunk in stream:
        if chunk.choices[0].delta.content:
            content = chunk.choices[0].delta.content
            print(content, end="", flush=True)
            total_tokens += len(content) // 4  # ประมาณการคร่าวๆ

        if chunk.usage:
            print(f"\n\nการใช้งาน: {chunk.usage.total_tokens} โทเค็น")

    return total_tokens

การจัดการข้อผิดพลาดและตรรกะการลองใหม่

โค้ดที่ใช้งานจริงจำเป็นต้องมีการจัดการข้อผิดพลาดที่แข็งแกร่ง

การจัดการข้อผิดพลาดที่ครอบคลุม

from openai import OpenAI, RateLimitError, APIError, AuthenticationError
import time

client = OpenAI()

def make_request_with_retry(messages, max_retries=3):
    """สร้างคำขอด้วยตรรกะการลองใหม่แบบ exponential backoff"""

    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model="gpt-5.4",
                messages=messages,
                max_tokens=2000,
                temperature=0.7
            )
            return response

        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise

            wait_time = 2 ** attempt  # 1s, 2s, 4s
            print(f"ถูกจำกัดอัตราการใช้งาน กำลังรอ {wait_time} วินาที...")
            time.sleep(wait_time)

        except APIError as e:
            if e.status_code >= 500:  # ข้อผิดพลาดเซิร์ฟเวอร์, ลองใหม่
                if attempt == max_retries - 1:
                    raise
                wait_time = 2 ** attempt
                time.sleep(wait_time)
            else:
                raise  # ข้อผิดพลาดไคลเอนต์, ไม่ต้องลองใหม่

        except AuthenticationError:
            print("API key ไม่ถูกต้อง โปรดตรวจสอบข้อมูลรับรองของคุณ")
            raise

        except Exception as e:
            print(f"ข้อผิดพลาดที่ไม่คาดคิด: {e}")
            raise

    raise Exception("เกินจำนวนการลองใหม่สูงสุด")

# การใช้งาน
try:
    response = make_request_with_retry([
        {"role": "user", "content": "สวัสดี, GPT-5.4!"}
    ])
    print(response.choices[0].message.content)
except Exception as e:
    print(f"คำขอล้มเหลว: {e}")

การจัดการการหมดเวลา

import httpx

# กำหนดค่าการหมดเวลา
client = OpenAI(
    timeout=httpx.Timeout(60.0, connect=10.0)  # รวม 60 วินาที, เชื่อมต่อ 10 วินาที
)

try:
    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": "งานที่ใช้เวลานาน..."}]
    )
except httpx.TimeoutException:
    print("คำขอหมดเวลา พิจารณาใช้การสตรีมหรือลดความซับซ้อน")

แนวทางปฏิบัติที่ดีที่สุดในการใช้งานจริง

การใช้ Apidog สำหรับเวิร์กโฟลว์ API ในการใช้งานจริง

ก่อนที่จะปรับใช้การรวม GPT-5.4 ในการใช้งานจริง ให้สร้างเวิร์กโฟลว์การทดสอบและการตรวจสอบที่แข็งแกร่ง:

ไปป์ไลน์การทดสอบ API:

การทำงานร่วมกันเป็นทีม:

รูปแบบการรวมระบบ:

กลยุทธ์การเพิ่มประสิทธิภาพต้นทุน

การเพิ่มประสิทธิภาพ Prompt

# ไม่ดี: Prompt ที่ยาวเกินไป
bad_prompt = """
สวัสดี! หวังว่าคุณจะสบายดีนะคะ ฉันสงสัยว่าคุณพอจะช่วยฉันได้ไหมคะ
ฉันมีโค้ดนี้และไม่แน่ใจว่ามันทำอะไร ช่วยอธิบายให้ฉันฟังหน่อยได้ไหมคะ? นี่คือโค้ด:
""" + code

# ดี: Prompt โดยตรง
good_prompt = f"อธิบายว่าโค้ดนี้ทำอะไร:\n{code}"

# การประหยัดโทเค็น: ~50 โทเค็น = $0.000125 ต่อคำขอ
# ที่ 1 ล้านคำขอ/เดือน: ประหยัด $125

การควบคุมความยาวการตอบสนอง

# ตั้งค่า max_tokens อย่างเหมาะสม
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "สรุปบทความนี้"}],
    max_tokens=200  # อย่าปล่อยให้มันพูดพล่าม
)

# ใช้ stop sequences
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "แสดงรายการ 5 รายการ"}],
    stop=["\n\n", "6."]  # หยุดหลังจากรายการ
)

การประมวลผลแบบแบตช์

# ใช้ Batch API เพื่อรับส่วนลด 50%
from openai import OpenAI

client = OpenAI()

# สร้างไฟล์แบตช์
batch_requests = []
for article in articles:
    batch_requests.append({
        "custom_id": article["id"],
        "method": "POST",
        "url": "/v1/chat/completions",
        "body": {
            "model": "gpt-5.4",
            "messages": [{"role": "user", "content": article["content"]}]
        }
    })

# อัปโหลดและประมวลผล
batch_file = client.files.create(
    file=json.dumps(batch_requests),
    purpose="batch"
)

batch = client.batches.create(
    input_file_id=batch_file.id,
    endpoint="/v1/chat/completions",
    completion_window="24h"
)

# ประหยัดค่าใช้จ่าย 50% สำหรับเวิร์กโหลดที่ไม่ต้องใช้เวลาจริง

การแคชคำขอซ้ำๆ

import hashlib
import json

class ResponseCache:
    """แคชการตอบสนอง API ที่เหมือนกัน"""

    def __init__(self):
        self.cache = {}

    def _get_key(self, messages):
        return hashlib.md5(json.dumps(messages).encode()).hexdigest()

    def get_or_create(self, client, messages, **kwargs):
        key = self._get_key(messages)

        if key in self.cache:
            return self.cache[key]

        response = client.chat.completions.create(
            model="gpt-5.4",
            messages=messages,
            **kwargs
        )

        self.cache[key] = response
        return response

# การใช้งาน
cache = ResponseCache()
response = cache.get_or_create(client, messages)

สรุป

GPT-5.4 เปิดโอกาสใหม่ๆ สำหรับแอปพลิเคชันที่ขับเคลื่อนด้วย AI การใช้งานคอมพิวเตอร์แบบเนทีฟช่วยให้เกิดระบบอัตโนมัติของเบราว์เซอร์และเวิร์กโฟลว์ข้ามแอปพลิเคชัน การค้นหาเครื่องมือช่วยลดต้นทุนได้ 47% ขณะที่รองรับระบบนิเวศเครื่องมือขนาดใหญ่ วิสัยทัศน์ที่ได้รับการปรับปรุงจัดการการแยกวิเคราะห์เอกสารที่ซับซ้อน และหน้าต่างบริบท 1M ประมวลผลโค้ดเบสทั้งหมดได้

การสร้างแอปพลิเคชันที่ใช้งานจริงด้วย GPT-5.4 ต้องการการทดสอบ API ที่แข็งแกร่ง การดีบัก และเวิร์กโฟลว์การจัดทำเอกสาร Apidog เป็นแพลตฟอร์มแบบรวมสำหรับวงจรชีวิต API ที่สมบูรณ์

button

ไม่ว่าคุณจะสร้าง AI agents, ทำให้เวิร์กโฟลว์เป็นไปโดยอัตโนมัติ หรือสร้างฟีเจอร์ที่ลูกค้าใช้งานซึ่งขับเคลื่อนโดย GPT-5.4 การมีแนวทางปฏิบัติในการพัฒนา API ที่แข็งแกร่งจะช่วยเร่งการส่งมอบและลดข้อผิดพลาด

เริ่มต้นด้วยการสนทนาทั่วไป จากนั้นเพิ่มความสามารถในการใช้งานคอมพิวเตอร์ การค้นหาเครื่องมือ และวิสัยทัศน์ตามที่กรณีการใช้งานของคุณต้องการ ตรวจสอบค่าใช้จ่ายอย่างใกล้ชิดในระหว่างการปรับใช้เริ่มต้น และเพิ่มประสิทธิภาพของพรอมต์และกลยุทธ์การแคช

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

ฉันจะใช้คุณสมบัติการใช้งานคอมพิวเตอร์ของ GPT-5.4 ได้อย่างไร?

ใช้เครื่องมือ computer ในคำขอ API ส่งภาพหน้าจอเป็นรูปภาพ รับคำสั่งคอมพิวเตอร์ (คลิก, พิมพ์, เลื่อน) ในการตอบสนอง ดำเนินการคำสั่งโดยใช้ pyautogui หรือ Playwright จากนั้นส่งภาพหน้าจอใหม่ วนซ้ำจนกว่างานจะเสร็จสมบูรณ์ กำหนดค่านโยบายความปลอดภัยตามระดับความเสี่ยงที่ยอมรับได้

Tool search คืออะไรและฉันจะเปิดใช้งานได้อย่างไร?

Tool search โหลดคำจำกัดความของเครื่องมือตามความต้องการแทนที่จะโหลดล่วงหน้า ซึ่งช่วยลดการใช้โทเค็นได้ 47% เปิดใช้งานโดยการให้รายการเครื่องมือที่มีน้ำหนักเบาในคำขอ โมเดลจะร้องขอคำจำกัดความเต็มเมื่อจำเป็น ใช้งานได้โดยอัตโนมัติกับเซิร์ฟเวอร์ MCP

ฉันจะใช้หน้าต่างบริบท 1M โทเค็นได้อย่างไร?

กำหนดค่าผ่านพารามิเตอร์ extra_body: model_context_window: 1048576 และ model_auto_compact_token_limit: 272000 หมายเหตุ: คำขอที่เกิน 272K โทเค็นจะนับในอัตราการใช้งาน 2 เท่า มีให้ทดลองใน Codex

GPT-5.4 และ GPT-5.4-Pro แตกต่างกันอย่างไร?

GPT-5.4 Pro ให้ความแม่นยำสูงกว่าในการให้เหตุผลที่ซับซ้อน (89.3% เทียบกับ 82.7% ใน BrowseComp) แต่มีค่าใช้จ่ายมากกว่า 12 เท่า ($30/$180 เทียบกับ $2.50/$15) ใช้รุ่นมาตรฐานสำหรับงานส่วนใหญ่ และรุ่น Pro สำหรับงานที่ต้องการความแม่นยำสูงสุด

ฉันจะลดค่าใช้จ่าย GPT-5.4 API ได้อย่างไร?

ใช้ข้อมูลอินพุตที่แคชไว้ (ประหยัดได้ 90%), เพิ่มประสิทธิภาพความยาวของพรอมต์, กำหนดขีดจำกัด max_tokens, ใช้ Batch API (ส่วนลด 50%), ใช้การแคชการตอบสนอง และเลือกระดับรายละเอียดที่เหมาะสมสำหรับรูปภาพ

GPT-5.4 สามารถประมวลผลหลายรูปภาพในคำขอเดียวได้หรือไม่?

ได้ รวมส่วนเนื้อหา image_url หลายรายการในข้อความเดียว มีประโยชน์สำหรับเอกสารหลายหน้า งานเปรียบเทียบ หรือภาพหน้าจอตามลำดับ

ฉันจะจัดการ Rate Limit ในการใช้งานจริงได้อย่างไร?

ใช้ตรรกะการลองใหม่แบบ exponential backoff (หน่วงเวลา 1s, 2s, 4s), ใช้ Batch API สำหรับการประมวลผลจำนวนมาก, กระจายคำขอในช่วงเวลาหนึ่ง และร้องขอการเพิ่มขีดจำกัดสำหรับการใช้งานที่มีปริมาณมาก

GPT-5.4 รองรับภาษาโปรแกรมใดได้ดีที่สุด?

GPT-5.4 เก่งใน Python, JavaScript/TypeScript, React, Node.js และเทคโนโลยีเว็บทั่วไป และยังเก่งใน Java, Go, Rust และ SQL ตรงกับประสิทธิภาพของ GPT-5.3-Codex (57.7% SWE-Bench Pro)

ฉันจะสตรีมการตอบสนอง GPT-5.4 ได้อย่างไร?

ตั้งค่า stream=True ในคำขอ API วนซ้ำผ่าน chunk และประมวลผลแต่ละ delta ช่วยลดความล่าช้าที่รับรู้ได้สำหรับการตอบสนองที่ยาวนาน

GPT-5.4 เหมาะสำหรับเวิร์กโหลดการใช้งานจริงหรือไม่?

ใช่ GPT-5.4 มีข้อผิดพลาดด้านข้อเท็จจริงน้อยกว่า GPT-5.2 ถึง 33%, ใช้โทเค็นได้อย่างมีประสิทธิภาพมากขึ้น และมีการจัดการข้อผิดพลาดที่แข็งแกร่ง ใช้ตรรกะการลองใหม่ การตรวจสอบ และการติดตามต้นทุนสำหรับการปรับใช้ในการใช้งานจริง

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API