شروع سریع: ادغام API بدون سانسور
API بدون سانسور ما را در کد موجود خود قرار دهید. یک آدرس پایه را تغییر دهید و منطق خود را حفظ کنید.
پیشنیازها: SDK و پیکربندی محیط
کتابخانه رسمی SDK را برای زبان خود نصب کنید. ما از هر openai مشتری سازگار. سرویس ما به عنوان جایگزین مستقیم برای یکپارچهسازیهای استاندارد OpenAI عمل میکند.
متغیر محیطی خود را بلافاصله تنظیم کنید. این از رمزنگاری ثابت اعتبارنامهها در فایلهای منبع جلوگیری میکند. کلید API شما حساب کاربری را شناسایی کرده و مصرف را ردیابی میکند.
از نسخه کتابخانه استاندارد استفاده کنید. بیشتر توسعهدهندگان این بستهها را از قبل نصب دارند. در غیر این صورت، بسته را به وابستگیهای خود اضافه کنید.
احراز هویت: تنظیم کلید API
کلید خود را از طریق منتقل کنید Authorization header. ما برای هر درخواست به یک توکن Bearer نیاز داریم. این روش در تمام نقاط پایگاه سازگار با OpenAI استاندارد است.
کلید خود را از داشبورد ایجاد کنید. شما به ازای هر حساب یک کلید فعال دریافت میکنید. جایگزینی آن، کلید قبلی را بهطور فوری نامعتبر میکند.
کلید خود را امن نگه دارید. آن را در کد سمت کلاینت قرار ندهید. endpoint ما اعتبارنامهها را قبل از پردازش توکنها اعتبارسنجی میکند.
نقطه پایانی: POST /v1/chat/completions
پرامپت خود را به نقطه پایانی چت ارسال کنید. از model field set to uncensored. این امر تضمین میکند که درخواست به مدل خاص ما هدایت میشود.
پاسخهای استریم از طریق SSE
استریمینگ را با تنظیم stream: true. قطعات را همانطور که تولید میشوند دریافت میکنید. این کار تأخیر ادراکشده را برای خروجیهای طولانی کاهش میدهد.
فرمت رویدادهای ارسالی سرور (SSE) را تجزیه کنید. هر قطعه شامل متن ناقص است. این قطعات را تجمیع کنید تا پاسخ کامل را بازسازی کنید.
مصرف توکنها را در قطعه نهایی پایش کنید. رویداد آخر شامل آمار کامل مصرف است. این کار به ردیابی دقیق هزینهها کمک میکند.
فراخوانی تابع و استفاده از ابزار
ابزارها را در بدنه درخواست خود تعریف کنید. مدل آرگومانهای ساختاریافته را برمیگرداند. این آرگومانها را در منطق برنامه خود تجزیه کنید.
از تعاریف ابزار استاندارد پشتیبانی میکند. از tool_choice برای اجبار به رفتار خاص. این با هر SDK سازگار با OpenAI کار میکند.
فرمت خروجی را اعتبارسنجی کنید. اطمینان حاصل کنید که کد شما با آرگومانهای گمشده به صورت ایمن برخورد میکند. مدل ممکن است فیلدها را در صورت عدم الزام حذف کند.
حالت JSON و خروجیهای ساختاریافته
تنظیم response_format به json_objectمدل JSON کاملاً فرمتشده را برمیگرداند. این خطاهای تجزیه برای دادههای ساختاریافته را حذف میکند.
اسکمای خود را بهوضوح تعریف کنید. مدل دستورات شما را بهدقت دنبال میکند. این را برای استخراج داده یا تولید پیکربندی استفاده کنید.
خطاهای تجزیه JSON را مدیریت کنید. ساختارهای نامعتبر هنوز گاهی رخ میدهند. برای برنامههای مقاوم، منطق جایگزین پیادهسازی کنید.
مدیریت خطا و محدودیتهای نرخ
کدهای وضعیت HTTP را به درستی مدیریت کنید. یک 401 خطا به این معنی است که کلید شما نامعتبر است. یک 402 خطا نشاندهنده اعتبار ناکافی است. یک 429 خطا نشاندهنده محدودیت نرخ است.
به محدودیت 300 درخواست در دقیقه احترام بگذارید. میتوانید 8 درخواست همزمان ارسال کنید. تجاوز از این محدودیتها خطای 429 را برمیگرداند. قبل از تلاش مجدد صبر کنید.
پنجره زمینه شما ۱۰۰,۰۰۰ توکن است. این شامل ورودی و خروجی میشود. بودجه توکن خود را با دقت مدیریت کنید. حداکثر خروجی ۱۶,۰۰۰ توکن در هر درخواست است. خطاها اعتبار مصرف نمیکنند.
cURL
curl https://api.alternativeapiopenai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the primary functions in this module"}]
}'پایتون
from openai import OpenAI
client = OpenAI(base_url="https://api.alternativeapiopenai.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.alternativeapiopenai.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);جریانسازی
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)پرسشهای رایج
آیا این یک جایگزین واقعی API OpenAI است؟
بله، دقیقاً از پروتکل OpenAI پیروی میکند. تنها URL پایه و نام مدل را تغییر میدهید. کد موجود شما بدون تغییر کار میکند.
محدودیت پنجره زمینه چیست؟
پنجره زمینه ۱۰۰,۰۰۰ توکن در مجموع است. این شامل ورودی شما و خروجی مدل'تان میشود. حداکثر خروجی در هر درخواست ۱۶,۰۰۰ توکن است.
چگونه محدود نرخها را مدیریت کنم؟
شما محدود به ۳۰۰ درخواست در دقیقه هستید. میتوانید ۸ درخواست همزمان داشته باشید. اگر از این حد تجاوز کنید، خطای 429 دریافت میکنید. پیش از تلاش مجدد کمی صبر کنید.
تولید کلید تنها نیاز به یک فرم دارد
ثبتنام کنید، کلید خود را کپی کنید و آدرس پایه خود را بهروز کنید. همین پیکربندی مورد نیاز است.