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 บางครั้งแค่รอสักครู่แล้วลองใหม่ก็ใช้ได้ ให้เพิ่มระบบล