رفتن به محتوا
سارویتوسعه‌دهندگان
مستندات/شروع کنید

SDK و ابزارهای توسعه

کلاینت آشنای خود را نگه دارید یا از SDK ساروی برای قابلیت‌های اختصاصی استفاده کنید.

مسیر مناسب را انتخاب کنید

نیاز شماانتخاب
پاسخ و گفتگو در برنامهٔ OpenAIکلاینت رسمی OpenAI با آدرس پایهٔ ساروی
Messages در برنامهٔ Anthropicکلاینت رسمی Anthropic؛ زیرمجموعهٔ پشتیبانی‌شده
Studio، Work، فایل، مصرف و پاسخSDK پیش‌نمایش ساروی برای TypeScript یا Python

SDKهای ساروی در این نسخه به‌صورت بستهٔ قابل دانلود ارائه می‌شوند؛ نام بسته در رجیستری عمومی منتشر نشده است. بستهٔ همین نسخه را نصب کنید و قبل از استفاده در محصول، نمونه‌ها را در محیط آزمایشی اجرا کنید.

نصب SDK ساروی

دریافت بستهٔ TypeScript · دریافت بستهٔ Python

bash
npm install ./sarovi-sdk-0.1.0.tgz
# Python
pip install ./sarovi_sdk-0.1.0.tar.gz
typescript
import { Sarovi } from "@sarovi/sdk";
const client = new Sarovi({ apiKey: process.env.SAROVI_API_KEY });
const response = await client.responses.create({
  model: "z-ai/glm-5.3-flash",
  input: "یک پیام خوش‌آمدگویی کوتاه بنویس.",
  max_output_tokens: 512,
});
console.log(response.output_text);
python
from sarovi import Sarovi
with Sarovi() as client:
    response = client.responses.create(
        model="z-ai/glm-5.3-flash",
        input="یک پیام خوش‌آمدگویی کوتاه بنویس.",
        max_output_tokens=512,
    )
    print(response["output_text"])

پاسخ زنده

typescript
for await (const event of client.responses.stream({
  model: "z-ai/glm-5.3-flash", input: "یک داستان کوتاه بنویس.",
  max_output_tokens: 1024,
})) {
  if (event.type === "response.output_text.delta") process.stdout.write(event.delta);
}

پایان اتصال به‌تنهایی موفقیت نیست. SDK خطای جریان و قطع شدن پیش از پیام پایانی را گزارش می‌کند. لغو حلقه، دریافت جریان را متوقف می‌کند؛ اعتبار بخش اجراشده ممکن است مصرف شده باشد.

قابلیت‌های اختصاصی

client.models.list() مدل‌ها را می‌خواند. client.studio.image()، audio() و text() ورودی قرارداد همان مسیر را می‌گیرند. برای ویدیو، video() شناسهٔ کار می‌دهد و videoStatus() همان کار را بررسی می‌کند؛ ساخت ویدیو را در حلقه تکرار نکنید.

client.work.create() کار تازه می‌سازد؛ retrieve()، wait()، cancel() و files() برای همان شناسه هستند. wait() فقط وضعیت را می‌خواند و کار تازه‌ای ایجاد نمی‌کند. client.balance() و client.usage() به usage:read نیاز دارند.

خطا و تلاش مجدد

SaroviError وضعیت HTTP، کد خطا و requestId (در Python: request_id) دارد. تلاش مجدد خودکار عملیات پولی پیش‌فرض نیست. برای تکرار همان درخواست، idempotencyKey (در Python: idempotency_key) را ثابت نگه دارید. TypeScript از AbortSignal و Python از مهلت درخواست پشتیبانی می‌کند.

مرجع کامل API قرارداد ورودی‌ها و پاسخ‌ها را نشان می‌دهد. تغییر نسخه و محدودیت‌ها را در تغییرات API دنبال کنید.

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