OpenAI uyumlu bir API ilə işləyən tətbiqlərdə model fallback (ehtiyat model) mexanizmi qurmaq, xidmətin davamlılığını təmin etmək üçün faydalı ola bilər. Xüsusilə test mühitlərində bir modelin sıradan çıxması, limit aşımı və ya müvəqqəti yavaşlama hallarında ikinci bir modelə keçmək, tətbiqin işini dayandırmamağa kömək edir. Bu yazıda Node.js və rəsmi OpenAI JavaScript paketindən istifadə edərək sadə bir fallback sistemi necə qurmağı izah edirik.
Əsas Konsepsiya
İdeya sadədir: əvvəlcə əsas modelə sorğu göndərilir. Əgər sorğu uğursuz olarsa (səhv kodundan asılı olmayaraq), növbəti model sınaqdan keçirilir. Bütün modellər sıradan çıxsa, xəta fırladılır. Nümunədə iki model — deepseek-chat və qwen-flash — ardıcıl olaraq sınaqdan keçirilir.
Kod parçası:
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://jinzeai.cc/v1", apiKey: process.env.JINZEAI_API_KEY, }); const models = ["deepseek-chat", "qwen-flash"]; async function completeWithFallback(messages) { let lastError; for (const model of models) { try { const response = await client.chat.completions.create({ model, messages }); return { model, text: response.choices[0].message.content }; } catch (error) { lastError = error; console.warn(`${model} failed: ${error.status ?? "unknown"}`); } } throw lastError; }Nə vaxt Fallback İstifadə Edilməlidir?
- Rate limit (sorğu həddi aşımı) xətaları
- Server tərəfi səhvləri (5XX kodları)
- Müvəqqəti zaman aşımı (timeout)
- Modelin hazırda hesabınız üçün əlçatmaz olması
Ancaq autentifikasiya xətalarını (401) səssizcə təkrar cəhd etmək düzgün deyil. Bu halda API açarı yoxlanılmalı, eyni səhv sorğu başqa modelə göndərilməməlidir.
JinzeAI Beta və Qeydlər
Nümunədə JinzeAI'nin OpenAI uyumlu beta endpointi istifadə olunur. Bu xidmət hazırda Çin xaricindəki istifadəçilər üçün sınaq rejimindədir və ödəniş tələb etmir. Beta müddətində model mövcudluğu və test limitləri dəyişə bilər. Ən aktual model siyahısını curl https://jinzeai.cc/v1/models sorğusu ilə əldə etmək mümkündür.
Qeyd edək ki, real API açarınızı heç vaxt açıq repository'də saxlamayın – sızdığı anda mütləq dəyişdirin.
Mənbə: Dev.to (https://dev.to/jinzewang/add-model-fallback-to-an-openai-compatible-nodejs-app-4634)



