URL پایه و احراز هویت
احراز هویت به یک کلید API واحد متکی است که در Authorization هدر.
هر درخواست باید به URL پایه https://api.dolphinaisincensura.com/v1 و کلید را به عنوان Bearer YOUR_API_KEY.
این پیکربندی با هر SDK سازگار با OpenAI کار میکند با بهروزرسانی ساده base_url پیکربندی.
خطاهایی مانند ۴۰۱ نشاندهنده کلید نامعتبر یا فاقد کلید است، در حالی که ۴۰۲ نشاندهنده اعتبار پیشپرداخت ناکافی است.
curl https://api.dolphinaisincensura.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list the python imports for requests and json"}]
}'
ارسال یک درخواست تکمیل چت (Chat Completion)
یک درخواست POST به /v1/chat/completions با یک model field set to uncensored.
شامل یک messages آرایهای شامل تاریخچه پرامپت شما برای حفظ زمینه مکالمه.
API پاسخ متنی را مستقیماً در content field of the first choice.
رویکرد تکمدلی هزینههای پراکسی را حذف کرده و قیمتگذاری قابل پیشبینی را با نرخ $0.15 به ازای هر 1M توکن ورودی تضمین میکند.
from openai import OpenAI
client = OpenAI(base_url="https://api.dolphinaisincensura.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
مدیریت جریانسازی (SSE)
استریمینگ را با تنظیم stream به true در پیکربندی درخواست.
سرور با رویدادهای ارسالی سرور (SSE) پاسخ میدهد که توکنها را به صورت افزایشی ارسال میکنند.
هر قطعه SSE را پارز کنید تا متن تولید شده را استخراج کنید بدون اینکه منتظر پاسخ کامل بمانید.
آمار مصرف توکن در آخرین قطعه استریم برای صورتحساب دقیق ارائه میشود.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
فراخوانی تابع و حالت JSON
از tools پارامتری برای تعریف طرحوارههای تابع برای استخراج دادههای ساختاریافته.
تنظیم response_format به {"type": "json_object"} برای اجبار به خروجی JSON سختگیرانه برای پارسینگ قابل اعتماد.
مشخص کنید temperature و top_p برای کنترل خلاقیت در برابر قطعیت در نتایج شما.
این ویژگیها به شما امکان میدهند عاملهای خودمختاری بسازید که با APIها یا پایگاههای داده خارجی تعامل دارند.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.dolphinaisincensura.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
درک محدودیتهای توکن و زمینه
پنجره زمینه (context window) تا ۱۰۰,۰۰۰ توکن را برای ترکیب پرامپت و تکمیل (completion) پشتیبانی میکند.
حداکثر خروجی در هر درخواست ۱۶,۰۰۰ توکن است، یا ۲,۰۴۸ اگر max_tokens تنظیم نشده است.
محدودیتهای نرخ اجازه ۳۰۰ درخواست در دقیقه و ۸ درخواست همزمان به ازای هر کلید API را میدهند.
درخواستهایی که از محدودیت بدنه ۸ مگابایت تجاوز کنند یا به سقفهای همزمانی برسند، خطاهای 429 برمیگردانند.
پاسخهای خطا و درخواستهای رد شده، اعتبار از پیش پرداخت شده شما را مصرف نمیکنند.
محدودیتهای نرخ و همزمانی
هر کلید API محدود به ۳۰۰ درخواست در دقیقه و ۸ اتصال همزمان فعال است.
کد وضعیت 428 نشان میدهد که شما از آستانههای همزمانی یا نرخ تجاوز کردهاید.
شما میتوانید کلید جدیدی برای جایگزینی کلید موجود ایجاد کنید، اما به ازای هر حساب کاربری فقط یک کلید فعال مجاز است.
مصرف خود را از طریق هدرهای پاسخ مانیتور کنید تا در محدودیت ۸ مگابایتی بدنه درخواست باقی بمانید.