Timeout คืออะไร และทำไมต้องจัดการ?

เมื่อคุณส่งคำถามไปยัง AI API บางครั้งเซิร์ฟเวอร์ตอบสนองช้าเกินไป ระบบจะ "ยกเลิก" การรอ เรียกว่า "Timeout" ซึ่งหมายความว่าคำถามของคุณอาจสูญหาย ทำให้ผู้ใช้งานเห็นหน้าจอขาวหรือข้อผิดพลาดแปลกๆ

ในบทความนี้เราจะสอนคุณจัดการ Timeout อย่างถูกต้อง โดยใช้ HolySheep AI ซึ่งมีความเร็วตอบสนองน้อยกว่า 50 มิลลิวินาที ช่วยลดปัญหา Timeout ได้มาก และมีราคาประหยัดกว่าบริการอื่นถึง 85% พร้อมระบบชำระเงิน WeChat และ Alipay

ขั้นตอนที่ 1: เตรียมโค้ดพื้นฐาน

ก่อนอื่นให้สร้างไฟล์ Python ใหม่ชื่อ api_timeout.py โดยคัดลอกโค้ดด้านล่างนี้ไปวาง:

import requests
import time
from requests.exceptions import ReadTimeout, ConnectTimeout, Timeout

ตั้งค่าการเชื่อมต่อ HolySheep AI

BASE_URL = "https://api.holysheep.ai/v1" API_KEY = "YOUR_HOLYSHEEP_API_KEY" # แทนที่ด้วย API Key ของคุณ def send_message_to_ai(message): """ส่งข้อความไปยัง AI และรอการตอบกลับ""" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "gpt-4.1", "messages": [ {"role": "user", "content": message} ], "max_tokens": 500 } try: # กำหนด timeout 30 วินาที (ถ้าไม่ตอบใน 30 วินาทีจะข้ามไปทำงานใน except) response = requests.post( f"{BASE_URL}/chat/completions", headers=headers, json=data, timeout=30 ) result = response.json() return result["choices"][0]["message"]["content"] except Timeout: return "ขอโทษครับ ระบบตอบสนองช้าเกินไป กรุณาลองใหม่" except ConnectTimeout: return "ไม่สามารถเชื่อมต่อเซิร์ฟเวอร์ได้ กรุณาตรวจสอบอินเทอร์เน็ต" except ReadTimeout: return "รอการตอบกลับนานเกินไป กรุณาลองถามสั้นลง" except Exception as e: return f"เกิดข้อผิดพลาด: {str(e)}"

ทดสอบการใช้งาน

if __name__ == "__main__": print("กำลังส่งคำถามไปยัง AI...") answer = send_message_to_ai("สวัสดีครับ AI") print(f"คำตอบ: {answer}")

ขั้นตอนที่ 2: ทำให้ระบบลองใหม่อัตโนมัติ (Retry Logic)

เมื่อเกิด Timeout บางครั้งแค่รอสักครู่แล้วลองใหม่ก็ใช้ได้ ให้เพิ่มระบบล