ทำไมผมถึงเลิก Hardcoding การเรียกใช้ AI API
ตอนนั้นเป็นเวลา 5 ทุ่ม ผมสร้างเครื่องมือสำหรับนักพัฒนาขึ้นมา OpenAI ใช้งานได้ปกติ แต่แล้วลูกค้าก็ขอให้เพิ่ม Claude เข้ามา
โค้ดของผมมีฟังก์ชันเดียว ซึ่งเป็นการเรียกใช้ OpenAI โดยตรง พอจะเพิ่ม Claude ผมเลยต้องใช้วิธีคัดลอกและวาง ซึ่งมันทำให้โค้ดออกมาแย่มาก
ตอนแรกผมใช้ if-else blocks มันใช้งานได้ดีกับผู้ให้บริการสองราย แต่พอมีรายที่สามเข้ามา ทุกอย่างก็พังทลาย โค้ดกลายเป็นความยุ่งเหยิงไปหมด
ผมเลยสร้าง interface แบบง่ายๆ ขึ้นมา ตอนนี้แอปจะรับแค่ prompt โดยไม่สนใจว่า AI ตัวไหนจะเป็นคนตอบ
นี่คือตรรกะที่ผมใช้:
- สร้าง base class สำหรับผู้ให้บริการทุกราย
- สร้าง class แยกต่างหากสำหรับ OpenAI และ Claude
- ใช้ client ในการเรียกใช้งาน interface
- ใช้ไฟล์ config ในการสลับผู้ให้บริการ
วิธีนี้ก็มีข้อจำกัดเช่นกัน:
- อย่าใช้วิธีนี้ถ้าคุณมีผู้ให้บริการเพียงรายเดียว
- ฟีเจอร์เฉพาะตัวของ AI แต่ละตัวอาจถูกซ่อนไว้
- ข้อผิดพลาด (errors) ของแต่ละผู้ให้บริการนั้นแตกต่างกัน
เริ่มจากง่ายๆ เขียนสำหรับผู้ให้บริการรายเดียวไปก่อน แล้วค่อยทำ Refactor เมื่อคุณต้องการเพิ่มรายที่สอง
แล้วคุณล่ะ จัดการกับผู้ให้บริการ AI หลายๆ รายอย่างไร? คุณใช้เครื่องมือที่มีอยู่แล้ว หรือสร้างขึ้นมาเอง?