เมื่อเช้าวันจันทร์ที่ผ่านมา ทีมของผมเจอ log สีแดงใน Datadog ที่ทำให้หัวใจหยุดเต้น: ConnectionError: HTTPSConnectionPool(host='api.openai.com', port=443): Read timed out. (read timeout=600) — คำขอ batch ขนาด 500 รายการที่กำลังประมวลผลเอกสาร PDF ทั้งคืน ล้มเหลวเกือบ 80% เพราะเราเรียก API แบบ synchronous ติดกัน 500 ครั้ง ภายใน 30 นาทีหลังจากนั้น ผมได้เรียนรู้บทเรียนราคาแพง: การเลือกระหว่าง Batch กับ Streaming ไม่ใช่แค่เรื่อง UX แต่เป็นเรื่องของการอยู่รอดของโครงการ

บทความนี้มาจากประสบการณ์ตรงของผมในการ migrate ระบบ RAG pipeline ขนาด 12 ล้านเอกสาร ที่ใช้งบไปกว่า $48,000/เดือน บน OpenAI direct ก่อนจะลดเหลือ $19,200/เดือน หลังย้ายมาใช้ async batch + HolySheep AI เป็น gateway

Streaming กับ Batch: ความแตกต่างที่ส่งผลต่อบิล

ก่อนจะลงลึก เรามาทำความเข้าใจก่อนว่า 2 รูปแบบนี้ต่างกันอย่างไรในแง่โครงสร้างต้นทุน