این نقطه پایانی برای تولید تکمیلهای متنی غیر گفتگو از یک پرامپت معین استفاده میشود و با API قدیمی تکمیل متن OpenAI سازگار است. برای کاربردهای جدید و مبتنی بر گفتگو، استفاده از API تکمیل گفتگو توصیه میشود.
اندپوینت
/v1/chat/completions
/v1/completions
/api/v1/completions
هدرهای استاندارد احراز هویت (مانند `Authorization: Bearer YOUR_API_KEY`) مورد نیاز است. همچنین توصیه میشود هدرهای `HTTP-Referer` و `X-Title` را برای شناسایی بهتر برنامه خود ارسال کنید.
پارامتر | نوع | ضروری؟ | توضیحات |
---|---|---|---|
model | string | بله | شناسه مدلی که برای تکمیل استفاده میشود. مثال: `openai/gpt-3.5-turbo-instruct`. |
prompt | string | string[] | بله | پرامپت(ها) برای تولید تکمیلها. میتواند یک رشته یا آرایهای از رشتهها باشد. |
stream | boolean | خیر | برای دریافت جریانی از رویدادهای ارسالی از سرور (Server-Sent Events) روی `true` تنظیم کنید. در غیر این صورت، یک پاسخ JSON واحد بازگردانده میشود. |
max_tokens | integer | خیر | حداکثر تعداد توکنهایی که در تکمیل تولید میشود. |
temperature | number | خیر | کنترل تصادفی بودن (معمولاً بین 0.0 تا 2.0). مقادیر کمتر، مدل را قطعیتر میکند. |
top_p | number | خیر | نمونهبرداری هستهای. توکنهایی با جرم احتمال `top_p` را در نظر میگیرد. |
n | integer | خیر | چه تعداد تکمیل برای هر پرامپت تولید شود (در حال حاضر معمولاً فقط `1` پشتیبانی میشود). |
stop | string | string[] | خیر | حداکثر ۴ دنباله که در آنجا API تولید توکنهای بیشتر را متوقف میکند. |
presence_penalty | number | خیر | مقادیر مثبت، توکنهای جدید را بر اساس اینکه آیا تاکنون در متن ظاهر شدهاند، جریمه میکند. |
frequency_penalty | number | خیر | مقادیر مثبت، توکنهای جدید را بر اساس فراوانی موجودشان در متن تاکنون، جریمه میکند. |
logit_bias | object | خیر | احتمال ظهور توکنهای مشخص شده در تکمیل را تغییر دهید. مثال: `{ "token_id": bias_value }`. |
user | string | خیر | یک شناسه منحصر به فرد که نماینده کاربر نهایی شما است و میتواند به نظارت و تست A/B کمک کند. |
بسیاری از این پارامترها (مانند `model`, `temperature`, `max_tokens`, `stream`, `user`, و غیره) با پارامترهای عمومی که در API تکمیل گفتگو نیز استفاده میشوند، مشترک هستند. برای توضیحات دقیقتر در مورد رفتار آنها، به صفحه پارامترهای عمومی مراجعه کنید.
curl -X POST https://rahyana.ir/api/v1/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Title: My cURL Completions Test" \
-H "HTTP-Referer: https://example.com/curl-completions" \
-d '{
"model": "openai/gpt-3.5-turbo-instruct",
"prompt": "Translate the following English text to Farsi: ''Hello, world!''" }'
اگر `stream: false` باشد (یا ارسال نشود)، پاسخ یک آبجکت JSON با ساختار زیر خواهد بود:
{
"id": "cmpl-xxxxxxxxxxxxxx",
"object": "text_completion",
"created": 1689000000,
"model": "openai/gpt-3.5-turbo-instruct",
"choices": [
{
"text": "
به نام خدا،
آزمایش، آزمایش، آزمایش.",
"index": 0,
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 7,
"completion_tokens": 16,
"total_tokens": 23
}
}
پارامتر | نوع | ضروری؟ | توضیحات |
---|---|---|---|
id | string | خیر | شناسه یکتای تکمیل. |
object | string | خیر | نوع آبجکت. |
created | integer | خیر | زمان ایجاد تکمیل به صورت Unix timestamp (ثانیه) از مبدا UTC. |
model | string | خیر | مدل استفاده شده برای تولید پاسخ. |
choices | array | خیر | آرایهای از انتخابهای تکمیل. هر انتخاب شامل متن تکمیل شده و اطلاعات دیگر است. |
usage | object | بله | اطلاعات مربوط به تعداد توکنهای مصرفی. در حالت استریم، این اطلاعات از هدرهای پاسخ خوانده میشوند. |
choices
فیلد | نوع | توضیحات |
---|---|---|
text | string | متن تکمیل شده توسط مدل. |
index | integer | اندیس انتخاب. |
logprobs | object | null | احتمالات لاگ (معمولاً `null`). |
finish_reason | string | null | دلیل توقف: `stop`, `length`, `content_filter`, یا `null`. |
usage
فیلد | نوع | توضیحات |
---|---|---|
prompt_tokens | integer | توکنهای پرامپت. |
completion_tokens | integer | توکنهای تکمیل. |
total_tokens | integer | مجموع توکنها. |
اگر `stream: true` باشد، پاسخ به صورت مجموعهای از Server-Sent Events (SSE) با `Content-Type: text/event-stream` ارسال میشود. هر رویداد یک قطعه JSON از نوع `text_completion.chunk` است. آخرین پیام `data: [DONE]` خواهد خواهد بود.
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "به", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": " نام", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": " خدا،", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "
", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "آزمایش", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "،", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": " آزمایش", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "،", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": " آزمایش.", "index": 0, "logprobs": null, "finish_reason": null}]}
data: {"id": "cmpl-xxxxxxxxxxxxxx", "object": "text_completion.chunk", "created": 1689000000, "choices": [{"text": "", "index": 0, "logprobs": null, "finish_reason": "length"}]}
data: [DONE]
برای اطلاعات دقیقتر در مورد پردازش پاسخهای جریانی، به صفحه مستندات استریمینگ مراجعه کنید.
هدر | نوع | توضیحات |
---|---|---|
X-Input-Tokens | integer | توکنهای ورودی. |
X-Output-Tokens | integer | توکنهای خروجی. |
X-Credits-Used | number | اعتبار مصرفی (تومان). |
X-Credits-Remaining | number | اعتبار باقیمانده. |
این هدرها پس از اینکه سرور کل پاسخ را ارسال کرد (برای درخواستهای غیر استریم) یا پس از پایان کامل جریان و دریافت پیام `[DONE]` (برای درخواستهای استریم) در دسترس خواهند بود.