دسته‌ای و فایل‌ها

ساخت کار دسته‌ای

فایل JSONL بارگذاری‌شده را به صورت یک کار غیرهم‌زمان اجرا کنید. اعتبار بدترین حالت همه‌ی سطرها همین‌جا رزرو می‌شود.

POST/v1/batches

روال کار: فایل را با بارگذاری فایل بفرستید، با این مسیر کار را بسازید، وضعیت را با خواندن کار دنبال کنید و وقتی completed شد، فایل‌های نتیجه را با محتوای فایل بردارید.

قالب فایل ورودی

هر سطر یک شیء JSON است:

json
{"custom_id": "q-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "openai/gpt-5.4-mini", "max_tokens": 100, "messages": [{"role": "user", "content": "Hello"}]}}
  • custom_id در فایل یکتا است و تا ۶۴ نویسه. نتیجه را با آن به رکوردهایتان وصل می‌کنید.
  • url همیشه /v1/chat/completions و method همیشه POST است.
  • همه‌ی سطرها یک model دارند.
  • body فقط این فیلدها را می‌پذیرد: model، messages، max_tokens، max_completion_tokens، temperature، top_p، stop، seed، presence_penalty، frequency_penalty، tools، tool_choice، parallel_tool_calls، response_format و reasoning_effort. استریم، n بزرگ‌تر از ۱، ابزارهایی غیر از function و بخش‌های غیر از متن و تصویر در پیام‌ها رد می‌شود.
  • تعداد سطرها سقف دارد؛ از آن بیشتر باشد کل فایل رد می‌شود.
  • یک سطر نادرست کل فایل را با 400 invalid_batch_file رد می‌کند و پیام شماره‌ی آن سطر را می‌گوید. سطر را درست کنید و فایل را دوباره بفرستید.

اعتبار

هنگام ساخت، اعتبارِ بدترین حالت همه‌ی سطرها یک‌جا رزرو می‌شود. سطری که max_tokens ندارد به اندازه‌ی کل سقف خروجی مدل رزرو می‌کند، پس max_tokens را در هر سطر بگذارید. وقتی کار تمام شد، فقط سطرهای موفق به قیمت همان مدل حساب می‌شوند و بقیه‌ی رزرو برمی‌گردد. estimated_credits رزرو و credits مبلغ نهایی است.

نمونه‌ها

curl https://1ai.ir/v1/batches \
  -H "Authorization: Bearer $ONEAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input_file_id": "fil_3vQ8mKx2Rt7LpWc9HdYnZa",
  "endpoint": "/v1/chat/completions",
  "completion_window": "24h",
  "metadata": {
    "job": "reviews-october"
  }
}'
200پاسخ
{
  "id": "bat_7Hn4WqE2yBvTxK9cJdPrMs",
  "object": "batch",
  "endpoint": "/v1/chat/completions",
  "model": "openai/gpt-5.4-mini",
  "errors": null,
  "input_file_id": "fil_3vQ8mKx2Rt7LpWc9HdYnZa",
  "completion_window": "24h",
  "status": "in_progress",
  "output_file_id": null,
  "error_file_id": null,
  "created_at": 1793000100,
  "expires_at": 1793346500,
  "completed_at": null,
  "failed_at": null,
  "expired_at": null,
  "request_counts": {
    "total": 2,
    "completed": 0,
    "failed": 0
  },
  "metadata": {
    "job": "reviews-october"
  },
  "estimated_credits": 1.2,
  "credits": 0
}

بدنه‌ی درخواست

  • input_file_idstringالزامی

    شناسه‌ی فایلی که با purpose=batch بارگذاری کرده‌اید (fil_…).

  • endpointstringالزامی

    فقط گفتگو پشتیبانی می‌شود.

    مقادیر مجاز:/v1/chat/completions
  • completion_windowstringالزامی

    باید 24h باشد.

    مقادیر مجاز:24h
  • metadataobject

    جفت‌های کلید و مقدار رشته‌ای (مقدار تا ۵۱۲ نویسه) که با کار نگه‌داری و در پاسخ برگردانده می‌شود.

خطاها

  • invalid_batch_file400

    سطری از فایل نادرست است یا فایل برای کار دسته‌ای نیست. پیام شماره‌ی سطر را دارد.

  • batch_not_available400

    این مدل یا این کلید به صورت دسته‌ای اجرا نمی‌شود.

  • insufficient_credits402

    موجودی برای رزرو کل فایل کافی نیست. required و available در پاسخ می‌آید.

  • file_not_found404

    فایل ورودی برای حساب شما نیست یا حذف شده است.

  • model_not_found404

    مدل سطرها وجود ندارد یا به آن دسترسی ندارید.

  • budget_exceeded429

    رزرو این کار، همراه کارهای در حال اجرای شما، از بودجه‌ی کلید می‌گذرد.

صفحه‌های مرتبط