Tại sao tôi ngừng phụ thuộc vào một nhà cung cấp AI duy nhất

Tôi đã xây dựng một chatbot thời gian thực cho một diễn đàn cộng đồng. Tôi chỉ sử dụng OpenAI API. Mọi thứ có vẻ thật đơn giản.

Ba tuần sau, tôi gặp lỗi 5xx trong giờ cao điểm. Chatbot của tôi ngừng hoạt động. Người dùng rất tức giận. Tôi nhận ra rằng mình không thể tin tưởng vào duy nhất một nhà cung cấp cho các ứng dụng production.

Tôi đã đối mặt với một vài vấn đề khi chỉ dùng một nhà cung cấp:

Tôi đã thử các nhà cung cấp khác, nhưng tất cả đều có định dạng và phương thức xác thực khác nhau. Mã nguồn của tôi trở thành một mớ hỗn độn các câu lệnh switch-case.

Tôi cần một hệ thống để:

Tôi đã tránh sử dụng các thư viện bên thứ ba vì chúng quá cứng nhắc. Thay vào đó, tôi đã xây dựng một hệ thống dự phòng (fallback) tùy chỉnh bằng một thiết kế đơn giản.

Đầu tiên, tôi tạo một giao diện chung (common interface) cho tất cả các nhà cung cấp. Điều này cho phép bất kỳ mô hình AI nào cũng có thể hoạt động với cùng một đoạn mã.

Tiếp theo, tôi xây dựng một lớp điều hướng (router class). Lớp này sẽ thử các nhà cung cấp theo thứ tự. Nó sử dụng cơ chế lùi bước lũy thừa (exponential backoff) và lưu bộ nhớ đệm đơn giản để quản lý các lỗi.

Đây là logic của nó:

Hệ thống này đã cứu dự án của tôi trong ba lần ngừng hoạt động gần đây. Nó vẫn giữ được sự minh bạch và đơn giản.

Nếu bạn xây dựng ứng dụng với AI, hãy nhớ những điểm sau:

Đừng thiết kế quá phức tạp (over-engineer) nếu dự án của bạn nhỏ. Nhưng nếu dịch vụ của bạn phụ thuộc vào thời gian hoạt động (uptime), hãy xây dựng một hệ thống dự phòng.

Bạn xử lý độ tin cậy của nhà cung cấp trong các dự án của mình như thế nào? Bạn có sử dụng một lớp dự phòng hay chỉ dựa vào một nhà cung cấp duy nhất?

Nguồn: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-relying-on-a-single-ai-provider-and-built-a-fallback-system-1pc0