URL پایه و احراز هویت
درخواستها را به URL پایه https://api.codexapipricing.com/v1 با استفاده از کلید API خود. این نقطه پایانی با SDKهای استاندارد OpenAI سازگار است، بنابراین فقط نیاز دارید base URL را بهروزرسانی کرده و کلید خود را ارائه دهید. احراز هویت با ارسال هدر Authorization: Bearer YOUR_API_KEY در هر درخواست. میتوانید بلافاصله با ورود با گوگل یا ایمیل و رمز عبور، کلید ایجاد کنید. کلید یکبار پس از ایجاد نمایش داده میشود، بنابراین آن را بهطور ایمن ذخیره کنید. از پرامپتهای شما برای آموزش استفاده نمیشود که حریم خصوصی دادههای شما را تضمین میکند.
نقطه پایانی تکمیل چت
از POST /v1/chat/completions اندپوینت برای تولید متن. این رابط اصلی برای ارسال پرامپتها و دریافت پاسخها است. شناسه مدل همیشه uncensored, صرفنظر از نسخه مدلی که در سرورهای ما اجرا میشود. میتوانید مدلهای موجود را از طریق GET /v1/models. تاریخچه پیامهای خود را در messages
پارامترهای پشتیبانیشده و حالت JSON
تولید را با پارامترهایی مانند کنترل کنید temperature, top_p، و stop. از response_format تنظیم شده روی {"type": "json_object"} برای اجبار به خروجی JSON. این برای استخراج دادههای ساختاریافته یا فراخوانی تابع مفید است. همچنین میتوانید max_tokens برای محدود کردن طول خروجی، که در صورت عدم مشخصسازی به 2,048 پیشفرض میشود. پنجره زمینه تا 100,000 توکن برای پرامپت و تکمیل ترکیبی پشتیبانی میکند. پارامتر seed برای نتایج قطعی یا presence_penalty و frequency_penalty برای تنظیم تکرار. این پارامترها به شما امکان میدهند رفتار مدل را بدون پیکربندی پیچیده تنظیم کنید. حالت JSON قالببندی دقیق را برای تجزیه قابل اعتماد در برنامه شما تضمین میکند.
پاسخهای استریمشده از طریق SSE
استریمینگ را با تنظیم stream: true در درخواست شما. API رویدادهای ارسالی سرور (SSE) را هنگام تولید توکنها برمیگرداند. این کار تأخیر ادراکشده را برای پاسخهای طولانی کاهش میدهد. جزئیات مصرف توکن در قطعه نهایی جریان ظاهر میشود. میتوانید توکنها را به صورت افزایشی پردازش کنید تا متن را به صورت بلادرنگ نمایش دهید. این ویژگی با تمام SDKهای سازگار با OpenAI کار میکند. پخش زنده برای رابطهای چت که کاربران بازخورد فوری انتظار دارند ایدهآل است. قطعه آخر شامل شمار کل توکن برای دقت صورتحساب است. از این روش برای مدیریت خروجیهای بزرگ بدون انتظار برای پاسخ کامل استفاده کنید.
محدودیتهای نرخ و بدنههای درخواست
هر کلید API به ۳۰۰ درخواست در دقیقه و ۸ درخواست همزمان محدود است. حداکثر اندازه بدنه درخواست ۸ مگابایت است. اگر از این محدودیتها عبور کنید، خطای ۴۲۹ دریافت خواهید کرد. میتوانید کلیدهای جدید تولید کنید تا کلیدهای موجود را جایگزین کنید، اما فقط یک کلید برای هر حساب فعال است. خطاها و رد شدن درخواستها در محدودیت نرخ شما محاسبه نمیشوند. پنجره زمینه ۱۰۰,۰۰۰ توکن امکان تاریخچه مکالمات گسترده را فراهم میآورد. بدنه درخواستهای خود را مختصر نگه دارید تا در حدود اندازه باقی بمانید. مصرف خود را برای جلوگیری از وقفه در ساعات اوج پایش کنید. این محدودیتها استفاده منصفانه را برای تمام مشتریان پیشپرداخت تضمین میکنند.
مدیریت خطا و عیبیابی
خطاها را با بررسی کد وضعیت HTTP مدیریت کنید. خطای 401 نشاندهنده کلید API نامعتبر یا فاقد آن است. خطای 402 به این معنی است که اعتبار پیشپرداخت شما تمام شده است. خطای 429 نشان میدهد که از محدودیتهای نرخ تجاوز کردهاید. از error field in the response to get details. Mistakes like double charges are fixed via the Support page. Credit never expires, so you can top up later. Refusals for content policy violations are free. This predictable error structure helps you debug integration issues quickly without guessing the cause.
cURL
curl https://api.codexapipricing.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the hourly rates for the large model."}]
}'پایتون
from openai import OpenAI
client = OpenAI(base_url="https://api.codexapipricing.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.codexapipricing.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)