# GPT 5.4 API เอกสารอ้างอิง API ฉบับสมบูรณ์สำหรับโมเดล GPT 5.4 โมเดลภาษาขนาดใหญ่ ที่ขับเคลื่อนโดย OpenAI. ## ตัวเลือกโมเดล API นี้รองรับโมเดล 4 ตัวเลือก: | โมเดล | ID | คำอธิบาย | |-------|----|-------------| | **GPT 5.4 Text to Text** | `gpt-5.4-text-to-text` | โมเดลภาษาขนาดใหญ่ ข้อความทั่วไปและการให้เหตุผล | | **GPT 5.4 Image to Text** | `gpt-5.4-image-to-text` | การเข้าใจรูปภาพพร้อมคำสั่งข้อความ | | **GPT 5.4 Web Search** | `gpt-5.4-web-search` | โมเดลภาษาขนาดใหญ่ ข้อความพร้อมความสามารถค้นเว็บ | | **GPT 5.4 File Analysis** | `gpt-5.4-file-analysis` | การวิเคราะห์ไฟล์พร้อมคำสั่งข้อความ | ## เปรียบเทียบอย่างรวดเร็ว | ฟีเจอร์ | Text to Text | Image to Text | Web Search | File Analysis | |---------|--------------|---------------|------------|---------------| | อินพุตข้อความ | จำเป็น ✅ | ไม่บังคับ | จำเป็น ✅ | ไม่บังคับ | | อินพุตรูปภาพ | ไม่รองรับ ❌ | ไม่บังคับ | ไม่บังคับ | ไม่บังคับ | | อินพุตไฟล์ | ไม่รองรับ ❌ | ไม่รองรับ ❌ | ไม่บังคับ | ไม่บังคับ | | การตอบกลับแบบสตรีม | SSE | SSE | SSE | SSE | | `max_tokens` | ไม่บังคับ | ไม่บังคับ | ไม่บังคับ | ไม่บังคับ | ## GPT 5.4 ข้อความเป็นข้อความ ### จุดเชื่อมต่อ ```http POST /api/v1/chat/completions ``` ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ประเภท | คำอธิบาย | |-----------|------|-------------| | `model` | string | ต้องเป็น `"gpt-5.4-text-to-text"` | | `messages` | array | ข้อความตามลำดับ ดูโครงสร้างข้อความใน โมเดลภาษาขนาดใหญ่ API. | | `stream` | boolean | `true` สำหรับ SSE, `false` สำหรับการตอบกลับ JSON เดี่ยว | #### การรองรับข้อความ | ฟิลด์ | ข้อความ | ไฟล์ | รูปภาพ | |-------|------|------|-------| | `messages` | จำเป็น ✅ | ไม่รองรับ ❌ | ไม่รองรับ ❌ | #### ไม่บังคับ | พารามิเตอร์ | ประเภท | ช่วง | คำอธิบาย | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | จำนวน token เอาต์พุตสูงสุด. | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-5.4-text-to-text', messages: [ { role: 'user', content: 'Write a short launch announcement for a new AI feature.' } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 5.4 รูปภาพเป็นข้อความ ### จุดเชื่อมต่อ ```http POST /api/v1/chat/completions ``` ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ประเภท | คำอธิบาย | |-----------|------|-------------| | `model` | string | ต้องเป็น `"gpt-5.4-image-to-text"` | | `messages` | array | ข้อความตามลำดับ ดู โมเดลภาษาขนาดใหญ่ API และ โมเดลภาษาขนาดใหญ่ Attachments. | | `stream` | boolean | `true` สำหรับ SSE, `false` สำหรับการตอบกลับ JSON เดี่ยว | #### การรองรับข้อความ | ฟิลด์ | ข้อความ | ไฟล์ | รูปภาพ | |-------|------|------|-------| | `messages` | ไม่บังคับ | ไม่รองรับ ❌ | ไม่บังคับ | #### ไม่บังคับ | พารามิเตอร์ | ประเภท | ช่วง | คำอธิบาย | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | จำนวน token เอาต์พุตสูงสุด. | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-5.4-image-to-text', messages: [ { role: 'user', content: [ { type: 'text', text: 'Describe the image and extract any visible text.' }, { type: 'image_url', image_url: { url: 'https://example.com/sample-image.jpg' } } ] } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 5.4 การค้นเว็บ ### จุดเชื่อมต่อ ```http POST /api/v1/chat/completions ``` ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ประเภท | คำอธิบาย | |-----------|------|-------------| | `model` | string | ต้องเป็น `"gpt-5.4-web-search"` | | `messages` | array | ข้อความตามลำดับ ดู โมเดลภาษาขนาดใหญ่ API และ โมเดลภาษาขนาดใหญ่ Attachments. | | `stream` | boolean | `true` สำหรับ SSE, `false` สำหรับการตอบกลับ JSON เดี่ยว | #### การรองรับข้อความ | ฟิลด์ | ข้อความ | ไฟล์ | รูปภาพ | |-------|------|------|-------| | `messages` | จำเป็น ✅ | ไม่บังคับ | ไม่บังคับ | #### ไม่บังคับ | พารามิเตอร์ | ประเภท | ช่วง | คำอธิบาย | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | จำนวน token เอาต์พุตสูงสุด. | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-5.4-web-search', messages: [ { role: 'user', content: 'Find recent product launch trends in AI developer tools.' } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 5.4 การวิเคราะห์ไฟล์ ### จุดเชื่อมต่อ ```http POST /api/v1/chat/completions ``` ### พารามิเตอร์คำขอ #### จำเป็น | พารามิเตอร์ | ประเภท | คำอธิบาย | |-----------|------|-------------| | `model` | string | ต้องเป็น `"gpt-5.4-file-analysis"` | | `messages` | array | ข้อความตามลำดับ ดู โมเดลภาษาขนาดใหญ่ API และ โมเดลภาษาขนาดใหญ่ Attachments. | | `stream` | boolean | `true` สำหรับ SSE, `false` สำหรับการตอบกลับ JSON เดี่ยว | #### การรองรับข้อความ | ฟิลด์ | ข้อความ | ไฟล์ | รูปภาพ | |-------|------|------|-------| | `messages` | ไม่บังคับ | ไม่บังคับ | ไม่บังคับ | #### ไม่บังคับ | พารามิเตอร์ | ประเภท | ช่วง | คำอธิบาย | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | จำนวน token เอาต์พุตสูงสุด. | ### ตัวอย่างคำขอ ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-5.4-file-analysis', messages: [ { role: 'user', content: [ { type: 'text', text: 'Summarize this document and list the key action items.' }, { type: 'file', file: { filename: 'demo.pdf', file_data: 'https://example.com/demo.pdf' } } ] } ], stream: true, max_tokens: 2048 }) }); ``` ## รูปแบบการตอบกลับ โมเดล LLM GPT 5.4 ส่งคืนการตอบกลับ completion ที่เข้ากันได้กับ OpenAI เมื่อใช้ `stream: true` การตอบกลับจะเป็น Server-Sent Events; เมื่อใช้ `stream: false` การตอบกลับจะเป็นออบเจกต์ JSON เดี่ยว ### การตอบกลับเมื่อสำเร็จ ```text data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-5.4-image-to-text","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-5.4-image-to-text","choices":[{"index":0,"delta":{"content":"The image shows"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-5.4-image-to-text","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-5.4-image-to-text","choices":[],"usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}} data: [DONE] ``` ### การตอบกลับข้อผิดพลาด ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## แนวทางปฏิบัติที่ดี 1. **คงข้อความให้มีโครงสร้าง:** ใช้ `messages[]` สำหรับประวัติบทสนทนาแทนการรวมบริบทเป็นพรอมต์เดียว. 2. **แนบไฟล์และรูปภาพกับข้อความ:** ใส่ส่วน `image_url` และ `file` ไว้ในข้อความที่ใช้อ้างอิงถึงสิ่งเหล่านั้น. 3. **ใช้การ parse SSE:** อ่าน `choices[0].delta.content` สำหรับการแสดงผลทีละส่วน และใช้ `data: [DONE]` เป็นเนื้อหาสุดท้าย. 4. **ส่งเฉพาะอินพุตที่รองรับ:** จับคู่ส่วนข้อความ รูปภาพ และไฟล์กับ model variant ที่เลือก. 5. **จัดเก็บสถานะคำขอไว้ในเครื่อง:** chunk มี completion `id` แต่ไคลเอนต์ยังควร route chunk ผ่านสถานะคำขอที่ใช้งานอยู่