ทำไมผมถึงเลิก 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 หลายๆ รายอย่างไร? คุณใช้เครื่องมือที่มีอยู่แล้ว หรือสร้างขึ้นมาเอง?

แหล่งที่มา: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-hardcoding-ai-api-calls-and-built-a-simple-abstraction-layer-27me