مستندات API OpenRouter
برنامه خود را با رابط استاندارد سازگار با OpenAI به LLM بدون سانسور ما متصل کنید. این راهنما احراز هویت، فرمتهای درخواست و استریم برای یکپارچهسازی سریع را پوشش میدهد.
شروع سریع: اتصال با Python
ابتدا SDK رسمی را نصب کنید و آن را به URL پایه ما اشاره دهید.
API ما مانند رابط استاندارد OpenAI رفتار میکند اما به یک مدل uncensored واحد هدایت میشود. این رویکرد پیچیدگی proxy را حذف میکند در حالی که کد شما قابل حمل باقی میماند.
- کتابخانه را از طریق pip نصب کنید.
- کلید API خود را در محیط
- URL پایه برای نقطه پایانی (endpoint) ما را تعریف کنید.
from openai import OpenAI
client = OpenAI(base_url="https://api.apiopenrouter.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)کلید جایگزین را با اعتبارات خود جایگزین کنید. میتوانید پرامپتهای ساده یا دادههای ساختاریافته پیچیده ارسال کنید.
کلیدهای احراز هویت
یک کلید در داشبورد تولید کنید و آن را در هدر Authorization ارسال کنید.
هر حسابکاربری در هر زمان از یک کلید فعال پشتیبانی میکند. هنگامی که کلید جدیدی ایجاد میکنید، کلید قبلی بلافاصله از کار میافتد. این امر مدیریت امنیت را بدون نیاز به منطق پیچیده چرخش کلید ساده میکند.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'درخواست بالا از طرح Bearer استفاده میکند. مطمئن شوید کلید شما با sk- و شامل فضای سفید اضافی نیست.
نقطه پایانی تکمیل چت
پیامها را به /v1/chat/completions اندپوینت با استفاده از JSON استاندارد.
مدل پذیرش user و assistant نقشها. میتوانید temperature، top-p و دنبالههای توقف را برای کنترل سبک خروجی پیکربندی کنید. پاسخها در قطعه نهایی اگر استریم فعال باشد، استفاده از توکن را برمیگردانند.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiopenrouter.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);تنظیم max_tokens برای کنترل طول خروجی. در صورت حذف، پیشفرض ۲,۰۴۸ توکن است. مدل تا ۱۶,۰۰۰ توکن در هر درخواست پشتیبانی میکند.
پاسخهای استریم
استریمینگ را با تنظیم stream: true در بدنه درخواست خود.
جزئیات مصرف توکن فقط در آخرین قطعه جریان ظاهر میشود. این به بهروزرسانی بلادرنگ رابط کاربری در حالی که دادههای صورتحساب دقیق حفظ میشود، امکانپذیر است. خطاهای حین پخش همچنان مصرف را برای توکنهای هزینهشده گزارش میدهند.
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)پاسخهای ناقص را بهصورت ایمن مدیریت کنید. استریم زمانی که مدل تولید را به پایان میرساند یا به محدودیت بافت میرسد، بهطور عادی بسته میشود.
Function Calling & JSON Mode
استفاده response_format: {type: "json_object"} برای خروجیهای JSON دقیق.
ابزارها را در تعریف کنید tools آرایه و تنظیم tool_choice برای اجبار به فراخوانی توابع. مدل دادههای ساختاریافتهای را برمیگرداند که برای پردازش برنامهنویسی مناسب است. این با وزنهای uncensored ما بهطور قابلاعتمادی کار میکند.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'فراخوانی تابع را با استریم برای تجربیات تعاملی ترکیب کنید. خروجی JSON را قبل از ارسال به منطق برنامه خود اعتبارسنجی کنید.
Limits and Quotas
مصرف خود را در برابر محدودیتهای به ازای هر کلید پایش کنید تا از اختلالات جلوگیری کنید.
هر کلید اجازه ۳۰۰ درخواست در دقیقه و ۸ درخواست همزمان را میدهد. محدودیت حجم بدنه درخواست ۸ مگابایت است. در صورت عبور از این محدودیتها، API کد وضعیت ۴۲۹ را برمیگرداند. خطاهای احراز هویت ۴۰۱ و اعتبار کافی ۴۰۲ را برمیگرداند.
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'پنجره زمینه ۱۰۰,۰۰۰ توکن بهطور کلی است. خطاها اعتبار مصرف نمیکنند. رد شدنها برای نقضهای جزئی محتوا نیز رایگان باقی میمانند.
پرسشهای رایج
API OpenRouter چگونه با OpenAI استاندارد تفاوت دارد؟
API ما از یک مدل بدون سانسور بهینهشده برای محتوای بزرگسالان قانونی و خلاقیت بدون رد شدن استفاده میکند. ساختار درخواست و پاسخ همانند OpenAI است، بنابراین میتوانید اندپوینتها را بدون تغییر کد جابجا کنید.
اگر اعتبارهایم تمام شود چه میشود؟
درخواستها با خطای 402 شکست میخورند وقتی موجودی پیشپرداخت شما صفر است. اعتبارها منقضی نمیشوند، بنابراین میتوانید در هر زمان با ارز دیجیتال شارژ کنید. خطاها و رد شدنها موجودی شما را مصرف نمیکنند.
آیا میتوانم از کلیدهای متعدد برای پروژههای مختلف استفاده کنم؟
هر حسابکاربری از یک کلید فعال پشتیبانی میکند. ایجاد یک کلید جدید بهطور خودکار کلید قبلی را نامعتبر میکند. میتوانید بلافاصله یک کلید جدید از داشبورد تولید کنید بدون اینکه تاریخچه صورتحساب خود را از دست بدهید.
کلید API خود را بازیابی کنید
ثبتنام کنید، توکن را کپی کنید و URL پایه خود را بهروزرسانی کنید. این پیکربندی کامل است.