token คืออะไร?
token คือชิ้นส่วนข้อความที่โมเดลอ่านและเขียน คำภาษาอังกฤษหนึ่งคำมักเป็น 1-2 token ส่วนภาษาไทยซึ่งไม่เว้นวรรคระหว่างคำ มักใช้ token ต่อข้อความมากกว่าภาษาอังกฤษที่ความยาวใกล้กัน โค้ดและตัวเลขก็ใช้ token ค่อนข้างมาก จำนวนที่แน่นอนจึงควรดูจากบันทึกการใช้งาน ไม่ใช่เดา
token อินพุตกับเอาต์พุตต่างกันยังไง?
- อินพุต: ทุกอย่างที่ส่งไปให้โมเดล ทั้งคำสั่งระบบ (system prompt) ข้อความผู้ใช้ ประวัติการคุย และเนื้อหาไฟล์
- เอาต์พุต: คำตอบที่โมเดลเขียนออกมา ราคาเอาต์พุตมักแพงกว่าอินพุตหลายเท่า
สูตรคำนวณ
ค่าใช้จ่ายต่อครั้ง = (token อินพุต ÷ 1,000,000 × ราคาอินพุต) + (token เอาต์พุต ÷ 1,000,000 × ราคาเอาต์พุต)
ตัวอย่างด้วยตัวเลขกลม ๆ (ตัวเลขสมมติ ไม่ใช่ราคาจริง): ราคาอินพุต 100 บาท และเอาต์พุต 400 บาทต่อ 1 ล้าน token แชตหนึ่งครั้งใช้อินพุต 2,000 token และเอาต์พุต 500 token:
| ส่วน | วิธีคิด | ค่าใช้จ่าย |
|---|---|---|
| อินพุต | 2,000 ÷ 1,000,000 × 100 บาท | 0.20 บาท |
| เอาต์พุต | 500 ÷ 1,000,000 × 400 บาท | 0.20 บาท |
| รวมต่อแชต | 0.40 บาท | |
| 1,000 แชตแบบนี้ | 400 บาท |
ราคาจริงของแต่ละโมเดลตอนนี้ (บาทต่อ 1 ล้าน token):
ราคาจริงตอนนี้
ประมาณจากราคาในหน้าโมเดล: แชทละ 2,000 token input และ 500 token output ยอดหักจริงดูได้ในคอนโซล
| โมเดล | ต่อแชท | 1,000 แชท |
|---|---|---|
| GEM 3.8 Flash | US$0.000286 | US$0.29 |
| TT-6 Luna | US$0.000688 | US$0.69 |
| TT-6.1 Terra | US$0.000469 | US$0.47 |
| HK-5.5 | US$0.000225 | US$0.23 |
| GEM 4 Argon | US$0.005469 | US$5.47 |
| TT-6.1 Sol | US$0.000939 | US$0.94 |
คำนวณค่าใช้จ่ายของงานตัวเองทีละขั้น
- ส่งงานจริงของคุณ 5-10 ครั้งด้วยโมเดลที่จะใช้
- เปิดคอนโซล → การใช้งาน ดู token อินพุต เอาต์พุต และค่าใช้จ่ายของแต่ละครั้ง
- หาค่าเฉลี่ยต่อครั้ง
- คูณด้วยจำนวนครั้งที่คาดว่าจะใช้ต่อวันหรือต่อเดือน
- เผื่อไว้ 20-30% สำหรับวันที่ลูกค้าทักเยอะหรือบทสนทนายาวกว่าปกติ
ตำแหน่งในหน้าจอ: หน้าการใช้งานแสดงการเรียก 50 ครั้งล่าสุด แต่ละแถวมีชื่อโมเดล token อินพุต / เอาต์พุต และค่าใช้จ่ายเป็นบาท ถ้าเรียกผ่านโค้ด ฟิลด์ usage ในคำตอบของ API ก็บอกจำนวน token เดียวกัน
ดึงจำนวน token จากโค้ดได้แบบนี้:
from openai import OpenAI
client = OpenAI(base_url="https://api.macloudai.com/v1", api_key="sk-...")
r = client.chat.completions.create(
model="gem-3.8-flash",
messages=[{"role": "user", "content": "สรุปข้อดีของการขายของออนไลน์ 3 ข้อ"}],
)
print("input token:", r.usage.prompt_tokens)
print("output token:", r.usage.completion_tokens)
ทำไมบทสนทนายาวยิ่งแพง?
โมเดลไม่ได้จำบทสนทนาเอง ทุกข้อความใหม่ต้องส่งประวัติทั้งหมดไปพร้อมกัน และทั้งหมดนับเป็น token อินพุต ข้อความที่ 20 ในห้องแชตเดียวอาจมีอินพุตเป็นหมื่น token ทั้งที่คำถามสั้นนิดเดียว เช่นเดียวกับ Claude Code ที่ส่งไฟล์และผลคำสั่งไปทุกขั้น
ลดค่าใช้จ่ายยังไง?
- เลือกโมเดลให้ตรงงาน รุ่นเล็กสำหรับสรุปและจัดหมวด รุ่นใหญ่สำหรับงานคิดซับซ้อน ดูวิธีเลือกโมเดล
- จำกัดประวัติที่ส่งไป หรือเริ่มบทสนทนาใหม่เมื่อเปลี่ยนเรื่อง
- ตั้ง
max_tokensไม่ให้คำตอบยาวเกินจำเป็น และบอกในคำสั่งว่าให้ตอบสั้น - เขียน system prompt ให้กระชับ เพราะถูกส่งทุกครั้ง
ยอดเงินหักเมื่อไหร่ และถ้าหมดจะเป็นยังไง?
หักทันทีหลังเรียกใช้แต่ละครั้งจากยอดที่เติมไว้ ไม่มีบิลปลายเดือน ไม่มีค่ารายเดือนหรือขั้นต่ำต่อเดือน เมื่อยอดหมด คำขอถัดไปจะถูกปฏิเสธ (403) เติมเงินที่หน้าเติมเงิน แล้วใช้ต่อได้ทันที ยอดคงเหลือไม่หมดอายุตราบที่บัญชียังใช้งานอยู่