رفتن به محتوا
سارویتوسعه‌دهندگان
مستندات/ساخت محصول

نمونهٔ JavaScript

اتصال از Node.js با fetch، مدیریت خطا و شناسهٔ درخواست.

از سمت سرور اجرا کنید

این نمونه در Node.js اجرا می‌شود. مقدار SAROVI_API_KEY نباید با پیشوندهای عمومی فرانت‌اند منتشر شود. اگر یک اپ وب دارید، مرورگر به سرور خودتان درخواست بدهد و سرور به ساروی متصل شود.

javascript
const idempotencyKey = crypto.randomUUID();
const response = await fetch('https://api.sarovi.ir/v1/responses', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.SAROVI_API_KEY,
    'Content-Type': 'application/json',
    'Idempotency-Key': idempotencyKey
  },
  body: JSON.stringify({
    model: 'z-ai/glm-5.3-flash',
    input: 'یک پیام خوش‌آمدگویی کوتاه فارسی بنویس.',
    max_output_tokens: 512
  }),
  signal: AbortSignal.timeout(300_000)
});
const result = await response.json();
const requestId = response.headers.get('x-request-id');
if (!response.ok) {
  console.error({ status: response.status, code: result.error.code, requestId });
  throw new Error(result.error.message);
}
console.log(result.output_text);

پاسخ‌ها را امن رندر کنید

متن خروجی مدل را مستقیماً به innerHTML ندهید. متن معمولی یا یک نمایشگر Markdown با سیاست مناسب استفاده کنید. URLهای منابع را مستقل از HTML مدل مدیریت کنید. برای خروجی فایل، Content-Type و Content-Disposition را بخوانید.

هم‌زمانی محدود

به‌جای فرستادن صدها fetch با Promise.all، صف کار کوچک بسازید. در 429 هدر Retry-After را رعایت کنید و کلید idempotency همان کار را حفظ کنید. timeout محلی به‌تنهایی ثابت نمی‌کند مدل هیچ مصرفی نداشته است.

قرارداد API 1.6.0 · تاریخچهٔ تغییرات