هویدای

تکمیل گفتگو

نقطهٔ پایانی اصلی و پارامترها.

زمان مطالعه: ۲ دقیقه

درخواست

POST /v1/chat/completions با بدنهٔ JSON. ساختار درخواست و پاسخ مشابه رایج‌ترین APIهای گفتگو است؛ پس می‌توانید با کلاینت‌های رایج HTTP و کتابخانه‌های شناخته‌شده کار کنید. فیلدهای ناشناخته نادیده گرفته می‌شوند.

پارامترنوعتوضیح
modelرشته، الزامیشناسهٔ مدل از /v1/models، یا auto برای مدل پیش‌فرض.
messagesفهرست، الزامیگفتگو تا اینجا، از قدیمی به جدید. هر پیام یک role (system، developer، user یا assistant) و یک content دارد.
max_tokens / max_completion_tokensعدد صحیحبیشترین طول پاسخ، به توکن (token؛ واحد کوچک متن، تقریباً یک کلمهٔ کوتاه یا بخشی از کلمه). حداکثر ۸۱۹۲.
temperatureعدد، ۰ تا ۲temperature (میزان تصادفی‌بودن پاسخ): عدد کمتر مثل ۰٫۲ پاسخ دقیق‌تر و ثابت‌تر می‌دهد، عدد بیشتر مثل ۱ پاسخ متنوع‌تر.
top_pعدد، ۰ تا ۱top_p (روش دیگر برای محدود کردن تصادفی‌بودن): فقط محتمل‌ترین کلمه‌هایی که مجموع احتمالشان به این سهم می‌رسد در نظر گرفته می‌شوند. یا این را تغییر دهید یا temperature را، نه هر دو.
stopرشته یا فهرستتا ۴ رشته؛ پاسخ درست پیش از اولین رشته‌ای که قرار بود بنویسد تمام می‌شود.
streamبولیstream (ارسال تدریجی): پاسخ را هم‌زمان با نوشته‌شدن قطعه‌قطعه بفرستد؛ استریم پاسخ را ببینید.
stream_options.include_usageبولیدر استریم، مصرف را هم در آخرین قطعه بفرستد.
nعدد صحیحباید ۱ باشد: برای هر درخواست یک پاسخ.

محتوای یک پیام می‌تواند متن ساده یا فهرستی از بخش‌های text و image_url باشد. تصویر را فقط مدلی می‌پذیرد که supports_vision دارد و باید درون خود درخواست، به‌شکل نشانی data: با base64 فرستاده شود.

import os import requests reply = requests.post(    "https://api.hoveydai.ir/v1/chat/completions",    headers={"Authorization": f"Bearer {os.environ['HOVEYDAI_API_KEY']}"},    json={        "model": "MODEL_ID",        "messages": [            {"role": "system", "content": "Answer in Persian, briefly."},            {"role": "user", "content": "What is a token?"},        ],        "max_tokens": 300,        "temperature": 0.4,    },    timeout=60,)reply.raise_for_status()body = reply.json()print(body["choices"][0]["message"]["content"])print(body["usage"])

پاسخ

یک درخواست موفق شیء chat.completion برمی‌گرداند: متن پاسخ در choices[0].message.content است، choices[0].finish_reason دلیل پایان را می‌گوید (stop برای پایان طبیعی، length وقتی max_tokens پاسخ را قطع کرده) و usage شامل prompt_tokens، completion_tokens، total_tokens و credits_used (اعتباری که برای همین تماس کسر شد) است. هر پاسخ، حتی خطا، هدر x-request-id دارد؛ اگر به پشتیبانی نوشتید، آن را بفرستید.

اندازهٔ درخواست

بدنهٔ درخواست حداکثر ۴۰ مگابایت است؛ بیشتر از آن 413 با request_too_large می‌گیرید. اگر ورودی به‌علاوهٔ خروجی درخواستی در زمینهٔ مدل جا نشود، 422 با context_length_exceeded برمی‌گردد.

برای همهٔ پارامترها و پاسخ‌ها مرجع نقطه‌های پایانی را ببینید.

این صفحه کمکتان نکرد؟ به ما بگویید.